@nxtedition/rocksdb 10.1.5 → 10.2.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 +19 -11
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -5
- package/deps/rocksdb/rocksdb/Makefile +38 -15
- package/deps/rocksdb/rocksdb/TARGETS +10 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +58 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +4 -4
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +4 -2
- package/deps/rocksdb/rocksdb/db/builder.cc +2 -2
- package/deps/rocksdb/rocksdb/db/builder.h +1 -1
- package/deps/rocksdb/rocksdb/db/c.cc +205 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +189 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +28 -0
- package/deps/rocksdb/rocksdb/db/column_family.h +17 -0
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +234 -60
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +8 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +11 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +22 -25
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +112 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +72 -21
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +77 -0
- package/deps/rocksdb/rocksdb/db/convenience.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +269 -112
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +107 -43
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +93 -24
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +157 -68
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +56 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +78 -105
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +39 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +21 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +107 -63
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +43 -2
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +4 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_test.cc +10 -2
- package/deps/rocksdb/rocksdb/db/db_test2.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +7 -6
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +92 -2
- package/deps/rocksdb/rocksdb/db/error_handler.cc +34 -39
- package/deps/rocksdb/rocksdb/db/error_handler.h +3 -4
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +6 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +71 -15
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +11 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +383 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +88 -72
- package/deps/rocksdb/rocksdb/db/flush_job.cc +30 -3
- package/deps/rocksdb/rocksdb/db/flush_job.h +14 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +60 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +20 -1
- package/deps/rocksdb/rocksdb/db/log_writer.cc +24 -0
- package/deps/rocksdb/rocksdb/db/log_writer.h +5 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +6 -4
- package/deps/rocksdb/rocksdb/db/memtable.h +10 -10
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +4 -4
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +10 -3
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +8 -10
- package/deps/rocksdb/rocksdb/db/repair.cc +4 -3
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +30 -0
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +9 -0
- package/deps/rocksdb/rocksdb/db/table_cache.cc +17 -2
- package/deps/rocksdb/rocksdb/db/table_cache.h +9 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +9 -2
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +3 -3
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_edit.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -6
- package/deps/rocksdb/rocksdb/db/version_set.cc +54 -31
- package/deps/rocksdb/rocksdb/db/version_set.h +14 -7
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +37 -29
- package/deps/rocksdb/rocksdb/db/wal_manager.h +6 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +54 -23
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +46 -5
- package/deps/rocksdb/rocksdb/db/write_thread.cc +53 -5
- package/deps/rocksdb/rocksdb/db/write_thread.h +36 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +57 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +11 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +8 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +10 -25
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +25 -88
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_filters.cc +93 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_filters.h +16 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +43 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +109 -21
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +8 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +666 -205
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +55 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +18 -16
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +782 -494
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +21 -0
- package/deps/rocksdb/rocksdb/env/env.cc +6 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +0 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +34 -19
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +29 -32
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +41 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +4 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +63 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +16 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +0 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +21 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +76 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +17 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +12 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +31 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/user_write_callback.h +29 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +4 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +17 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +13 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +6 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +8 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +9 -5
- package/deps/rocksdb/rocksdb/options/options.cc +3 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +1 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +2 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +1 -0
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +3 -2
- package/deps/rocksdb/rocksdb/src.mk +4 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +15 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +102 -41
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +15 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +31 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +10 -5
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +11 -15
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +17 -11
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -21
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +9 -11
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -16
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +14 -9
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +82 -41
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +13 -14
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +18 -22
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +51 -13
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +3 -11
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -3
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +9 -10
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +3 -2
- package/deps/rocksdb/rocksdb/table/format.cc +1 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +18 -13
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +5 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +2 -2
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +3 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +8 -7
- package/deps/rocksdb/rocksdb/table/table_reader.h +9 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +6 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +19 -0
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +434 -110
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +3 -1
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +3 -0
- package/deps/rocksdb/rocksdb/util/aligned_storage.h +24 -0
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/random.cc +2 -1
- package/deps/rocksdb/rocksdb/util/stderr_logger.h +1 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +33 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +7 -0
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +33 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +5 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +10 -3
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +13 -13
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +104 -48
- package/deps/rocksdb/rocksdb/utilities/debug.cc +16 -4
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +647 -235
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -157
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +144 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +45 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector_test.cc +139 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +12 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +105 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +64 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +43 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +154 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +158 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +16 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +9 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +43 -7
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +1 -1
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/.tap/test-results/node_modules/abstract-level/test/chained-batch-test.js.tap +0 -0
- package/.tap/test-results/node_modules/abstract-level/test/get-test.js.tap +0 -0
- package/.tap/test-results/test/abstract-level-test.js.tap +0 -1077
- package/.tap/test-results/test/batch-test.js.tap +0 -12
- package/.tap/test-results/test/chained-batch-gc-test.js.tap +0 -11
- package/.tap/test-results/test/cleanup-hanging-iterators-test.js.tap +0 -135
- package/.tap/test-results/test/clear-gc-test.js.tap +0 -13
- package/.tap/test-results/test/column-test.js.tap +0 -55
- package/.tap/test-results/test/common.js.tap +0 -0
- package/.tap/test-results/test/compression-test.js.tap +0 -30
- package/.tap/test-results/test/db-identity.js.tap +0 -12
- package/.tap/test-results/test/electron.js.tap +0 -0
- package/.tap/test-results/test/env-cleanup-hook-test.js.tap +0 -40
- package/.tap/test-results/test/env-cleanup-hook.js.tap +0 -0
- package/.tap/test-results/test/gc.js.tap +0 -0
- package/.tap/test-results/test/getproperty-test.js.tap +0 -29
- package/.tap/test-results/test/iterator-gc-test.js.tap +0 -15
- package/.tap/test-results/test/iterator-hwm-test.js.tap +0 -131
- package/.tap/test-results/test/iterator-recursion-test.js.tap +0 -12
- package/.tap/test-results/test/iterator-starvation-test.js.tap +0 -73
- package/.tap/test-results/test/iterator-test.js.tap +0 -6
- package/.tap/test-results/test/leak-tester-batch.js.tap +0 -0
- package/.tap/test-results/test/leak-tester-iterator.js.tap +0 -0
- package/.tap/test-results/test/leak-tester.js.tap +0 -0
- package/.tap/test-results/test/lock-test.js.tap +0 -18
- package/.tap/test-results/test/lock.js.tap +0 -0
- package/.tap/test-results/test/make.js.tap +0 -0
- package/.tap/test-results/test/max-rev-merge.js.tap +0 -0
- package/.tap/test-results/test/merge-operator-test.js.tap +0 -12
- package/.tap/test-results/test/mkdir-test.js.tap +0 -15
- package/.tap/test-results/test/segfault-test.js.tap +0 -76
- package/.tap/test-results/test/stack-blower.js.tap +0 -0
- package/deps/rocksdb/rocksdb/README.md +0 -29
- package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
- package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
- package/deps/rocksdb/rocksdb/port/README +0 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
package/binding.cc
CHANGED
|
@@ -445,8 +445,7 @@ struct Iterator final : public BaseIterator {
|
|
|
445
445
|
values_(values),
|
|
446
446
|
keyEncoding_(keyEncoding),
|
|
447
447
|
valueEncoding_(valueEncoding),
|
|
448
|
-
highWaterMarkBytes_(highWaterMarkBytes) {
|
|
449
|
-
}
|
|
448
|
+
highWaterMarkBytes_(highWaterMarkBytes) {}
|
|
450
449
|
|
|
451
450
|
void Seek(const rocksdb::Slice& target) override {
|
|
452
451
|
first_ = true;
|
|
@@ -975,12 +974,17 @@ NAPI_METHOD(db_get_many) {
|
|
|
975
974
|
rocksdb::ColumnFamilyHandle* column = database->db->DefaultColumnFamily();
|
|
976
975
|
NAPI_STATUS_THROWS(GetProperty(env, options, "column", column));
|
|
977
976
|
|
|
977
|
+
bool takeSnapshot = true;
|
|
978
|
+
NAPI_STATUS_THROWS(GetProperty(env, options, "snapshot", takeSnapshot));
|
|
979
|
+
|
|
978
980
|
auto callback = argv[3];
|
|
979
981
|
|
|
980
|
-
|
|
981
|
-
|
|
982
|
+
std::shared_ptr<const rocksdb::Snapshot> snapshot;
|
|
983
|
+
if (takeSnapshot) {
|
|
984
|
+
snapshot.reset(database->db->GetSnapshot(), [=](const auto ptr) { database->db->ReleaseSnapshot(ptr); });
|
|
985
|
+
}
|
|
982
986
|
|
|
983
|
-
std::vector<rocksdb::PinnableSlice> keys
|
|
987
|
+
std::vector<rocksdb::PinnableSlice> keys{size};
|
|
984
988
|
|
|
985
989
|
for (uint32_t n = 0; n < size; n++) {
|
|
986
990
|
napi_value element;
|
|
@@ -1012,7 +1016,8 @@ NAPI_METHOD(db_get_many) {
|
|
|
1012
1016
|
state.keys[n] = keys[n];
|
|
1013
1017
|
}
|
|
1014
1018
|
|
|
1015
|
-
database->db->MultiGet(readOptions, column, size, state.keys.data(), state.values.data(),
|
|
1019
|
+
database->db->MultiGet(readOptions, column, size, state.keys.data(), state.values.data(),
|
|
1020
|
+
state.statuses.data());
|
|
1016
1021
|
|
|
1017
1022
|
return rocksdb::Status::OK();
|
|
1018
1023
|
},
|
|
@@ -1230,8 +1235,13 @@ NAPI_METHOD(iterator_init) {
|
|
|
1230
1235
|
rocksdb::ColumnFamilyHandle* column = database->db->DefaultColumnFamily();
|
|
1231
1236
|
NAPI_STATUS_THROWS(GetProperty(env, options, "column", column));
|
|
1232
1237
|
|
|
1233
|
-
|
|
1234
|
-
|
|
1238
|
+
bool takeSnapshot = !tailing;
|
|
1239
|
+
NAPI_STATUS_THROWS(GetProperty(env, options, "snapshot", takeSnapshot));
|
|
1240
|
+
|
|
1241
|
+
std::shared_ptr<const rocksdb::Snapshot> snapshot;
|
|
1242
|
+
if (takeSnapshot) {
|
|
1243
|
+
snapshot.reset(database->db->GetSnapshot(), [=](const auto ptr) { database->db->ReleaseSnapshot(ptr); });
|
|
1244
|
+
}
|
|
1235
1245
|
|
|
1236
1246
|
auto iterator = std::unique_ptr<Iterator>(new Iterator(database, column, reverse, keys, values, limit, lt, lte, gt,
|
|
1237
1247
|
gte, fillCache, keyEncoding, valueEncoding, highWaterMarkBytes,
|
|
@@ -1477,9 +1487,7 @@ NAPI_METHOD(batch_write) {
|
|
|
1477
1487
|
writeOptions.low_pri = lowPriority;
|
|
1478
1488
|
return database->db->Write(writeOptions, batch);
|
|
1479
1489
|
},
|
|
1480
|
-
[=](int64_t& seq, auto env, auto& argv) {
|
|
1481
|
-
return napi_ok;
|
|
1482
|
-
});
|
|
1490
|
+
[=](int64_t& seq, auto env, auto& argv) { return napi_ok; });
|
|
1483
1491
|
|
|
1484
1492
|
return result;
|
|
1485
1493
|
}
|
|
@@ -267,8 +267,8 @@ endif(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x")
|
|
|
267
267
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
|
|
268
268
|
CHECK_C_COMPILER_FLAG("-march=loongarch64" HAS_LOONGARCH64)
|
|
269
269
|
if(HAS_LOONGARCH64)
|
|
270
|
-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -
|
|
271
|
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -
|
|
270
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=loongarch64 -mtune=loongarch64")
|
|
271
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=loongarch64 -mtune=loongarch64")
|
|
272
272
|
endif(HAS_LOONGARCH64)
|
|
273
273
|
endif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
|
|
274
274
|
|
|
@@ -488,6 +488,8 @@ if(CMAKE_SYSTEM_NAME MATCHES "Cygwin")
|
|
|
488
488
|
add_definitions(-fno-builtin-memcmp -DCYGWIN)
|
|
489
489
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
490
490
|
add_definitions(-DOS_MACOSX)
|
|
491
|
+
elseif(CMAKE_SYSTEM_NAME MATCHES "iOS")
|
|
492
|
+
add_definitions(-DOS_MACOSX -DIOS_CROSS_COMPILE)
|
|
491
493
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
492
494
|
add_definitions(-DOS_LINUX)
|
|
493
495
|
elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
|
@@ -615,7 +617,7 @@ if(USE_FOLLY)
|
|
|
615
617
|
FMT_INST_PATH)
|
|
616
618
|
exec_program(ls ARGS -d ${FOLLY_INST_PATH}/../gflags* OUTPUT_VARIABLE
|
|
617
619
|
GFLAGS_INST_PATH)
|
|
618
|
-
set(Boost_DIR ${BOOST_INST_PATH}/lib/cmake/Boost-1.
|
|
620
|
+
set(Boost_DIR ${BOOST_INST_PATH}/lib/cmake/Boost-1.83.0)
|
|
619
621
|
if(EXISTS ${FMT_INST_PATH}/lib64)
|
|
620
622
|
set(fmt_DIR ${FMT_INST_PATH}/lib64/cmake/fmt)
|
|
621
623
|
else()
|
|
@@ -691,6 +693,7 @@ set(SOURCES
|
|
|
691
693
|
db/db_impl/db_impl_write.cc
|
|
692
694
|
db/db_impl/db_impl_compaction_flush.cc
|
|
693
695
|
db/db_impl/db_impl_files.cc
|
|
696
|
+
db/db_impl/db_impl_follower.cc
|
|
694
697
|
db/db_impl/db_impl_open.cc
|
|
695
698
|
db/db_impl/db_impl_debug.cc
|
|
696
699
|
db/db_impl/db_impl_experimental.cc
|
|
@@ -748,6 +751,7 @@ set(SOURCES
|
|
|
748
751
|
env/env_encryption.cc
|
|
749
752
|
env/file_system.cc
|
|
750
753
|
env/file_system_tracer.cc
|
|
754
|
+
env/fs_on_demand.cc
|
|
751
755
|
env/fs_remap.cc
|
|
752
756
|
env/mock_env.cc
|
|
753
757
|
env/unique_id_gen.cc
|
|
@@ -935,6 +939,7 @@ set(SOURCES
|
|
|
935
939
|
utilities/persistent_cache/volatile_tier_impl.cc
|
|
936
940
|
utilities/simulator_cache/cache_simulator.cc
|
|
937
941
|
utilities/simulator_cache/sim_cache.cc
|
|
942
|
+
utilities/table_properties_collectors/compact_for_tiering_collector.cc
|
|
938
943
|
utilities/table_properties_collectors/compact_on_deletion_collector.cc
|
|
939
944
|
utilities/trace/file_trace_reader_writer.cc
|
|
940
945
|
utilities/trace/replayer_impl.cc
|
|
@@ -1037,10 +1042,8 @@ endif()
|
|
|
1037
1042
|
|
|
1038
1043
|
else()
|
|
1039
1044
|
list(APPEND SOURCES
|
|
1040
|
-
db/db_impl/db_impl_follower.cc
|
|
1041
1045
|
port/port_posix.cc
|
|
1042
1046
|
env/env_posix.cc
|
|
1043
|
-
env/fs_on_demand.cc
|
|
1044
1047
|
env/fs_posix.cc
|
|
1045
1048
|
env/io_posix.cc)
|
|
1046
1049
|
endif()
|
|
@@ -1049,6 +1052,7 @@ if(USE_FOLLY_LITE)
|
|
|
1049
1052
|
list(APPEND SOURCES
|
|
1050
1053
|
third-party/folly/folly/container/detail/F14Table.cpp
|
|
1051
1054
|
third-party/folly/folly/detail/Futex.cpp
|
|
1055
|
+
third-party/folly/folly/lang/Exception.cpp
|
|
1052
1056
|
third-party/folly/folly/lang/SafeAssert.cpp
|
|
1053
1057
|
third-party/folly/folly/lang/ToAscii.cpp
|
|
1054
1058
|
third-party/folly/folly/ScopeGuard.cpp
|
|
@@ -1056,6 +1060,12 @@ if(USE_FOLLY_LITE)
|
|
|
1056
1060
|
third-party/folly/folly/synchronization/DistributedMutex.cpp
|
|
1057
1061
|
third-party/folly/folly/synchronization/ParkingLot.cpp)
|
|
1058
1062
|
include_directories(${PROJECT_SOURCE_DIR}/third-party/folly)
|
|
1063
|
+
exec_program(python3 ${PROJECT_SOURCE_DIR}/third-party/folly ARGS
|
|
1064
|
+
build/fbcode_builder/getdeps.py show-source-dir boost OUTPUT_VARIABLE
|
|
1065
|
+
BOOST_SOURCE_PATH)
|
|
1066
|
+
exec_program(ls ARGS -d ${BOOST_SOURCE_PATH}/boost* OUTPUT_VARIABLE
|
|
1067
|
+
BOOST_INCLUDE_DIR)
|
|
1068
|
+
include_directories(${BOOST_INCLUDE_DIR})
|
|
1059
1069
|
add_definitions(-DUSE_FOLLY -DFOLLY_NO_CONFIG)
|
|
1060
1070
|
list(APPEND THIRDPARTY_LIBS glog)
|
|
1061
1071
|
endif()
|
|
@@ -1479,6 +1489,7 @@ if(WITH_TESTS)
|
|
|
1479
1489
|
utilities/persistent_cache/persistent_cache_test.cc
|
|
1480
1490
|
utilities/simulator_cache/cache_simulator_test.cc
|
|
1481
1491
|
utilities/simulator_cache/sim_cache_test.cc
|
|
1492
|
+
utilities/table_properties_collectors/compact_for_tiering_collector_test.cc
|
|
1482
1493
|
utilities/table_properties_collectors/compact_on_deletion_collector_test.cc
|
|
1483
1494
|
utilities/transactions/optimistic_transaction_test.cc
|
|
1484
1495
|
utilities/transactions/transaction_test.cc
|
|
@@ -103,6 +103,7 @@ dummy := $(shell (export ROCKSDB_ROOT="$(CURDIR)"; \
|
|
|
103
103
|
export LIB_MODE="$(LIB_MODE)"; \
|
|
104
104
|
export ROCKSDB_CXX_STANDARD="$(ROCKSDB_CXX_STANDARD)"; \
|
|
105
105
|
export USE_FOLLY="$(USE_FOLLY)"; \
|
|
106
|
+
export USE_FOLLY_LITE="$(USE_FOLLY_LITE)"; \
|
|
106
107
|
"$(CURDIR)/build_tools/build_detect_platform" "$(CURDIR)/make_config.mk"))
|
|
107
108
|
# this file is generated by the previous line to set build flags and sources
|
|
108
109
|
include make_config.mk
|
|
@@ -500,6 +501,17 @@ endif
|
|
|
500
501
|
ifeq ($(USE_FOLLY_LITE),1)
|
|
501
502
|
# Path to the Folly source code and include files
|
|
502
503
|
FOLLY_DIR = ./third-party/folly
|
|
504
|
+
ifneq ($(strip $(BOOST_SOURCE_PATH)),)
|
|
505
|
+
BOOST_INCLUDE = $(shell (ls -d $(BOOST_SOURCE_PATH)/boost*/))
|
|
506
|
+
# AIX: pre-defined system headers are surrounded by an extern "C" block
|
|
507
|
+
ifeq ($(PLATFORM), OS_AIX)
|
|
508
|
+
PLATFORM_CCFLAGS += -I$(BOOST_INCLUDE)
|
|
509
|
+
PLATFORM_CXXFLAGS += -I$(BOOST_INCLUDE)
|
|
510
|
+
else
|
|
511
|
+
PLATFORM_CCFLAGS += -isystem $(BOOST_INCLUDE)
|
|
512
|
+
PLATFORM_CXXFLAGS += -isystem $(BOOST_INCLUDE)
|
|
513
|
+
endif
|
|
514
|
+
endif # BOOST_SOURCE_PATH
|
|
503
515
|
# AIX: pre-defined system headers are surrounded by an extern "C" block
|
|
504
516
|
ifeq ($(PLATFORM), OS_AIX)
|
|
505
517
|
PLATFORM_CCFLAGS += -I$(FOLLY_DIR)
|
|
@@ -636,26 +648,37 @@ TESTS = $(patsubst %.cc, %, $(notdir $(TEST_MAIN_SOURCES)))
|
|
|
636
648
|
TESTS += $(patsubst %.c, %, $(notdir $(TEST_MAIN_SOURCES_C)))
|
|
637
649
|
TESTS += $(PLUGIN_TESTS)
|
|
638
650
|
|
|
639
|
-
# `make check-headers` to
|
|
640
|
-
#
|
|
651
|
+
# `make check-headers` to verify that each header file includes its own deps
|
|
652
|
+
# and that public headers do not depend on internal headers
|
|
641
653
|
ifneq ($(filter check-headers, $(MAKECMDGOALS)),)
|
|
642
654
|
# TODO: add/support JNI headers
|
|
643
655
|
DEV_HEADER_DIRS := $(sort include/ $(dir $(ALL_SOURCES)))
|
|
644
656
|
# Some headers like in port/ are platform-specific
|
|
645
|
-
|
|
657
|
+
DEV_HEADERS_TO_CHECK := $(shell $(FIND) $(DEV_HEADER_DIRS) -type f -name '*.h' | grep -E -v 'port/|plugin/|lua/|range_tree/')
|
|
658
|
+
PUBLIC_HEADERS_TO_CHECK := $(shell $(FIND) include/ -type f -name '*.h' | grep -E -v 'lua/')
|
|
646
659
|
else
|
|
647
|
-
|
|
660
|
+
DEV_HEADERS_TO_CHECK :=
|
|
661
|
+
PUBLIC_HEADERS_TO_CHECK :=
|
|
648
662
|
endif
|
|
649
|
-
HEADER_OK_FILES = $(patsubst %.h, %.h.ok, $(
|
|
663
|
+
HEADER_OK_FILES = $(patsubst %.h, %.h.ok, $(DEV_HEADERS_TO_CHECK)) \
|
|
664
|
+
$(patsubst %.h, %.h.pub, $(PUBLIC_HEADERS_TO_CHECK))
|
|
650
665
|
|
|
651
666
|
AM_V_CCH = $(am__v_CCH_$(V))
|
|
652
667
|
am__v_CCH_ = $(am__v_CCH_$(AM_DEFAULT_VERBOSITY))
|
|
653
668
|
am__v_CCH_0 = @echo " CC.h " $<;
|
|
654
669
|
am__v_CCH_1 =
|
|
655
670
|
|
|
671
|
+
# verify headers include their own dependencies, under dev build settings
|
|
656
672
|
%.h.ok: %.h # .h.ok not actually created, so re-checked on each invocation
|
|
657
673
|
# -DROCKSDB_NAMESPACE=42 ensures the namespace header is included
|
|
658
|
-
$(AM_V_CCH) echo '#include "$<"' | $(CXX) $(CXXFLAGS)
|
|
674
|
+
$(AM_V_CCH) echo '#include "$<"' | $(CXX) $(CXXFLAGS) \
|
|
675
|
+
-DROCKSDB_NAMESPACE=42 -x c++ -c - -o /dev/null
|
|
676
|
+
|
|
677
|
+
# verify public headers do not depend on internal headers, under typical
|
|
678
|
+
# user build settings
|
|
679
|
+
%.h.pub: %.h # .h.pub not actually created, so re-checked on each invocation
|
|
680
|
+
$(AM_V_CCH) cd include/ && echo '#include "$(patsubst include/%,%,$<)"' | \
|
|
681
|
+
$(CXX) -I. -DROCKSDB_NAMESPACE=42 -x c++ -c - -o /dev/null
|
|
659
682
|
|
|
660
683
|
check-headers: $(HEADER_OK_FILES)
|
|
661
684
|
|
|
@@ -1631,6 +1654,9 @@ compaction_job_stats_test: $(OBJ_DIR)/db/compaction/compaction_job_stats_test.o
|
|
|
1631
1654
|
compaction_service_test: $(OBJ_DIR)/db/compaction/compaction_service_test.o $(TEST_LIBRARY) $(LIBRARY)
|
|
1632
1655
|
$(AM_LINK)
|
|
1633
1656
|
|
|
1657
|
+
compact_for_tiering_collector_test: $(OBJ_DIR)/utilities/table_properties_collectors/compact_for_tiering_collector_test.o $(TEST_LIBRARY) $(LIBRARY)
|
|
1658
|
+
$(AM_LINK)
|
|
1659
|
+
|
|
1634
1660
|
compact_on_deletion_collector_test: $(OBJ_DIR)/utilities/table_properties_collectors/compact_on_deletion_collector_test.o $(TEST_LIBRARY) $(LIBRARY)
|
|
1635
1661
|
$(AM_LINK)
|
|
1636
1662
|
|
|
@@ -2113,8 +2139,8 @@ ZLIB_DOWNLOAD_BASE ?= http://zlib.net
|
|
|
2113
2139
|
BZIP2_VER ?= 1.0.8
|
|
2114
2140
|
BZIP2_SHA256 ?= ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269
|
|
2115
2141
|
BZIP2_DOWNLOAD_BASE ?= http://sourceware.org/pub/bzip2
|
|
2116
|
-
SNAPPY_VER ?= 1.1
|
|
2117
|
-
SNAPPY_SHA256 ?=
|
|
2142
|
+
SNAPPY_VER ?= 1.2.1
|
|
2143
|
+
SNAPPY_SHA256 ?= 736aeb64d86566d2236ddffa2865ee5d7a82d26c9016b36218fcc27ea4f09f86
|
|
2118
2144
|
SNAPPY_DOWNLOAD_BASE ?= https://github.com/google/snappy/archive
|
|
2119
2145
|
LZ4_VER ?= 1.9.4
|
|
2120
2146
|
LZ4_SHA256 ?= 0b0e3aa07c8c063ddf40b082bdf7e37a1562bda40a0ff5272957f3e987e0e54b
|
|
@@ -2211,7 +2237,7 @@ libsnappy.a: snappy-$(SNAPPY_VER).tar.gz
|
|
|
2211
2237
|
-rm -rf snappy-$(SNAPPY_VER)
|
|
2212
2238
|
tar xvzf snappy-$(SNAPPY_VER).tar.gz
|
|
2213
2239
|
mkdir snappy-$(SNAPPY_VER)/build
|
|
2214
|
-
cd snappy-$(SNAPPY_VER)/build && CFLAGS='$(ARCHFLAG) ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' CXXFLAGS='$(ARCHFLAG) ${JAVA_STATIC_DEPS_CXXFLAGS} ${EXTRA_CXXFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ${PLATFORM_CMAKE_FLAGS} .. && $(MAKE) ${SNAPPY_MAKE_TARGET}
|
|
2240
|
+
cd snappy-$(SNAPPY_VER)/build && CFLAGS='$(ARCHFLAG) ${JAVA_STATIC_DEPS_CCFLAGS} ${EXTRA_CFLAGS}' CXXFLAGS='$(ARCHFLAG) ${JAVA_STATIC_DEPS_CXXFLAGS} ${EXTRA_CXXFLAGS}' LDFLAGS='${JAVA_STATIC_DEPS_LDFLAGS} ${EXTRA_LDFLAGS}' cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DSNAPPY_BUILD_BENCHMARKS=OFF -DSNAPPY_BUILD_TESTS=OFF --compile-no-warning-as-error ${PLATFORM_CMAKE_FLAGS} .. && $(MAKE) ${SNAPPY_MAKE_TARGET}
|
|
2215
2241
|
cp snappy-$(SNAPPY_VER)/build/libsnappy.a .
|
|
2216
2242
|
|
|
2217
2243
|
lz4-$(LZ4_VER).tar.gz:
|
|
@@ -2458,14 +2484,13 @@ checkout_folly:
|
|
|
2458
2484
|
fi
|
|
2459
2485
|
@# Pin to a particular version for public CI, so that PR authors don't
|
|
2460
2486
|
@# need to worry about folly breaking our integration. Update periodically
|
|
2461
|
-
cd third-party/folly && git reset --hard
|
|
2462
|
-
@# A hack to remove boost dependency.
|
|
2463
|
-
@# NOTE: this hack is only needed if building using USE_FOLLY_LITE
|
|
2464
|
-
perl -pi -e 's/^(#include <boost)/\/\/$$1/' third-party/folly/folly/functional/Invoke.h
|
|
2487
|
+
cd third-party/folly && git reset --hard c48fdd205c1c291651749d532b8055fe822bba25
|
|
2465
2488
|
@# NOTE: this hack is required for clang in some cases
|
|
2466
2489
|
perl -pi -e 's/int rv = syscall/int rv = (int)syscall/' third-party/folly/folly/detail/Futex.cpp
|
|
2467
2490
|
@# NOTE: this hack is required for gcc in some cases
|
|
2468
2491
|
perl -pi -e 's/(__has_include.<experimental.memory_resource>.)/__cpp_rtti && $$1/' third-party/folly/folly/memory/MemoryResource.h
|
|
2492
|
+
@# NOTE: boost source will be needed for any build including `USE_FOLLY_LITE` builds as those depend on boost headers
|
|
2493
|
+
cd third-party/folly && $(PYTHON) build/fbcode_builder/getdeps.py fetch boost
|
|
2469
2494
|
|
|
2470
2495
|
CXX_M_FLAGS = $(filter -m%, $(CXXFLAGS))
|
|
2471
2496
|
|
|
@@ -2477,8 +2502,6 @@ build_folly:
|
|
|
2477
2502
|
echo "Please run checkout_folly first"; \
|
|
2478
2503
|
false; \
|
|
2479
2504
|
fi
|
|
2480
|
-
# Restore the original version of Invoke.h with boost dependency
|
|
2481
|
-
cd third-party/folly && ${GIT_COMMAND} checkout folly/functional/Invoke.h
|
|
2482
2505
|
cd third-party/folly && \
|
|
2483
2506
|
CXXFLAGS=" $(CXX_M_FLAGS) -DHAVE_CXX11_ATOMIC " $(PYTHON) build/fbcode_builder/getdeps.py build --no-tests
|
|
2484
2507
|
|
|
@@ -317,6 +317,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
317
317
|
"utilities/persistent_cache/volatile_tier_impl.cc",
|
|
318
318
|
"utilities/simulator_cache/cache_simulator.cc",
|
|
319
319
|
"utilities/simulator_cache/sim_cache.cc",
|
|
320
|
+
"utilities/table_properties_collectors/compact_for_tiering_collector.cc",
|
|
320
321
|
"utilities/table_properties_collectors/compact_on_deletion_collector.cc",
|
|
321
322
|
"utilities/trace/file_trace_reader_writer.cc",
|
|
322
323
|
"utilities/trace/replayer_impl.cc",
|
|
@@ -394,6 +395,7 @@ rocks_cpp_library_wrapper(name="rocksdb_stress_lib", srcs=[
|
|
|
394
395
|
"db_stress_tool/cf_consistency_stress.cc",
|
|
395
396
|
"db_stress_tool/db_stress_common.cc",
|
|
396
397
|
"db_stress_tool/db_stress_driver.cc",
|
|
398
|
+
"db_stress_tool/db_stress_filters.cc",
|
|
397
399
|
"db_stress_tool/db_stress_gflags.cc",
|
|
398
400
|
"db_stress_tool/db_stress_listener.cc",
|
|
399
401
|
"db_stress_tool/db_stress_shared_state.cc",
|
|
@@ -411,6 +413,8 @@ rocks_cpp_library_wrapper(name="rocksdb_stress_lib", srcs=[
|
|
|
411
413
|
], headers=None)
|
|
412
414
|
|
|
413
415
|
|
|
416
|
+
cpp_binary_wrapper(name="ldb", srcs=["tools/ldb.cc"], deps=[":rocksdb_tools_lib"], extra_preprocessor_flags=[], extra_bench_libs=False)
|
|
417
|
+
|
|
414
418
|
cpp_binary_wrapper(name="db_stress", srcs=["db_stress_tool/db_stress.cc"], deps=[":rocksdb_stress_lib"], extra_preprocessor_flags=[], extra_bench_libs=False)
|
|
415
419
|
|
|
416
420
|
cpp_binary_wrapper(name="cache_bench", srcs=["cache/cache_bench.cc"], deps=[":rocksdb_cache_bench_tools_lib"], extra_preprocessor_flags=[], extra_bench_libs=False)
|
|
@@ -4624,6 +4628,12 @@ cpp_unittest_wrapper(name="compact_files_test",
|
|
|
4624
4628
|
extra_compiler_flags=[])
|
|
4625
4629
|
|
|
4626
4630
|
|
|
4631
|
+
cpp_unittest_wrapper(name="compact_for_tiering_collector_test",
|
|
4632
|
+
srcs=["utilities/table_properties_collectors/compact_for_tiering_collector_test.cc"],
|
|
4633
|
+
deps=[":rocksdb_test_lib"],
|
|
4634
|
+
extra_compiler_flags=[])
|
|
4635
|
+
|
|
4636
|
+
|
|
4627
4637
|
cpp_unittest_wrapper(name="compact_on_deletion_collector_test",
|
|
4628
4638
|
srcs=["utilities/table_properties_collectors/compact_on_deletion_collector_test.cc"],
|
|
4629
4639
|
deps=[":rocksdb_test_lib"],
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
#include "cache/lru_cache.h"
|
|
19
19
|
#include "cache/typed_cache.h"
|
|
20
20
|
#include "port/stack_trace.h"
|
|
21
|
+
#include "table/block_based/block_cache.h"
|
|
21
22
|
#include "test_util/secondary_cache_test_util.h"
|
|
22
23
|
#include "test_util/testharness.h"
|
|
23
24
|
#include "util/coding.h"
|
|
@@ -1017,6 +1018,63 @@ INSTANTIATE_TEST_CASE_P(CacheTestInstance, CacheTest,
|
|
|
1017
1018
|
INSTANTIATE_TEST_CASE_P(CacheTestInstance, LRUCacheTest,
|
|
1018
1019
|
testing::Values(secondary_cache_test_util::kLRU));
|
|
1019
1020
|
|
|
1021
|
+
TEST(MiscBlockCacheTest, UncacheAggressivenessAdvisor) {
|
|
1022
|
+
// Aggressiveness to a sequence of Report() calls (as string of 0s and 1s)
|
|
1023
|
+
// exactly until the first ShouldContinue() == false.
|
|
1024
|
+
const std::vector<std::pair<uint32_t, Slice>> expectedTraces{
|
|
1025
|
+
// Aggressiveness 1 aborts on first unsuccessful erasure.
|
|
1026
|
+
{1, "0"},
|
|
1027
|
+
{1, "11111111111111111111110"},
|
|
1028
|
+
// For sufficient evidence, aggressiveness 2 requires a minimum of two
|
|
1029
|
+
// unsuccessful erasures.
|
|
1030
|
+
{2, "00"},
|
|
1031
|
+
{2, "0110"},
|
|
1032
|
+
{2, "1100"},
|
|
1033
|
+
{2, "011111111111111111111111111111111111111111111111111111111111111100"},
|
|
1034
|
+
{2, "0111111111111111111111111111111111110"},
|
|
1035
|
+
// For sufficient evidence, aggressiveness 3 and higher require a minimum
|
|
1036
|
+
// of three unsuccessful erasures.
|
|
1037
|
+
{3, "000"},
|
|
1038
|
+
{3, "01010"},
|
|
1039
|
+
{3, "111000"},
|
|
1040
|
+
{3, "00111111111111111111111111111111111100"},
|
|
1041
|
+
{3, "00111111111111111111110"},
|
|
1042
|
+
|
|
1043
|
+
{4, "000"},
|
|
1044
|
+
{4, "01010"},
|
|
1045
|
+
{4, "111000"},
|
|
1046
|
+
{4, "001111111111111111111100"},
|
|
1047
|
+
{4, "0011111111111110"},
|
|
1048
|
+
|
|
1049
|
+
{6, "000"},
|
|
1050
|
+
{6, "01010"},
|
|
1051
|
+
{6, "111000"},
|
|
1052
|
+
{6, "00111111111111100"},
|
|
1053
|
+
{6, "0011111110"},
|
|
1054
|
+
|
|
1055
|
+
// 69 -> 50% threshold, now up to minimum of 4
|
|
1056
|
+
{69, "0000"},
|
|
1057
|
+
{69, "010000"},
|
|
1058
|
+
{69, "01010000"},
|
|
1059
|
+
{69, "101010100010101000"},
|
|
1060
|
+
|
|
1061
|
+
// 230 -> 10% threshold, appropriately higher minimum
|
|
1062
|
+
{230, "000000000000"},
|
|
1063
|
+
{230, "0000000000010000000000"},
|
|
1064
|
+
{230, "00000000000100000000010000000000"}};
|
|
1065
|
+
for (const auto& [aggressiveness, t] : expectedTraces) {
|
|
1066
|
+
SCOPED_TRACE("aggressiveness=" + std::to_string(aggressiveness) + " with " +
|
|
1067
|
+
t.ToString());
|
|
1068
|
+
UncacheAggressivenessAdvisor uaa(aggressiveness);
|
|
1069
|
+
for (size_t i = 0; i < t.size(); ++i) {
|
|
1070
|
+
SCOPED_TRACE("i=" + std::to_string(i));
|
|
1071
|
+
ASSERT_TRUE(uaa.ShouldContinue());
|
|
1072
|
+
uaa.Report(t[i] & 1);
|
|
1073
|
+
}
|
|
1074
|
+
ASSERT_FALSE(uaa.ShouldContinue());
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1020
1078
|
} // namespace ROCKSDB_NAMESPACE
|
|
1021
1079
|
|
|
1022
1080
|
int main(int argc, char** argv) {
|
|
@@ -138,10 +138,10 @@ Status ArenaWrappedDBIter::Refresh(const Snapshot* snapshot) {
|
|
|
138
138
|
reinit_internal_iter();
|
|
139
139
|
break;
|
|
140
140
|
} else {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
141
|
+
*memtable_range_tombstone_iter_ =
|
|
142
|
+
std::make_unique<TruncatedRangeDelIterator>(
|
|
143
|
+
std::unique_ptr<FragmentedRangeTombstoneIterator>(t),
|
|
144
|
+
&cfd->internal_comparator(), nullptr, nullptr);
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
db_impl->ReturnAndCleanupSuperVersion(cfd, sv);
|
|
@@ -55,7 +55,8 @@ class ArenaWrappedDBIter : public Iterator {
|
|
|
55
55
|
db_iter_->SetIter(iter);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
void SetMemtableRangetombstoneIter(
|
|
58
|
+
void SetMemtableRangetombstoneIter(
|
|
59
|
+
std::unique_ptr<TruncatedRangeDelIterator>* iter) {
|
|
59
60
|
memtable_range_tombstone_iter_ = iter;
|
|
60
61
|
}
|
|
61
62
|
|
|
@@ -110,7 +111,8 @@ class ArenaWrappedDBIter : public Iterator {
|
|
|
110
111
|
bool allow_refresh_ = true;
|
|
111
112
|
// If this is nullptr, it means the mutable memtable does not contain range
|
|
112
113
|
// tombstone when added under this DBIter.
|
|
113
|
-
TruncatedRangeDelIterator
|
|
114
|
+
std::unique_ptr<TruncatedRangeDelIterator>* memtable_range_tombstone_iter_ =
|
|
115
|
+
nullptr;
|
|
114
116
|
};
|
|
115
117
|
|
|
116
118
|
// Generate the arena wrapped iterator class.
|
|
@@ -64,7 +64,7 @@ Status BuildTable(
|
|
|
64
64
|
std::vector<std::unique_ptr<FragmentedRangeTombstoneIterator>>
|
|
65
65
|
range_del_iters,
|
|
66
66
|
FileMetaData* meta, std::vector<BlobFileAddition>* blob_file_additions,
|
|
67
|
-
std::vector<SequenceNumber> snapshots,
|
|
67
|
+
std::vector<SequenceNumber> snapshots, SequenceNumber earliest_snapshot,
|
|
68
68
|
SequenceNumber earliest_write_conflict_snapshot,
|
|
69
69
|
SequenceNumber job_snapshot, SnapshotChecker* snapshot_checker,
|
|
70
70
|
bool paranoid_file_checks, InternalStats* internal_stats,
|
|
@@ -195,7 +195,7 @@ Status BuildTable(
|
|
|
195
195
|
|
|
196
196
|
const std::atomic<bool> kManualCompactionCanceledFalse{false};
|
|
197
197
|
CompactionIterator c_iter(
|
|
198
|
-
iter, ucmp, &merge, kMaxSequenceNumber, &snapshots,
|
|
198
|
+
iter, ucmp, &merge, kMaxSequenceNumber, &snapshots, earliest_snapshot,
|
|
199
199
|
earliest_write_conflict_snapshot, job_snapshot, snapshot_checker, env,
|
|
200
200
|
ShouldReportDetailedTime(env, ioptions.stats),
|
|
201
201
|
true /* internal key corruption is not ok */, range_del_agg.get(),
|
|
@@ -57,7 +57,7 @@ Status BuildTable(
|
|
|
57
57
|
std::vector<std::unique_ptr<FragmentedRangeTombstoneIterator>>
|
|
58
58
|
range_del_iters,
|
|
59
59
|
FileMetaData* meta, std::vector<BlobFileAddition>* blob_file_additions,
|
|
60
|
-
std::vector<SequenceNumber> snapshots,
|
|
60
|
+
std::vector<SequenceNumber> snapshots, SequenceNumber earliest_snapshot,
|
|
61
61
|
SequenceNumber earliest_write_conflict_snapshot,
|
|
62
62
|
SequenceNumber job_snapshot, SnapshotChecker* snapshot_checker,
|
|
63
63
|
bool paranoid_file_checks, InternalStats* internal_stats,
|