@nxtedition/rocksdb 13.2.0 → 13.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/binding.cc CHANGED
@@ -926,22 +926,40 @@ napi_status InitOptions(napi_env env, T& columnOptions, const U& options) {
926
926
 
927
927
  {
928
928
  uint32_t cacheSize = 0;
929
+ double compressedRatio = 0.0;
929
930
  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
+ options.comp_cache_opts.compression_type = rocksdb::CompressionType::kZSTD;
940
+ columnOptions.blob_cache = rocksdb::NewTieredCache(options);
941
+ } else {
932
942
  columnOptions.blob_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
933
943
  }
934
944
  }
935
945
 
936
946
  {
937
947
  uint32_t cacheSize = 8 << 20;
948
+ double compressedRatio = 0.0;
938
949
  NAPI_STATUS_RETURN(GetProperty(env, options, "cacheSize", cacheSize));
939
950
  NAPI_STATUS_RETURN(GetProperty(env, options, "blockCacheSize", cacheSize));
951
+ NAPI_STATUS_RETURN(GetProperty(env, options, "blockCacheCompressedRatio", compressedRatio));
940
952
 
941
- if (cacheSize) {
942
- tableOptions.block_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
943
- } else {
953
+ if (cacheSize == 0) {
944
954
  tableOptions.no_block_cache = true;
955
+ } else if (compressedRatio > 0.0) {
956
+ rocksdb::TieredCacheOptions options;
957
+ options.total_capacity = cacheSize;
958
+ options.compressed_secondary_ratio = compressedRatio;
959
+ options.comp_cache_opts.compression_type = rocksdb::CompressionType::kZSTD;
960
+ tableOptions.block_cache = rocksdb::NewTieredCache(options);
961
+ } else {
962
+ tableOptions.block_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
945
963
  }
946
964
  }
947
965
 
@@ -1125,6 +1143,10 @@ NAPI_METHOD(db_open) {
1125
1143
 
1126
1144
  NAPI_STATUS_THROWS(GetProperty(env, options, "memTableHugePageSize", dbOptions.memtable_huge_page_size));
1127
1145
 
1146
+ NAPI_STATUS_THROWS(GetProperty(env, options, "useDirectIOReads", dbOptions.use_direct_reads));
1147
+
1148
+ NAPI_STATUS_THROWS(GetProperty(env, options, "useDirectIOForFlushAndCompaction", dbOptions.use_direct_io_for_flush_and_compaction));
1149
+
1128
1150
  // TODO (feat): dbOptions.listeners
1129
1151
 
1130
1152
  std::string infoLogLevel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/rocksdb",
3
- "version": "13.2.0",
3
+ "version": "13.3.0",
4
4
  "description": "A low-level Node.js RocksDB binding",
5
5
  "license": "MIT",
6
6
  "main": "index.js",