@nxtedition/rocksdb 13.1.3 → 13.1.5

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
@@ -898,6 +898,7 @@ napi_status InitOptions(napi_env env, T& columnOptions, const U& options) {
898
898
  }
899
899
 
900
900
  NAPI_STATUS_RETURN(GetProperty(env, options, "optimizeFiltersForHits", columnOptions.optimize_filters_for_hits));
901
+ NAPI_STATUS_RETURN(GetProperty(env, options, "periodicCompactionSeconds", columnOptions.periodic_compaction_seconds));
901
902
 
902
903
  rocksdb::BlockBasedTableOptions tableOptions;
903
904
  tableOptions.decouple_partitioned_filters = true;
@@ -1081,19 +1082,23 @@ NAPI_METHOD(db_open) {
1081
1082
 
1082
1083
  NAPI_STATUS_THROWS(GetProperty(env, options, "strictBytesPerSync", dbOptions.strict_bytes_per_sync));
1083
1084
 
1085
+ NAPI_STATUS_THROWS(GetProperty(env, options, "delayedWriteRate", dbOptions.delayed_write_rate));
1086
+
1084
1087
  NAPI_STATUS_THROWS(GetProperty(env, options, "createIfMissing", dbOptions.create_if_missing));
1085
1088
 
1086
1089
  NAPI_STATUS_THROWS(GetProperty(env, options, "errorIfExists", dbOptions.error_if_exists));
1087
1090
 
1088
1091
  NAPI_STATUS_THROWS(GetProperty(env, options, "pipelinedWrite", dbOptions.enable_pipelined_write));
1089
1092
 
1090
- NAPI_STATUS_THROWS(GetProperty(env, options, "dailyOffpeakTime", dbOptions.daily_offpeak_time_utc));
1093
+ NAPI_STATUS_THROWS(GetProperty(env, options, "dailyOffpeakTime", dbOptions.daily_offpeak_time_utc));
1094
+
1095
+ NAPI_STATUS_THROWS(GetProperty(env, options, "unorderedWrite", dbOptions.unordered_write));
1091
1096
 
1092
- NAPI_STATUS_THROWS(GetProperty(env, options, "unorderedWrite", dbOptions.unordered_write));
1097
+ NAPI_STATUS_THROWS(GetProperty(env, options, "allowMmapReads", dbOptions.allow_mmap_reads));
1093
1098
 
1094
- NAPI_STATUS_THROWS(GetProperty(env, options, "allowMmapReads", dbOptions.allow_mmap_reads));
1099
+ NAPI_STATUS_THROWS(GetProperty(env, options, "allowMmapWrites", dbOptions.allow_mmap_writes));
1095
1100
 
1096
- NAPI_STATUS_THROWS(GetProperty(env, options, "allowMmapWrites", dbOptions.allow_mmap_writes));
1101
+ NAPI_STATUS_THROWS(GetProperty(env, options, "memTableHugePageSize", dbOptions.memtable_huge_page_size));
1097
1102
 
1098
1103
  // TODO (feat): dbOptions.listeners
1099
1104
 
@@ -1228,18 +1233,12 @@ NAPI_METHOD(db_get_many_sync) {
1228
1233
  uint32_t count;
1229
1234
  NAPI_STATUS_THROWS(napi_get_array_length(env, argv[1], &count));
1230
1235
 
1231
- bool fillCache = true;
1232
- NAPI_STATUS_THROWS(GetProperty(env, argv[2], "fillCache", fillCache));
1233
-
1234
1236
  rocksdb::ColumnFamilyHandle* column = database->db->DefaultColumnFamily();
1235
1237
  NAPI_STATUS_THROWS(GetProperty(env, argv[2], "column", column));
1236
1238
 
1237
1239
  Encoding valueEncoding = Encoding::Buffer;
1238
1240
  NAPI_STATUS_THROWS(GetProperty(env, argv[2], "valueEncoding", valueEncoding));
1239
1241
 
1240
- int32_t highWaterMarkBytes = std::numeric_limits<int32_t>::max();
1241
- NAPI_STATUS_THROWS(GetProperty(env, argv[2], "highWaterMarkBytes", highWaterMarkBytes));
1242
-
1243
1242
  uint32_t timeout = 0;
1244
1243
  NAPI_STATUS_THROWS(GetProperty(env, argv[2], "timeout", timeout));
1245
1244
 
@@ -1260,14 +1259,22 @@ NAPI_METHOD(db_get_many_sync) {
1260
1259
  }
1261
1260
 
1262
1261
  rocksdb::ReadOptions readOptions;
1263
- readOptions.fill_cache = fillCache;
1264
- readOptions.async_io = true;
1265
- readOptions.optimize_multiget_for_io = true;
1266
- readOptions.value_size_soft_limit = highWaterMarkBytes;
1267
1262
  readOptions.deadline = timeout
1268
1263
  ? std::chrono::microseconds(database->db->GetEnv()->NowMicros() + timeout * 1000)
1269
1264
  : std::chrono::microseconds::zero();
1270
1265
 
1266
+ readOptions.fill_cache = false;
1267
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "fillCache", readOptions.fill_cache));
1268
+
1269
+ readOptions.async_io = true;
1270
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "asyncIO", readOptions.async_io));
1271
+
1272
+ readOptions.optimize_multiget_for_io = true;
1273
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "optimizeMultigetForIO", readOptions.optimize_multiget_for_io));
1274
+
1275
+ readOptions.value_size_soft_limit = std::numeric_limits<int32_t>::max();
1276
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "highWaterMarkBytes", readOptions.value_size_soft_limit));
1277
+
1271
1278
  database->db->MultiGet(readOptions, column, count, keys.data(), values.data(), statuses.data());
