@nxtedition/rocksdb 7.1.33 → 8.0.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/BUILDING.md +2 -2
- package/binding.cc +0 -147
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +402 -345
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +121 -64
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +28 -18
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +2 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +2 -1
- package/deps/rocksdb/rocksdb/db/c.cc +563 -673
- package/deps/rocksdb/rocksdb/db/c_test.c +168 -169
- package/deps/rocksdb/rocksdb/db/column_family.cc +16 -15
- package/deps/rocksdb/rocksdb/db/column_family.h +7 -7
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +17 -28
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +8 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +114 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/convenience.cc +3 -5
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +10 -14
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +9 -13
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +52 -72
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +12 -12
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -2
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +1 -12
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +3 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +26 -0
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +12 -6
- package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +6 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +10 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +15 -13
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +2 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +7 -4
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +8 -6
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +18 -23
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +10 -5
- package/deps/rocksdb/rocksdb/db/db_test2.cc +172 -169
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +68 -66
- package/deps/rocksdb/rocksdb/db/db_test_util.h +1 -3
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +31 -39
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +182 -2
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +43 -40
- package/deps/rocksdb/rocksdb/db/dbformat.h +15 -0
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +35 -34
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +10 -11
- package/deps/rocksdb/rocksdb/db/error_handler.cc +6 -6
- package/deps/rocksdb/rocksdb/db/error_handler.h +93 -94
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -1
- package/deps/rocksdb/rocksdb/db/event_helpers.h +3 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -17
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -0
- package/deps/rocksdb/rocksdb/db/file_indexer.h +2 -1
- package/deps/rocksdb/rocksdb/db/file_indexer_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/filename_test.cc +27 -29
- package/deps/rocksdb/rocksdb/db/flush_job.cc +7 -13
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +15 -21
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +7 -6
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +2 -2
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +59 -14
- package/deps/rocksdb/rocksdb/db/internal_stats.h +27 -11
- package/deps/rocksdb/rocksdb/db/job_context.h +5 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +21 -23
- package/deps/rocksdb/rocksdb/db/log_reader.cc +7 -11
- package/deps/rocksdb/rocksdb/db/log_reader.h +4 -6
- package/deps/rocksdb/rocksdb/db/log_test.cc +6 -12
- package/deps/rocksdb/rocksdb/db/log_writer.h +1 -1
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +0 -1
- package/deps/rocksdb/rocksdb/db/lookup_key.h +4 -1
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -1
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/memtable.cc +34 -22
- package/deps/rocksdb/rocksdb/db/memtable.h +4 -6
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +7 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -13
- package/deps/rocksdb/rocksdb/db/merge_context.h +1 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +128 -14
- package/deps/rocksdb/rocksdb/db/merge_helper.h +15 -7
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +5 -6
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +55 -43
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +288 -299
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +22 -27
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +7 -8
- package/deps/rocksdb/rocksdb/db/repair_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/snapshot_impl.cc +4 -5
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +10 -4
- package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -4
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +6 -7
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +22 -22
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +12 -12
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +6 -8
- package/deps/rocksdb/rocksdb/db/trim_history_scheduler.h +2 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -5
- package/deps/rocksdb/rocksdb/db/version_edit.h +8 -12
- package/deps/rocksdb/rocksdb/db/version_set.cc +74 -102
- package/deps/rocksdb/rocksdb/db/version_set.h +8 -10
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +0 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -45
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +6 -5
- package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -2
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +144 -61
- package/deps/rocksdb/rocksdb/db/write_batch.cc +41 -24
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +2 -7
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +105 -104
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -0
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_thread.cc +8 -6
- package/deps/rocksdb/rocksdb/env/io_posix.h +6 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +134 -65
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +29 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +1 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +14 -4
- package/deps/rocksdb/rocksdb/table/get_context.cc +52 -7
- package/deps/rocksdb/rocksdb/table/get_context.h +1 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +13 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +36 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +23 -28
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +19 -17
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +10 -7
- package/index.js +3 -195
- package/package.json +2 -4
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/common.js +0 -7
package/BUILDING.md
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
- Copy `libfolly.a` to `/usr/lib/x86_64-linux-gnu`.
|
|
11
11
|
- Copy headers to `/usr/lib/x86_64-linux-gnu/include`.
|
|
12
12
|
- Copy boost headers from folly scratchpad to `/usr/lib/x86_64-linux-gnu/include`.
|
|
13
|
-
- `npx prebuildify -t
|
|
13
|
+
- `npx prebuildify -t 18.11.0 --napi --strip --arch x64`
|
|
14
14
|
|
|
15
15
|
# OSX
|
|
16
16
|
|
|
17
17
|
- `brew install zstd`
|
|
18
|
-
- `npx prebuildify -t
|
|
18
|
+
- `npx prebuildify -t 18.11.0 --napi --strip --arch arm64`
|
package/binding.cc
CHANGED
|
@@ -38,7 +38,6 @@ class NullLogger : public rocksdb::Logger {
|
|
|
38
38
|
|
|
39
39
|
struct Database;
|
|
40
40
|
struct Iterator;
|
|
41
|
-
struct Updates;
|
|
42
41
|
|
|
43
42
|
struct ColumnFamily {
|
|
44
43
|
napi_ref ref;
|
|
@@ -254,48 +253,6 @@ struct BatchIterator : public rocksdb::WriteBatch::Handler {
|
|
|
254
253
|
std::vector<BatchEntry> cache_;
|
|
255
254
|
};
|
|
256
255
|
|
|
257
|
-
struct Updates : public BatchIterator, public Closable {
|
|
258
|
-
Updates(Database* database,
|
|
259
|
-
const int64_t seqNumber,
|
|
260
|
-
const bool keys,
|
|
261
|
-
const bool values,
|
|
262
|
-
const bool data,
|
|
263
|
-
const rocksdb::ColumnFamilyHandle* column,
|
|
264
|
-
const Encoding keyEncoding,
|
|
265
|
-
const Encoding valueEncoding)
|
|
266
|
-
: BatchIterator(database, keys, values, data, column, keyEncoding, valueEncoding),
|
|
267
|
-
database_(database),
|
|
268
|
-
start_(seqNumber) {}
|
|
269
|
-
|
|
270
|
-
virtual ~Updates() { assert(!iterator_); }
|
|
271
|
-
|
|
272
|
-
rocksdb::Status Close() override {
|
|
273
|
-
iterator_.reset();
|
|
274
|
-
return rocksdb::Status::OK();
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
napi_status Attach(napi_env env, napi_value context) {
|
|
278
|
-
NAPI_STATUS_RETURN(napi_create_reference(env, context, 1, &ref_));
|
|
279
|
-
database_->closables.insert(this);
|
|
280
|
-
return napi_ok;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
napi_status Detach(napi_env env) {
|
|
284
|
-
database_->closables.erase(this);
|
|
285
|
-
if (ref_) {
|
|
286
|
-
NAPI_STATUS_RETURN(napi_delete_reference(env, ref_));
|
|
287
|
-
}
|
|
288
|
-
return napi_ok;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
Database* database_;
|
|
292
|
-
int64_t start_;
|
|
293
|
-
std::unique_ptr<rocksdb::TransactionLogIterator> iterator_;
|
|
294
|
-
|
|
295
|
-
private:
|
|
296
|
-
napi_ref ref_ = nullptr;
|
|
297
|
-
};
|
|
298
|
-
|
|
299
256
|
struct BaseIterator : public Closable {
|
|
300
257
|
BaseIterator(Database* database,
|
|
301
258
|
rocksdb::ColumnFamilyHandle* column,
|
|
@@ -850,106 +807,6 @@ NAPI_METHOD(db_close) {
|
|
|
850
807
|
return 0;
|
|
851
808
|
}
|
|
852
809
|
|
|
853
|
-
NAPI_METHOD(updates_init) {
|
|
854
|
-
NAPI_ARGV(2);
|
|
855
|
-
|
|
856
|
-
Database* database;
|
|
857
|
-
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&database)));
|
|
858
|
-
|
|
859
|
-
const auto options = argv[1];
|
|
860
|
-
|
|
861
|
-
int64_t since = 0;
|
|
862
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "since", since));
|
|
863
|
-
|
|
864
|
-
bool keys = true;
|
|
865
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "keys", keys));
|
|
866
|
-
|
|
867
|
-
bool values = true;
|
|
868
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "values", values));
|
|
869
|
-
|
|
870
|
-
bool data = true;
|
|
871
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "data", data));
|
|
872
|
-
|
|
873
|
-
Encoding keyEncoding = Encoding::String;
|
|
874
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "keyEncoding", keyEncoding));
|
|
875
|
-
|
|
876
|
-
Encoding valueEncoding = Encoding::String;
|
|
877
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "valueEncoding", valueEncoding));
|
|
878
|
-
|
|
879
|
-
rocksdb::ColumnFamilyHandle* column = nullptr;
|
|
880
|
-
NAPI_STATUS_THROWS(GetProperty(env, options, "column", column));
|
|
881
|
-
|
|
882
|
-
auto updates =
|
|
883
|
-
std::unique_ptr<Updates>(new Updates(database, since, keys, values, data, column, keyEncoding, valueEncoding));
|
|
884
|
-
|
|
885
|
-
napi_value result;
|
|
886
|
-
NAPI_STATUS_THROWS(napi_create_external(env, updates.get(), Finalize<Updates>, updates.get(), &result));
|
|
887
|
-
|
|
888
|
-
// Prevent GC of JS object before the iterator is closed (explicitly or on
|
|
889
|
-
// db close) and keep track of non-closed iterators to end them on db close.
|
|
890
|
-
NAPI_STATUS_THROWS(updates.release()->Attach(env, result));
|
|
891
|
-
|
|
892
|
-
return result;
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
NAPI_METHOD(updates_next) {
|
|
896
|
-
NAPI_ARGV(2);
|
|
897
|
-
|
|
898
|
-
Updates* updates;
|
|
899
|
-
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&updates)));
|
|
900
|
-
|
|
901
|
-
auto callback = argv[1];
|
|
902
|
-
|
|
903
|
-
runAsync<rocksdb::BatchResult>(
|
|
904
|
-
"leveldown.updates.next", env, callback,
|
|
905
|
-
[=](auto& batchResult) {
|
|
906
|
-
if (!updates->iterator_) {
|
|
907
|
-
rocksdb::TransactionLogIterator::ReadOptions options;
|
|
908
|
-
const auto status = updates->database_->db->GetUpdatesSince(updates->start_, &updates->iterator_, options);
|
|
909
|
-
if (!status.ok()) {
|
|
910
|
-
return status;
|
|
911
|
-
}
|
|
912
|
-
} else if (updates->iterator_->Valid()) {
|
|
913
|
-
updates->iterator_->Next();
|
|
914
|
-
}
|
|
915
|
-
|
|
916
|
-
if (!updates->iterator_->Valid() || !updates->iterator_->status().ok()) {
|
|
917
|
-
return updates->iterator_->status();
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
batchResult = updates->iterator_->GetBatch();
|
|
921
|
-
|
|
922
|
-
return rocksdb::Status::OK();
|
|
923
|
-
},
|
|
924
|
-
[=](auto& batchResult, auto env, auto& argv) {
|
|
925
|
-
if (!batchResult.writeBatchPtr) {
|
|
926
|
-
return napi_ok;
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
argv.resize(5);
|
|
930
|
-
NAPI_STATUS_RETURN(updates->Iterate(env, *batchResult.writeBatchPtr, &argv[1]));
|
|
931
|
-
NAPI_STATUS_RETURN(napi_create_int64(env, batchResult.sequence, &argv[2]));
|
|
932
|
-
NAPI_STATUS_RETURN(napi_create_int64(env, batchResult.writeBatchPtr->Count(), &argv[3]));
|
|
933
|
-
NAPI_STATUS_RETURN(napi_create_int64(env, updates->start_, &argv[4]));
|
|
934
|
-
|
|
935
|
-
return napi_ok;
|
|
936
|
-
});
|
|
937
|
-
|
|
938
|
-
return 0;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
NAPI_METHOD(updates_close) {
|
|
942
|
-
NAPI_ARGV(1);
|
|
943
|
-
|
|
944
|
-
Updates* updates;
|
|
945
|
-
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&updates)));
|
|
946
|
-
|
|
947
|
-
ROCKS_STATUS_THROWS_NAPI(updates->Close());
|
|
948
|
-
NAPI_STATUS_THROWS(updates->Detach(env));
|
|
949
|
-
|
|
950
|
-
return 0;
|
|
951
|
-
}
|
|
952
|
-
|
|
953
810
|
NAPI_METHOD(db_get_many) {
|
|
954
811
|
NAPI_ARGV(4);
|
|
955
812
|
|
|
@@ -1731,10 +1588,6 @@ NAPI_INIT() {
|
|
|
1731
1588
|
NAPI_EXPORT_FUNCTION(iterator_nextv);
|
|
1732
1589
|
NAPI_EXPORT_FUNCTION(iterator_get_sequence);
|
|
1733
1590
|
|
|
1734
|
-
NAPI_EXPORT_FUNCTION(updates_init);
|
|
1735
|
-
NAPI_EXPORT_FUNCTION(updates_close);
|
|
1736
|
-
NAPI_EXPORT_FUNCTION(updates_next);
|
|
1737
|
-
|
|
1738
1591
|
NAPI_EXPORT_FUNCTION(batch_do);
|
|
1739
1592
|
NAPI_EXPORT_FUNCTION(batch_init);
|
|
1740
1593
|
NAPI_EXPORT_FUNCTION(batch_put);
|