@nxtedition/rocksdb 12.1.4 → 12.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 +1 -1
- package/deps/rocksdb/rocksdb/Makefile +10 -5
- package/deps/rocksdb/rocksdb/TARGETS +9 -7
- package/deps/rocksdb/rocksdb/cache/cache.cc +15 -11
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +26 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +16 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +6 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +38 -8
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +4 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +11 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +6 -0
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +56 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +12 -9
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +9 -0
- package/deps/rocksdb/rocksdb/db/c.cc +9 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +12 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +6 -23
- package/deps/rocksdb/rocksdb/db/column_family.h +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +4 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +14 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +19 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +34 -30
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +16 -31
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +7 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +95 -84
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +616 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_state.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +8 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +93 -69
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +353 -89
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +116 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +67 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +42 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +50 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +79 -32
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +36 -59
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +72 -39
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +14 -12
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +75 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -3
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +24 -0
- package/deps/rocksdb/rocksdb/db/db_test2.cc +36 -22
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +23 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +28 -3
- package/deps/rocksdb/rocksdb/db/error_handler.h +2 -1
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +165 -33
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +13 -5
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +37 -28
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -6
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +7 -6
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -6
- package/deps/rocksdb/rocksdb/db/job_context.h +4 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +24 -14
- package/deps/rocksdb/rocksdb/db/memtable.h +2 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +61 -33
- package/deps/rocksdb/rocksdb/db/memtable_list.h +8 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +4 -2
- package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -0
- package/deps/rocksdb/rocksdb/db/version_builder.cc +14 -11
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +20 -4
- package/deps/rocksdb/rocksdb/db/version_set.cc +40 -30
- package/deps/rocksdb/rocksdb/db/version_set.h +13 -3
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +8 -76
- package/deps/rocksdb/rocksdb/db/write_batch.cc +6 -2
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +5 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +25 -2
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +11 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.h +5 -0
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +11 -1
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +10 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +30 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +10 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +287 -83
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +68 -36
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +4 -4
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +31 -0
- package/deps/rocksdb/rocksdb/options/db_options.cc +14 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +15 -4
- package/deps/rocksdb/rocksdb/options/options_helper.h +4 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +5 -4
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +11 -1
- package/deps/rocksdb/rocksdb/options/options_test.cc +38 -45
- package/deps/rocksdb/rocksdb/port/port.h +16 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +8 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +10 -20
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +15 -9
- package/deps/rocksdb/rocksdb/table/format.cc +32 -4
- package/deps/rocksdb/rocksdb/table/format.h +12 -1
- package/deps/rocksdb/rocksdb/table/iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +214 -161
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/table_properties.cc +4 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +2 -2
- package/deps/rocksdb/rocksdb/table/table_test.cc +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +11 -2
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +213 -22
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +3 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.h +1 -1
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +3 -0
- package/deps/rocksdb/rocksdb/util/coro_utils.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +3 -3
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#include "rocksdb/sst_partitioner.h"
|
|
14
14
|
|
|
15
15
|
namespace ROCKSDB_NAMESPACE {
|
|
16
|
-
void SubcompactionState::
|
|
16
|
+
void SubcompactionState::AggregateCompactionOutputStats(
|
|
17
17
|
InternalStats::CompactionStatsFull& compaction_stats) const {
|
|
18
18
|
compaction_stats.stats.Add(compaction_outputs_.stats_);
|
|
19
19
|
if (HasPenultimateLevelOutputs()) {
|
|
@@ -179,7 +179,7 @@ class SubcompactionState {
|
|
|
179
179
|
|
|
180
180
|
void Cleanup(Cache* cache);
|
|
181
181
|
|
|
182
|
-
void
|
|
182
|
+
void AggregateCompactionOutputStats(
|
|
183
183
|
InternalStats::CompactionStatsFull& compaction_stats) const;
|
|
184
184
|
|
|
185
185
|
CompactionOutputs& Current() const {
|
|
@@ -2512,6 +2512,7 @@ TEST_P(IteratorWriteTimeTest, ReadFromMemtables) {
|
|
|
2512
2512
|
start_time + kSecondsPerRecording * (i + 1));
|
|
2513
2513
|
}
|
|
2514
2514
|
}
|
|
2515
|
+
ASSERT_EQ(kNumKeys, i);
|
|
2515
2516
|
ASSERT_OK(iter->status());
|
|
2516
2517
|
}
|
|
2517
2518
|
|
|
@@ -2531,12 +2532,13 @@ TEST_P(IteratorWriteTimeTest, ReadFromMemtables) {
|
|
|
2531
2532
|
}
|
|
2532
2533
|
}
|
|
2533
2534
|
ASSERT_OK(iter->status());
|
|
2535
|
+
ASSERT_EQ(-1, i);
|
|
2534
2536
|
}
|
|
2535
2537
|
|
|
2536
2538
|
// Reopen the DB and disable the seqno to time recording, data with user
|
|
2537
2539
|
// specified write time can still get a write time before it's flushed.
|
|
2538
2540
|
options.preserve_internal_time_seconds = 0;
|
|
2539
|
-
|
|
2541
|
+
Reopen(options);
|
|
2540
2542
|
ASSERT_OK(TimedPut(Key(kKeyWithWriteTime), rnd.RandomString(100),
|
|
2541
2543
|
kUserSpecifiedWriteTime));
|
|
2542
2544
|
{
|
|
@@ -2613,6 +2615,7 @@ TEST_P(IteratorWriteTimeTest, ReadFromSstFile) {
|
|
|
2613
2615
|
}
|
|
2614
2616
|
}
|
|
2615
2617
|
ASSERT_OK(iter->status());
|
|
2618
|
+
ASSERT_EQ(kNumKeys, i);
|
|
2616
2619
|
}
|
|
2617
2620
|
|
|
2618
2621
|
// Backward iteration
|
|
@@ -2632,12 +2635,13 @@ TEST_P(IteratorWriteTimeTest, ReadFromSstFile) {
|
|
|
2632
2635
|
}
|
|
2633
2636
|
}
|
|
2634
2637
|
ASSERT_OK(iter->status());
|
|
2638
|
+
ASSERT_EQ(-1, i);
|
|
2635
2639
|
}
|
|
2636
2640
|
|
|
2637
2641
|
// Reopen the DB and disable the seqno to time recording. Data retrieved from
|
|
2638
2642
|
// SST files still have write time available.
|
|
2639
2643
|
options.preserve_internal_time_seconds = 0;
|
|
2640
|
-
|
|
2644
|
+
Reopen(options);
|
|
2641
2645
|
|
|
2642
2646
|
dbfull()->TEST_WaitForPeriodicTaskRun(
|
|
2643
2647
|
[&] { mock_clock_->MockSleepForSeconds(kSecondsPerRecording); });
|
|
@@ -2663,6 +2667,7 @@ TEST_P(IteratorWriteTimeTest, ReadFromSstFile) {
|
|
|
2663
2667
|
start_time + kSecondsPerRecording * (i + 1));
|
|
2664
2668
|
}
|
|
2665
2669
|
}
|
|
2670
|
+
ASSERT_EQ(kNumKeys, i);
|
|
2666
2671
|
ASSERT_OK(iter->status());
|
|
2667
2672
|
}
|
|
2668
2673
|
|
|
@@ -2686,6 +2691,7 @@ TEST_P(IteratorWriteTimeTest, ReadFromSstFile) {
|
|
|
2686
2691
|
VerifyKeyAndWriteTime(iter.get(), Key(i), 0);
|
|
2687
2692
|
}
|
|
2688
2693
|
ASSERT_OK(iter->status());
|
|
2694
|
+
ASSERT_EQ(kNumKeys, i);
|
|
2689
2695
|
}
|
|
2690
2696
|
Close();
|
|
2691
2697
|
}
|
|
@@ -688,76 +688,100 @@ TEST_F(DBBasicTest, IdentityAcrossRestarts) {
|
|
|
688
688
|
constexpr size_t kMinIdSize = 10;
|
|
689
689
|
do {
|
|
690
690
|
for (bool with_manifest : {false, true}) {
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
std::
|
|
725
|
-
ASSERT_OK(
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
ASSERT_OK(
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
691
|
+
for (bool write_file : {false, true}) {
|
|
692
|
+
std::string idfilename = IdentityFileName(dbname_);
|
|
693
|
+
std::string id1, tmp;
|
|
694
|
+
ASSERT_OK(db_->GetDbIdentity(id1));
|
|
695
|
+
ASSERT_GE(id1.size(), kMinIdSize);
|
|
696
|
+
|
|
697
|
+
Options options = CurrentOptions();
|
|
698
|
+
options.write_dbid_to_manifest = with_manifest;
|
|
699
|
+
options.write_identity_file = true; // initially
|
|
700
|
+
Reopen(options);
|
|
701
|
+
std::string id2;
|
|
702
|
+
ASSERT_OK(db_->GetDbIdentity(id2));
|
|
703
|
+
// id2 should match id1 because identity was not regenerated
|
|
704
|
+
ASSERT_EQ(id1, id2);
|
|
705
|
+
ASSERT_OK(ReadFileToString(env_, idfilename, &tmp));
|
|
706
|
+
ASSERT_EQ(tmp, id2);
|
|
707
|
+
|
|
708
|
+
if (write_file) {
|
|
709
|
+
// Recover from deleted/missing IDENTITY
|
|
710
|
+
ASSERT_OK(env_->DeleteFile(idfilename));
|
|
711
|
+
} else {
|
|
712
|
+
// Transition to no IDENTITY file
|
|
713
|
+
options.write_identity_file = false;
|
|
714
|
+
if (!with_manifest) {
|
|
715
|
+
// Incompatible options, should fail
|
|
716
|
+
ASSERT_NOK(TryReopen(options));
|
|
717
|
+
// Back to a usable config and continue
|
|
718
|
+
options.write_identity_file = true;
|
|
719
|
+
Reopen(options);
|
|
720
|
+
continue;
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
Reopen(options);
|
|
724
|
+
std::string id3;
|
|
725
|
+
ASSERT_OK(db_->GetDbIdentity(id3));
|
|
726
|
+
if (with_manifest) {
|
|
727
|
+
// id3 should match id1 because identity was restored from manifest
|
|
728
|
+
ASSERT_EQ(id1, id3);
|
|
729
|
+
} else {
|
|
730
|
+
// id3 should NOT match id1 because identity was regenerated
|
|
731
|
+
ASSERT_NE(id1, id3);
|
|
732
|
+
ASSERT_GE(id3.size(), kMinIdSize);
|
|
733
|
+
}
|
|
734
|
+
if (write_file) {
|
|
735
|
+
ASSERT_OK(ReadFileToString(env_, idfilename, &tmp));
|
|
736
|
+
ASSERT_EQ(tmp, id3);
|
|
737
|
+
|
|
738
|
+
// Recover from truncated IDENTITY
|
|
739
|
+
std::unique_ptr<WritableFile> w;
|
|
740
|
+
ASSERT_OK(env_->NewWritableFile(idfilename, &w, EnvOptions()));
|
|
741
|
+
ASSERT_OK(w->Close());
|
|
742
|
+
} else {
|
|
743
|
+
ASSERT_TRUE(env_->FileExists(idfilename).IsNotFound());
|
|
744
|
+
}
|
|
745
|
+
Reopen(options);
|
|
746
|
+
std::string id4;
|
|
747
|
+
ASSERT_OK(db_->GetDbIdentity(id4));
|
|
748
|
+
if (with_manifest) {
|
|
749
|
+
// id4 should match id1 because identity was restored from manifest
|
|
750
|
+
ASSERT_EQ(id1, id4);
|
|
751
|
+
} else {
|
|
752
|
+
// id4 should NOT match id1 because identity was regenerated
|
|
753
|
+
ASSERT_NE(id1, id4);
|
|
754
|
+
ASSERT_GE(id4.size(), kMinIdSize);
|
|
755
|
+
}
|
|
756
|
+
std::string silly_id = "asdf123456789";
|
|
757
|
+
if (write_file) {
|
|
758
|
+
ASSERT_OK(ReadFileToString(env_, idfilename, &tmp));
|
|
759
|
+
ASSERT_EQ(tmp, id4);
|
|
760
|
+
|
|
761
|
+
// Recover from overwritten IDENTITY
|
|
762
|
+
std::unique_ptr<WritableFile> w;
|
|
763
|
+
ASSERT_OK(env_->NewWritableFile(idfilename, &w, EnvOptions()));
|
|
764
|
+
ASSERT_OK(w->Append(silly_id));
|
|
765
|
+
ASSERT_OK(w->Close());
|
|
766
|
+
} else {
|
|
767
|
+
ASSERT_TRUE(env_->FileExists(idfilename).IsNotFound());
|
|
768
|
+
}
|
|
769
|
+
Reopen(options);
|
|
770
|
+
std::string id5;
|
|
771
|
+
ASSERT_OK(db_->GetDbIdentity(id5));
|
|
772
|
+
if (with_manifest) {
|
|
773
|
+
// id4 should match id1 because identity was restored from manifest
|
|
774
|
+
ASSERT_EQ(id1, id5);
|
|
775
|
+
} else {
|
|
776
|
+
ASSERT_EQ(id5, silly_id);
|
|
777
|
+
}
|
|
778
|
+
if (write_file) {
|
|
779
|
+
ASSERT_OK(ReadFileToString(env_, idfilename, &tmp));
|
|
780
|
+
ASSERT_EQ(tmp, id5);
|
|
781
|
+
} else {
|
|
782
|
+
ASSERT_TRUE(env_->FileExists(idfilename).IsNotFound());
|
|
783
|
+
}
|
|
758
784
|
}
|
|
759
|
-
ASSERT_OK(ReadFileToString(env_, idfilename, &tmp));
|
|
760
|
-
ASSERT_EQ(tmp, id5);
|
|
761
785
|
}
|
|
762
786
|
} while (ChangeCompactOptions());
|
|
763
787
|
}
|