|
30 | 30 | #include "rocksdb/perf_context.h"
|
31 | 31 | #include "rocksdb/rate_limiter.h"
|
32 | 32 | #include "rocksdb/slice_transform.h"
|
| 33 | +#include "rocksdb/sst_file_manager.h" |
33 | 34 | #include "rocksdb/statistics.h"
|
34 | 35 | #include "rocksdb/status.h"
|
35 | 36 | #include "rocksdb/table.h"
|
@@ -113,6 +114,7 @@ using ROCKSDB_NAMESPACE::Slice;
|
113 | 114 | using ROCKSDB_NAMESPACE::SliceParts;
|
114 | 115 | using ROCKSDB_NAMESPACE::SliceTransform;
|
115 | 116 | using ROCKSDB_NAMESPACE::Snapshot;
|
| 117 | +using ROCKSDB_NAMESPACE::SstFileManager; |
116 | 118 | using ROCKSDB_NAMESPACE::SstFileMetaData;
|
117 | 119 | using ROCKSDB_NAMESPACE::SstFileWriter;
|
118 | 120 | using ROCKSDB_NAMESPACE::Status;
|
@@ -226,6 +228,9 @@ struct rocksdb_cache_t {
|
226 | 228 | struct rocksdb_write_buffer_manager_t {
|
227 | 229 | std::shared_ptr<WriteBufferManager> rep;
|
228 | 230 | };
|
| 231 | +struct rocksdb_sst_file_manager_t { |
| 232 | + std::shared_ptr<SstFileManager> rep; |
| 233 | +}; |
229 | 234 | struct rocksdb_livefiles_t {
|
230 | 235 | std::vector<LiveFileMetaData> rep;
|
231 | 236 | };
|
@@ -5239,6 +5244,67 @@ ROCKSDB_LIBRARY_API void rocksdb_write_buffer_manager_set_allow_stall(
|
5239 | 5244 | wbm->rep->SetAllowStall(new_allow_stall);
|
5240 | 5245 | }
|
5241 | 5246 |
|
| 5247 | +rocksdb_sst_file_manager_t* rocksdb_sst_file_manager_create( |
| 5248 | + rocksdb_env_t* env) { |
| 5249 | + rocksdb_sst_file_manager_t* sfm = new rocksdb_sst_file_manager_t; |
| 5250 | + sfm->rep.reset(ROCKSDB_NAMESPACE::NewSstFileManager(env->rep)); |
| 5251 | + return sfm; |
| 5252 | +} |
| 5253 | + |
| 5254 | +void rocksdb_sst_file_manager_destroy(rocksdb_sst_file_manager_t* sfm) { |
| 5255 | + delete sfm; |
| 5256 | +} |
| 5257 | + |
| 5258 | +void rocksdb_sst_file_manager_set_max_allowed_space_usage( |
| 5259 | + rocksdb_sst_file_manager_t* sfm, uint64_t max_allowed_space) { |
| 5260 | + sfm->rep->SetMaxAllowedSpaceUsage(max_allowed_space); |
| 5261 | +} |
| 5262 | + |
| 5263 | +void rocksdb_sst_file_manager_set_compaction_buffer_size( |
| 5264 | + rocksdb_sst_file_manager_t* sfm, uint64_t compaction_buffer_size) { |
| 5265 | + sfm->rep->SetCompactionBufferSize(compaction_buffer_size); |
| 5266 | +} |
| 5267 | + |
| 5268 | +bool rocksdb_sst_file_manager_is_max_allowed_space_reached( |
| 5269 | + rocksdb_sst_file_manager_t* sfm) { |
| 5270 | + return sfm->rep->IsMaxAllowedSpaceReached(); |
| 5271 | +} |
| 5272 | + |
| 5273 | +bool rocksdb_sst_file_manager_is_max_allowed_space_reached_including_compactions( |
| 5274 | + rocksdb_sst_file_manager_t* sfm) { |
| 5275 | + return sfm->rep->IsMaxAllowedSpaceReachedIncludingCompactions(); |
| 5276 | +} |
| 5277 | + |
| 5278 | +uint64_t rocksdb_sst_file_manager_get_total_size( |
| 5279 | + rocksdb_sst_file_manager_t* sfm) { |
| 5280 | + return sfm->rep->GetTotalSize(); |
| 5281 | +} |
| 5282 | + |
| 5283 | +int64_t rocksdb_sst_file_manager_get_delete_rate_bytes_per_second( |
| 5284 | + rocksdb_sst_file_manager_t* sfm) { |
| 5285 | + return sfm->rep->GetDeleteRateBytesPerSecond(); |
| 5286 | +} |
| 5287 | + |
| 5288 | +void rocksdb_sst_file_manager_set_delete_rate_bytes_per_second( |
| 5289 | + rocksdb_sst_file_manager_t* sfm, int64_t delete_rate) { |
| 5290 | + return sfm->rep->SetDeleteRateBytesPerSecond(delete_rate); |
| 5291 | +} |
| 5292 | + |
| 5293 | +double rocksdb_sst_file_manager_get_max_trash_db_ratio( |
| 5294 | + rocksdb_sst_file_manager_t* sfm) { |
| 5295 | + return sfm->rep->GetMaxTrashDBRatio(); |
| 5296 | +} |
| 5297 | + |
| 5298 | +void rocksdb_sst_file_manager_set_max_trash_db_ratio( |
| 5299 | + rocksdb_sst_file_manager_t* sfm, double ratio) { |
| 5300 | + return sfm->rep->SetMaxTrashDBRatio(ratio); |
| 5301 | +} |
| 5302 | + |
| 5303 | +uint64_t rocksdb_sst_file_manager_get_total_trash_size( |
| 5304 | + rocksdb_sst_file_manager_t* sfm) { |
| 5305 | + return sfm->rep->GetTotalTrashSize(); |
| 5306 | +} |
| 5307 | + |
5242 | 5308 | rocksdb_dbpath_t* rocksdb_dbpath_create(const char* path,
|
5243 | 5309 | uint64_t target_size) {
|
5244 | 5310 | rocksdb_dbpath_t* result = new rocksdb_dbpath_t;
|
|
0 commit comments