@nxtedition/rocksdb 13.2.0 → 13.3.1
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
|
@@ -917,39 +917,60 @@ napi_status InitOptions(napi_env env, T& columnOptions, const U& options) {
|
|
|
917
917
|
NAPI_STATUS_RETURN(GetProperty(env, options, "blobCompression", blobCompression));
|
|
918
918
|
columnOptions.blob_compression_type = blobCompression ? rocksdb::kZSTD : rocksdb::kNoCompression;
|
|
919
919
|
|
|
920
|
-
bool prepopulateBlobCache = false;
|
|
921
|
-
NAPI_STATUS_RETURN(GetProperty(env, options, "prepopulateBlobCache", prepopulateBlobCache));
|
|
922
|
-
columnOptions.prepopulate_blob_cache = prepopulateBlobCache ? rocksdb::PrepopulateBlobCache::kFlushOnly : rocksdb::PrepopulateBlobCache::kDisable;
|
|
923
|
-
|
|
924
920
|
rocksdb::BlockBasedTableOptions tableOptions;
|
|
925
921
|
tableOptions.decouple_partitioned_filters = true;
|
|
926
922
|
|
|
927
|
-
{
|
|
928
|
-
uint32_t cacheSize = 0;
|
|
929
|
-
NAPI_STATUS_RETURN(GetProperty(env, options, "blobCacheSize", cacheSize));
|
|
930
|
-
|
|
931
|
-
if (cacheSize) {
|
|
932
|
-
columnOptions.blob_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
|
|
936
923
|
{
|
|
937
924
|
uint32_t cacheSize = 8 << 20;
|
|
925
|
+
double compressedRatio = 0.0;
|
|
938
926
|
NAPI_STATUS_RETURN(GetProperty(env, options, "cacheSize", cacheSize));
|
|
927
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "cacheCompressedRatio", compressedRatio));
|
|
939
928
|
NAPI_STATUS_RETURN(GetProperty(env, options, "blockCacheSize", cacheSize));
|
|
929
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "blockCacheCompressedRatio", compressedRatio));
|
|
940
930
|
|
|
941
|
-
if (cacheSize) {
|
|
942
|
-
tableOptions.block_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
|
|
943
|
-
} else {
|
|
931
|
+
if (cacheSize == 0) {
|
|
944
932
|
tableOptions.no_block_cache = true;
|
|
933
|
+
} else if (compressedRatio > 0.0) {
|
|
934
|
+
rocksdb::TieredCacheOptions options;
|
|
935
|
+
options.total_capacity = cacheSize;
|
|
936
|
+
options.compressed_secondary_ratio = compressedRatio;
|
|
937
|
+
options.comp_cache_opts.compression_type = rocksdb::CompressionType::kZSTD;
|
|
938
|
+
tableOptions.block_cache = rocksdb::NewTieredCache(options);
|
|
939
|
+
} else {
|
|
940
|
+
tableOptions.block_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
|
|
945
941
|
}
|
|
942
|
+
|
|
943
|
+
bool prepopulateBlockCache = false;
|
|
944
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "prepopulateBlockCache", prepopulateBlockCache));
|
|
945
|
+
tableOptions.prepopulate_block_cache = prepopulateBlockCache
|
|
946
|
+
? rocksdb::BlockBasedTableOptions::PrepopulateBlockCache::kFlushOnly
|
|
947
|
+
: rocksdb::BlockBasedTableOptions::PrepopulateBlockCache::kDisable;
|
|
946
948
|
}
|
|
947
949
|
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
950
|
+
{
|
|
951
|
+
uint32_t cacheSize = -1;
|
|
952
|
+
double compressedRatio = 0.0;
|
|
953
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "blobCacheSize", cacheSize));
|
|
954
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "blobCacheCompressedRatio", compressedRatio));
|
|
955
|
+
|
|
956
|
+
if (cacheSize == -1) {
|
|
957
|
+
columnOptions.blob_cache = tableOptions.block_cache;
|
|
958
|
+
} else if (cacheSize == 0) {
|
|
959
|
+
columnOptions.blob_cache = nullptr;
|
|
960
|
+
} else if (compressedRatio > 0.0) {
|
|
961
|
+
rocksdb::TieredCacheOptions options;
|
|
962
|
+
options.total_capacity = cacheSize;
|
|
963
|
+
options.compressed_secondary_ratio = compressedRatio;
|
|
964
|
+
options.comp_cache_opts.compression_type = rocksdb::CompressionType::kZSTD;
|
|
965
|
+
columnOptions.blob_cache = rocksdb::NewTieredCache(options);
|
|
966
|
+
} else {
|
|
967
|
+
columnOptions.blob_cache = rocksdb::HyperClockCacheOptions(cacheSize, 0).MakeSharedCache();
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
bool prepopulateBlobCache = false;
|
|
971
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "prepopulateBlobCache", prepopulateBlobCache));
|
|
972
|
+
columnOptions.prepopulate_blob_cache = prepopulateBlobCache ? rocksdb::PrepopulateBlobCache::kFlushOnly : rocksdb::PrepopulateBlobCache::kDisable;
|
|
973
|
+
}
|
|
953
974
|
|
|
954
975
|
std::string optimize = "";
|
|
955
976
|
NAPI_STATUS_RETURN(GetProperty(env, options, "optimize", optimize));
|
|
@@ -1125,6 +1146,10 @@ NAPI_METHOD(db_open) {
|
|
|
1125
1146
|
|
|
1126
1147
|
NAPI_STATUS_THROWS(GetProperty(env, options, "memTableHugePageSize", dbOptions.memtable_huge_page_size));
|
|
1127
1148
|
|
|
1149
|
+
NAPI_STATUS_THROWS(GetProperty(env, options, "useDirectIOReads", dbOptions.use_direct_reads));
|
|
1150
|
+
|
|
1151
|
+
NAPI_STATUS_THROWS(GetProperty(env, options, "useDirectIOForFlushAndCompaction", dbOptions.use_direct_io_for_flush_and_compaction));
|
|
1152
|
+
|
|
1128
1153
|
// TODO (feat): dbOptions.listeners
|
|
1129
1154
|
|
|
1130
1155
|
std::string infoLogLevel;
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|