@@ -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