1272
1279
 
1273
1280
  napi_value rows;
@@ -1302,24 +1309,19 @@ NAPI_METHOD(db_get_many) {
1302
1309
  uint32_t count;
1303
1310
  NAPI_STATUS_THROWS(napi_get_array_length(env, argv[1], &count));
1304
1311
 
1305
- bool fillCache = true;
1306
- NAPI_STATUS_THROWS(GetProperty(env, argv[2], "fillCache", fillCache));
1307
-
1308
1312
  rocksdb::ColumnFamilyHandle* column = database->db->DefaultColumnFamily();
1309
1313
  NAPI_STATUS_THROWS(GetProperty(env, argv[2], "column", column));
1310
1314
 
1311
1315
  Encoding valueEncoding = Encoding::Buffer;
1312
1316
  NAPI_STATUS_THROWS(GetProperty(env, argv[2], "valueEncoding", valueEncoding));
1313
1317
 
1314
- int32_t highWaterMarkBytes = std::numeric_limits<int32_t>::max();
1315
- NAPI_STATUS_THROWS(GetProperty(env, argv[2], "highWaterMarkBytes", highWaterMarkBytes));
1316
-
1317
1318
  bool unsafe = false;
1318
1319
  NAPI_STATUS_THROWS(GetProperty(env, argv[2], "unsafe", unsafe));
1319
1320
 
1320
1321
  auto callback = argv[3];
1321
1322
 
1322
1323
  struct State {
1324
+ rocksdb::ReadOptions readOptions;
1323
1325
  std::vector<rocksdb::Status> statuses;
1324
1326
  std::vector<rocksdb::PinnableSlice> values;
1325
1327
  std::vector<rocksdb::PinnableSlice> keys;
@@ -1333,15 +1335,21 @@ NAPI_METHOD(db_get_many) {
1333
1335
  NAPI_STATUS_THROWS(GetValue(env, element, state.keys[n]));
1334
1336
  }
1335
1337
 
1338
+ state.readOptions.fill_cache = false;
1339
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "fillCache", state.readOptions.fill_cache));
1340
+
1341
+ state.readOptions.async_io = true;
1342
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "asyncIO", state.readOptions.async_io));
1343
+
1344
+ state.readOptions.optimize_multiget_for_io = true;
1345
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "optimizeMultigetForIO", state.readOptions.optimize_multiget_for_io));
1346
+
1347
+ state.readOptions.value_size_soft_limit = std::numeric_limits<int32_t>::max();
1348
+ NAPI_STATUS_THROWS(GetProperty(env, argv[2], "highWaterMarkBytes", state.readOptions.value_size_soft_limit));
1349
+
1336
1350
  runAsync(std::move(state),
1337
1351
  "leveldown.get_many", env, callback,
1338
1352
  [=](auto& state) {
1339
- rocksdb::ReadOptions readOptions;
1340
- readOptions.fill_cache = fillCache;
1341
- readOptions.async_io = true;
1342
- readOptions.optimize_multiget_for_io = true;
1343
- readOptions.value_size_soft_limit = highWaterMarkBytes;
1344
-
1345
1353
  std::vector<rocksdb::Slice> keys;
1346
1354
  keys.reserve(count);
1347
1355
  for (uint32_t n = 0; n < count; n++) {
@@ -1351,7 +1359,7 @@ NAPI_METHOD(db_get_many) {
1351
1359
  state.statuses.resize(count);
1352
1360
  state.values.resize(count);
1353
1361
 
1354
- database->db->MultiGet(readOptions, column, count, keys.data(), state.values.data(), state.statuses.data());
1362
+ database->db->MultiGet(state.readOptions, column, count, keys.data(), state.values.data(), state.statuses.data());
1355
1363
 
1356
1364
  return rocksdb::Status::OK();
1357
1365
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/rocksdb",
3
- "version": "13.1.3",
3
+ "version": "13.1.5",
4
4
  "description": "A low-level Node.js RocksDB binding",
5
5
  "license": "MIT",
6
6
  "main": "index.js",