Skip to content

Commit 3527b61

Browse files
committed
feat: compressed cache and directIO
1 parent e81ad2e commit 3527b61

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

binding.cc

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -926,22 +926,38 @@ napi_status InitOptions(napi_env env, T& columnOptions, const U& options) {
926926

927927
{
928928
uint32_t cacheSize = 0;
929+
double compressedRatio = 0.0;
929930
NAPI_STATUS_RETURN(GetProperty(env, options, "blobCacheSize", cacheSize));
930-
931-
if (cacheSize) {
931+
NAPI_STATUS_RETURN(GetProperty(env, options, "blobCacheCompressedRatio", compressedRatio));
932+
933+
if (cacheSize == 0) {
934+
// Do nothing..
935+
} else if (compressedRatio > 0.0) {
936+
rocksdb::TieredCacheOptions options;
937+
options.total_capacity = cacheSize;
938+
options.compressed_secondary_ratio = compressedRatio;
939+
columnOptions.blob_cache = rocksdb::NewTieredCache(options);
940+
} else {
932941
columnOptions.blob_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
933942
}
934943
}
935944

936945
{
937946
uint32_t cacheSize = 8 << 20;
947+
double compressedRatio = 0.0;
938948
NAPI_STATUS_RETURN(GetProperty(env, options, "cacheSize", cacheSize));
939949
NAPI_STATUS_RETURN(GetProperty(env, options, "blockCacheSize", cacheSize));
950+
NAPI_STATUS_RETURN(GetProperty(env, options, "blockCacheCompressedRatio", compressedRatio));
940951

941-
if (cacheSize) {
942-
tableOptions.block_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
943-
} else {
952+
if (cacheSize == 0) {
944953
tableOptions.no_block_cache = true;
954+
} else if (compressedRatio > 0.0) {
955+
rocksdb::TieredCacheOptions options;
956+
options.total_capacity = cacheSize;
957+
options.compressed_secondary_ratio = compressedRatio;
958+
tableOptions.block_cache = rocksdb::NewTieredCache(options);
959+
} else {
960+
tableOptions.block_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
945961
}
946962
}
947963

@@ -1125,6 +1141,10 @@ NAPI_METHOD(db_open) {
11251141

11261142
NAPI_STATUS_THROWS(GetProperty(env, options, "memTableHugePageSize", dbOptions.memtable_huge_page_size));
11271143

1144+
NAPI_STATUS_THROWS(GetProperty(env, options, "useDirectIOReads", dbOptions.use_direct_reads));
1145+
1146+
NAPI_STATUS_THROWS(GetProperty(env, options, "useDirectIOForFlushAndCompaction", dbOptions.use_direct_io_for_flush_and_compaction));
1147+
11281148
// TODO (feat): dbOptions.listeners
11291149

11301150
std::string infoLogLevel;

0 commit comments

Comments
 (0)