@nxtedition/rocksdb 7.1.32 → 7.1.34

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.
Files changed (150) hide show
  1. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +402 -345
  2. package/deps/rocksdb/rocksdb/cache/clock_cache.h +121 -64
  3. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +28 -18
  4. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -0
  5. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +2 -0
  6. package/deps/rocksdb/rocksdb/db/builder.cc +2 -1
  7. package/deps/rocksdb/rocksdb/db/c.cc +563 -673
  8. package/deps/rocksdb/rocksdb/db/c_test.c +168 -169
  9. package/deps/rocksdb/rocksdb/db/column_family.cc +16 -15
  10. package/deps/rocksdb/rocksdb/db/column_family.h +7 -7
  11. package/deps/rocksdb/rocksdb/db/column_family_test.cc +17 -28
  12. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -9
  13. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +8 -3
  14. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +114 -0
  15. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -3
  16. package/deps/rocksdb/rocksdb/db/convenience.cc +3 -5
  17. package/deps/rocksdb/rocksdb/db/corruption_test.cc +10 -14
  18. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +9 -13
  19. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
  20. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +2 -2
  21. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +14 -16
  22. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +52 -72
  23. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +2 -2
  24. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +12 -12
  25. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -2
  26. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +3 -3
  27. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +1 -12
  28. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +3 -0
  29. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +26 -0
  30. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +1 -0
  31. package/deps/rocksdb/rocksdb/db/db_iter.cc +12 -6
  32. package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
  33. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +6 -7
  34. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +10 -8
  35. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +15 -13
  36. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -9
  37. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +4 -4
  38. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +1 -1
  39. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +2 -4
  40. package/deps/rocksdb/rocksdb/db/db_options_test.cc +4 -4
  41. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +7 -4
  42. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +7 -5
  43. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +1 -1
  44. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +8 -6
  45. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +18 -23
  46. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +3 -5
  47. package/deps/rocksdb/rocksdb/db/db_test.cc +10 -5
  48. package/deps/rocksdb/rocksdb/db/db_test2.cc +172 -169
  49. package/deps/rocksdb/rocksdb/db/db_test_util.cc +68 -66
  50. package/deps/rocksdb/rocksdb/db/db_test_util.h +1 -3
  51. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +31 -39
  52. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +182 -2
  53. package/deps/rocksdb/rocksdb/db/db_write_test.cc +43 -40
  54. package/deps/rocksdb/rocksdb/db/dbformat.h +15 -0
  55. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +35 -34
  56. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +10 -11
  57. package/deps/rocksdb/rocksdb/db/error_handler.cc +6 -6
  58. package/deps/rocksdb/rocksdb/db/error_handler.h +93 -94
  59. package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -1
  60. package/deps/rocksdb/rocksdb/db/event_helpers.h +3 -3
  61. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -17
  62. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +2 -2
  63. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -2
  64. package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -0
  65. package/deps/rocksdb/rocksdb/db/file_indexer.h +2 -1
  66. package/deps/rocksdb/rocksdb/db/file_indexer_test.cc +4 -2
  67. package/deps/rocksdb/rocksdb/db/filename_test.cc +27 -29
  68. package/deps/rocksdb/rocksdb/db/flush_job.cc +7 -13
  69. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +2 -2
  70. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +15 -21
  71. package/deps/rocksdb/rocksdb/db/forward_iterator.h +7 -6
  72. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +4 -2
  73. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +2 -2
  74. package/deps/rocksdb/rocksdb/db/internal_stats.cc +59 -14
  75. package/deps/rocksdb/rocksdb/db/internal_stats.h +27 -11
  76. package/deps/rocksdb/rocksdb/db/job_context.h +5 -6
  77. package/deps/rocksdb/rocksdb/db/listener_test.cc +21 -23
  78. package/deps/rocksdb/rocksdb/db/log_reader.cc +7 -11
  79. package/deps/rocksdb/rocksdb/db/log_reader.h +4 -6
  80. package/deps/rocksdb/rocksdb/db/log_test.cc +6 -12
  81. package/deps/rocksdb/rocksdb/db/log_writer.h +1 -1
  82. package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +0 -1
  83. package/deps/rocksdb/rocksdb/db/lookup_key.h +4 -1
  84. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -1
  85. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +3 -5
  86. package/deps/rocksdb/rocksdb/db/memtable.cc +34 -22
  87. package/deps/rocksdb/rocksdb/db/memtable.h +4 -6
  88. package/deps/rocksdb/rocksdb/db/memtable_list.cc +7 -0
  89. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -13
  90. package/deps/rocksdb/rocksdb/db/merge_context.h +1 -0
  91. package/deps/rocksdb/rocksdb/db/merge_helper.cc +128 -14
  92. package/deps/rocksdb/rocksdb/db/merge_helper.h +15 -7
  93. package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +2 -1
  94. package/deps/rocksdb/rocksdb/db/merge_operator.cc +5 -6
  95. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -3
  96. package/deps/rocksdb/rocksdb/db/options_file_test.cc +1 -1
  97. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +55 -43
  98. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +288 -299
  99. package/deps/rocksdb/rocksdb/db/prefix_test.cc +22 -27
  100. package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +1 -1
  101. package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +1 -1
  102. package/deps/rocksdb/rocksdb/db/repair.cc +7 -8
  103. package/deps/rocksdb/rocksdb/db/repair_test.cc +3 -4
  104. package/deps/rocksdb/rocksdb/db/snapshot_impl.cc +4 -5
  105. package/deps/rocksdb/rocksdb/db/snapshot_impl.h +10 -4
  106. package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -4
  107. package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +6 -7
  108. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +22 -22
  109. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +12 -12
  110. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +6 -8
  111. package/deps/rocksdb/rocksdb/db/trim_history_scheduler.h +2 -0
  112. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -3
  113. package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -5
  114. package/deps/rocksdb/rocksdb/db/version_edit.h +8 -12
  115. package/deps/rocksdb/rocksdb/db/version_set.cc +74 -102
  116. package/deps/rocksdb/rocksdb/db/version_set.h +8 -10
  117. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +0 -5
  118. package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -45
  119. package/deps/rocksdb/rocksdb/db/wal_manager.cc +6 -5
  120. package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -2
  121. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +4 -3
  122. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +144 -61
  123. package/deps/rocksdb/rocksdb/db/write_batch.cc +41 -24
  124. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +2 -7
  125. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +105 -104
  126. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +5 -4
  127. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -0
  128. package/deps/rocksdb/rocksdb/db/write_controller_test.cc +1 -1
  129. package/deps/rocksdb/rocksdb/db/write_thread.cc +8 -6
  130. package/deps/rocksdb/rocksdb/env/io_posix.h +6 -0
  131. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +134 -65
  132. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +29 -0
  133. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  134. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +1 -4
  135. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -0
  136. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +4 -0
  137. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +14 -4
  138. package/deps/rocksdb/rocksdb/table/get_context.cc +52 -7
  139. package/deps/rocksdb/rocksdb/table/get_context.h +1 -2
  140. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +13 -0
  141. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +36 -4
  142. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +6 -6
  143. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +23 -28
  144. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +11 -1
  145. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +19 -17
  146. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +10 -7
  147. package/index.js +14 -16
  148. package/package.json +1 -1
  149. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  150. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -669,33 +669,33 @@ TEST_F(DBTest2, TestWriteBufferNoLimitWithCache) {
669
669
  }
670
670
 
671
671
  namespace {
672
- void ValidateKeyExistence(DB* db, const std::vector<Slice>& keys_must_exist,
673
- const std::vector<Slice>& keys_must_not_exist) {
674
- // Ensure that expected keys exist
675
- std::vector<std::string> values;
676
- if (keys_must_exist.size() > 0) {
677
- std::vector<Status> status_list =
672
+ void ValidateKeyExistence(DB* db, const std::vector<Slice>& keys_must_exist,
673
+ const std::vector<Slice>& keys_must_not_exist) {
674
+ // Ensure that expected keys exist
675
+ std::vector<std::string> values;
676
+ if (keys_must_exist.size() > 0) {
677
+ std::vector<Status> status_list =
678
678
  db->MultiGet(ReadOptions(), keys_must_exist, &values);
679
- for (size_t i = 0; i < keys_must_exist.size(); i++) {
680
- ASSERT_OK(status_list[i]);
681
- }
679
+ for (size_t i = 0; i < keys_must_exist.size(); i++) {
680
+ ASSERT_OK(status_list[i]);
682
681
  }
682
+ }
683
683
 
684
- // Ensure that given keys don't exist
685
- if (keys_must_not_exist.size() > 0) {
686
- std::vector<Status> status_list =
684
+ // Ensure that given keys don't exist
685
+ if (keys_must_not_exist.size() > 0) {
686
+ std::vector<Status> status_list =
687
687
  db->MultiGet(ReadOptions(), keys_must_not_exist, &values);
688
- for (size_t i = 0; i < keys_must_not_exist.size(); i++) {
689
- ASSERT_TRUE(status_list[i].IsNotFound());
690
- }
688
+ for (size_t i = 0; i < keys_must_not_exist.size(); i++) {
689
+ ASSERT_TRUE(status_list[i].IsNotFound());
691
690
  }
692
691
  }
692
+ }
693
693
 
694
- } // namespace
694
+ } // anonymous namespace
695
695
 
696
696
  TEST_F(DBTest2, WalFilterTest) {
697
697
  class TestWalFilter : public WalFilter {
698
- private:
698
+ private:
699
699
  // Processing option that is requested to be applied at the given index
700
700
  WalFilter::WalProcessingOption wal_processing_option_;
701
701
  // Index at which to apply wal_processing_option_
@@ -705,12 +705,12 @@ TEST_F(DBTest2, WalFilterTest) {
705
705
  // Current record index, incremented with each record encountered.
706
706
  size_t current_record_index_;
707
707
 
708
- public:
708
+ public:
709
709
  TestWalFilter(WalFilter::WalProcessingOption wal_processing_option,
710
- size_t apply_option_for_record_index)
711
- : wal_processing_option_(wal_processing_option),
712
- apply_option_at_record_index_(apply_option_for_record_index),
713
- current_record_index_(0) {}
710
+ size_t apply_option_for_record_index)
711
+ : wal_processing_option_(wal_processing_option),
712
+ apply_option_at_record_index_(apply_option_for_record_index),
713
+ current_record_index_(0) {}
714
714
 
715
715
  WalProcessingOption LogRecord(const WriteBatch& /*batch*/,
716
716
  WriteBatch* /*new_batch*/,
@@ -719,8 +719,7 @@ TEST_F(DBTest2, WalFilterTest) {
719
719
 
720
720
  if (current_record_index_ == apply_option_at_record_index_) {
721
721
  option_to_return = wal_processing_option_;
722
- }
723
- else {
722
+ } else {
724
723
  option_to_return = WalProcessingOption::kContinueProcessing;
725
724
  }
726
725
 
@@ -747,12 +746,12 @@ TEST_F(DBTest2, WalFilterTest) {
747
746
 
748
747
  // Test with all WAL processing options
749
748
  for (int option = 0;
750
- option < static_cast<int>(
751
- WalFilter::WalProcessingOption::kWalProcessingOptionMax);
752
- option++) {
749
+ option < static_cast<int>(
750
+ WalFilter::WalProcessingOption::kWalProcessingOptionMax);
751
+ option++) {
753
752
  Options options = OptionsForLogIterTest();
754
753
  DestroyAndReopen(options);
755
- CreateAndReopenWithCF({ "pikachu" }, options);
754
+ CreateAndReopenWithCF({"pikachu"}, options);
756
755
 
757
756
  // Write given keys in given batches
758
757
  for (size_t i = 0; i < batch_keys.size(); i++) {
@@ -764,28 +763,27 @@ TEST_F(DBTest2, WalFilterTest) {
764
763
  }
765
764
 
766
765
  WalFilter::WalProcessingOption wal_processing_option =
767
- static_cast<WalFilter::WalProcessingOption>(option);
766
+ static_cast<WalFilter::WalProcessingOption>(option);
768
767
 
769
768
  // Create a test filter that would apply wal_processing_option at the first
770
769
  // record
771
770
  size_t apply_option_for_record_index = 1;
772
771
  TestWalFilter test_wal_filter(wal_processing_option,
773
- apply_option_for_record_index);
772
+ apply_option_for_record_index);
774
773
 
775
774
  // Reopen database with option to use WAL filter
776
775
  options = OptionsForLogIterTest();
777
776
  options.wal_filter = &test_wal_filter;
778
777
  Status status =
779
- TryReopenWithColumnFamilies({ "default", "pikachu" }, options);
778
+ TryReopenWithColumnFamilies({"default", "pikachu"}, options);
780
779
  if (wal_processing_option ==
781
- WalFilter::WalProcessingOption::kCorruptedRecord) {
780
+ WalFilter::WalProcessingOption::kCorruptedRecord) {
782
781
  ASSERT_NOK(status);
783
782
  // In case of corruption we can turn off paranoid_checks to reopen
784
783
  // databse
785
784
  options.paranoid_checks = false;
786
- ReopenWithColumnFamilies({ "default", "pikachu" }, options);
787
- }
788
- else {
785
+ ReopenWithColumnFamilies({"default", "pikachu"}, options);
786
+ } else {
789
787
  ASSERT_OK(status);
790
788
  }
791
789
 
@@ -794,56 +792,54 @@ TEST_F(DBTest2, WalFilterTest) {
794
792
  std::vector<Slice> keys_must_exist;
795
793
  std::vector<Slice> keys_must_not_exist;
796
794
  switch (wal_processing_option) {
797
- case WalFilter::WalProcessingOption::kCorruptedRecord:
798
- case WalFilter::WalProcessingOption::kContinueProcessing: {
799
- fprintf(stderr, "Testing with complete WAL processing\n");
800
- // we expect all records to be processed
801
- for (size_t i = 0; i < batch_keys.size(); i++) {
802
- for (size_t j = 0; j < batch_keys[i].size(); j++) {
803
- keys_must_exist.push_back(Slice(batch_keys[i][j]));
804
- }
805
- }
806
- break;
807
- }
808
- case WalFilter::WalProcessingOption::kIgnoreCurrentRecord: {
809
- fprintf(stderr,
810
- "Testing with ignoring record %" ROCKSDB_PRIszt " only\n",
811
- apply_option_for_record_index);
812
- // We expect the record with apply_option_for_record_index to be not
813
- // found.
814
- for (size_t i = 0; i < batch_keys.size(); i++) {
815
- for (size_t j = 0; j < batch_keys[i].size(); j++) {
816
- if (i == apply_option_for_record_index) {
817
- keys_must_not_exist.push_back(Slice(batch_keys[i][j]));
818
- }
819
- else {
795
+ case WalFilter::WalProcessingOption::kCorruptedRecord:
796
+ case WalFilter::WalProcessingOption::kContinueProcessing: {
797
+ fprintf(stderr, "Testing with complete WAL processing\n");
798
+ // we expect all records to be processed
799
+ for (size_t i = 0; i < batch_keys.size(); i++) {
800
+ for (size_t j = 0; j < batch_keys[i].size(); j++) {
820
801
  keys_must_exist.push_back(Slice(batch_keys[i][j]));
821
802
  }
822
803
  }
804
+ break;
823
805
  }
824
- break;
825
- }
826
- case WalFilter::WalProcessingOption::kStopReplay: {
827
- fprintf(stderr,
828
- "Testing with stopping replay from record %" ROCKSDB_PRIszt
829
- "\n",
830
- apply_option_for_record_index);
831
- // We expect records beyond apply_option_for_record_index to be not
832
- // found.
833
- for (size_t i = 0; i < batch_keys.size(); i++) {
834
- for (size_t j = 0; j < batch_keys[i].size(); j++) {
835
- if (i >= apply_option_for_record_index) {
836
- keys_must_not_exist.push_back(Slice(batch_keys[i][j]));
806
+ case WalFilter::WalProcessingOption::kIgnoreCurrentRecord: {
807
+ fprintf(stderr,
808
+ "Testing with ignoring record %" ROCKSDB_PRIszt " only\n",
809
+ apply_option_for_record_index);
810
+ // We expect the record with apply_option_for_record_index to be not
811
+ // found.
812
+ for (size_t i = 0; i < batch_keys.size(); i++) {
813
+ for (size_t j = 0; j < batch_keys[i].size(); j++) {
814
+ if (i == apply_option_for_record_index) {
815
+ keys_must_not_exist.push_back(Slice(batch_keys[i][j]));
816
+ } else {
817
+ keys_must_exist.push_back(Slice(batch_keys[i][j]));
818
+ }
837
819
  }
838
- else {
839
- keys_must_exist.push_back(Slice(batch_keys[i][j]));
820
+ }
821
+ break;
822
+ }
823
+ case WalFilter::WalProcessingOption::kStopReplay: {
824
+ fprintf(stderr,
825
+ "Testing with stopping replay from record %" ROCKSDB_PRIszt
826
+ "\n",
827
+ apply_option_for_record_index);
828
+ // We expect records beyond apply_option_for_record_index to be not
829
+ // found.
830
+ for (size_t i = 0; i < batch_keys.size(); i++) {
831
+ for (size_t j = 0; j < batch_keys[i].size(); j++) {
832
+ if (i >= apply_option_for_record_index) {
833
+ keys_must_not_exist.push_back(Slice(batch_keys[i][j]));
834
+ } else {
835
+ keys_must_exist.push_back(Slice(batch_keys[i][j]));
836
+ }
840
837
  }
841
838
  }
839
+ break;
842
840
  }
843
- break;
844
- }
845
- default:
846
- FAIL(); // unhandled case
841
+ default:
842
+ FAIL(); // unhandled case
847
843
  }
848
844
 
849
845
  bool checked_after_reopen = false;
@@ -861,7 +857,7 @@ TEST_F(DBTest2, WalFilterTest) {
861
857
  //(even if they were skipped)
862
858
  // reopn database with option to use WAL filter
863
859
  options = OptionsForLogIterTest();
864
- ReopenWithColumnFamilies({ "default", "pikachu" }, options);
860
+ ReopenWithColumnFamilies({"default", "pikachu"}, options);
865
861
 
866
862
  checked_after_reopen = true;
867
863
  }
@@ -870,7 +866,7 @@ TEST_F(DBTest2, WalFilterTest) {
870
866
 
871
867
  TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
872
868
  class ChangeBatchHandler : public WriteBatch::Handler {
873
- private:
869
+ private:
874
870
  // Batch to insert keys in
875
871
  WriteBatch* new_write_batch_;
876
872
  // Number of keys to add in the new batch
@@ -878,12 +874,12 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
878
874
  // Number of keys added to new batch
879
875
  size_t num_keys_added_;
880
876
 
881
- public:
877
+ public:
882
878
  ChangeBatchHandler(WriteBatch* new_write_batch,
883
- size_t num_keys_to_add_in_new_batch)
884
- : new_write_batch_(new_write_batch),
885
- num_keys_to_add_in_new_batch_(num_keys_to_add_in_new_batch),
886
- num_keys_added_(0) {}
879
+ size_t num_keys_to_add_in_new_batch)
880
+ : new_write_batch_(new_write_batch),
881
+ num_keys_to_add_in_new_batch_(num_keys_to_add_in_new_batch),
882
+ num_keys_added_(0) {}
887
883
  void Put(const Slice& key, const Slice& value) override {
888
884
  if (num_keys_added_ < num_keys_to_add_in_new_batch_) {
889
885
  ASSERT_OK(new_write_batch_->Put(key, value));
@@ -893,7 +889,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
893
889
  };
894
890
 
895
891
  class TestWalFilterWithChangeBatch : public WalFilter {
896
- private:
892
+ private:
897
893
  // Index at which to start changing records
898
894
  size_t change_records_from_index_;
899
895
  // Number of keys to add in the new batch
@@ -901,12 +897,12 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
901
897
  // Current record index, incremented with each record encountered.
902
898
  size_t current_record_index_;
903
899
 
904
- public:
900
+ public:
905
901
  TestWalFilterWithChangeBatch(size_t change_records_from_index,
906
- size_t num_keys_to_add_in_new_batch)
907
- : change_records_from_index_(change_records_from_index),
908
- num_keys_to_add_in_new_batch_(num_keys_to_add_in_new_batch),
909
- current_record_index_(0) {}
902
+ size_t num_keys_to_add_in_new_batch)
903
+ : change_records_from_index_(change_records_from_index),
904
+ num_keys_to_add_in_new_batch_(num_keys_to_add_in_new_batch),
905
+ current_record_index_(0) {}
910
906
 
911
907
  WalProcessingOption LogRecord(const WriteBatch& batch,
912
908
  WriteBatch* new_batch,
@@ -925,7 +921,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
925
921
  // object, however we modify it for our own purpose here and hence
926
922
  // cast the constness away.
927
923
  (const_cast<TestWalFilterWithChangeBatch*>(this)
928
- ->current_record_index_)++;
924
+ ->current_record_index_)++;
929
925
 
930
926
  return WalProcessingOption::kContinueProcessing;
931
927
  }
@@ -944,7 +940,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
944
940
 
945
941
  Options options = OptionsForLogIterTest();
946
942
  DestroyAndReopen(options);
947
- CreateAndReopenWithCF({ "pikachu" }, options);
943
+ CreateAndReopenWithCF({"pikachu"}, options);
948
944
 
949
945
  // Write given keys in given batches
950
946
  for (size_t i = 0; i < batch_keys.size(); i++) {
@@ -960,12 +956,12 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
960
956
  size_t change_records_from_index = 1;
961
957
  size_t num_keys_to_add_in_new_batch = 1;
962
958
  TestWalFilterWithChangeBatch test_wal_filter_with_change_batch(
963
- change_records_from_index, num_keys_to_add_in_new_batch);
959
+ change_records_from_index, num_keys_to_add_in_new_batch);
964
960
 
965
961
  // Reopen database with option to use WAL filter
966
962
  options = OptionsForLogIterTest();
967
963
  options.wal_filter = &test_wal_filter_with_change_batch;
968
- ReopenWithColumnFamilies({ "default", "pikachu" }, options);
964
+ ReopenWithColumnFamilies({"default", "pikachu"}, options);
969
965
 
970
966
  // Ensure that all keys exist before change_records_from_index_
971
967
  // And after that index only single key exists
@@ -977,8 +973,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
977
973
  for (size_t j = 0; j < batch_keys[i].size(); j++) {
978
974
  if (i >= change_records_from_index && j >= num_keys_to_add_in_new_batch) {
979
975
  keys_must_not_exist.push_back(Slice(batch_keys[i][j]));
980
- }
981
- else {
976
+ } else {
982
977
  keys_must_exist.push_back(Slice(batch_keys[i][j]));
983
978
  }
984
979
  }
@@ -999,7 +994,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
999
994
  //(even if they were skipped)
1000
995
  // reopn database with option to use WAL filter
1001
996
  options = OptionsForLogIterTest();
1002
- ReopenWithColumnFamilies({ "default", "pikachu" }, options);
997
+ ReopenWithColumnFamilies({"default", "pikachu"}, options);
1003
998
 
1004
999
  checked_after_reopen = true;
1005
1000
  }
@@ -1007,22 +1002,23 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatch) {
1007
1002
 
1008
1003
  TEST_F(DBTest2, WalFilterTestWithChangeBatchExtraKeys) {
1009
1004
  class TestWalFilterWithChangeBatchAddExtraKeys : public WalFilter {
1010
- public:
1011
- WalProcessingOption LogRecord(const WriteBatch& batch, WriteBatch* new_batch,
1012
- bool* batch_changed) const override {
1013
- *new_batch = batch;
1014
- Status s = new_batch->Put("key_extra", "value_extra");
1015
- if (s.ok()) {
1016
- *batch_changed = true;
1017
- } else {
1018
- assert(false);
1019
- }
1020
- return WalProcessingOption::kContinueProcessing;
1021
- }
1022
-
1023
- const char* Name() const override {
1024
- return "WalFilterTestWithChangeBatchExtraKeys";
1025
- }
1005
+ public:
1006
+ WalProcessingOption LogRecord(const WriteBatch& batch,
1007
+ WriteBatch* new_batch,
1008
+ bool* batch_changed) const override {
1009
+ *new_batch = batch;
1010
+ Status s = new_batch->Put("key_extra", "value_extra");
1011
+ if (s.ok()) {
1012
+ *batch_changed = true;
1013
+ } else {
1014
+ assert(false);
1015
+ }
1016
+ return WalProcessingOption::kContinueProcessing;
1017
+ }
1018
+
1019
+ const char* Name() const override {
1020
+ return "WalFilterTestWithChangeBatchExtraKeys";
1021
+ }
1026
1022
  };
1027
1023
 
1028
1024
  std::vector<std::vector<std::string>> batch_keys(3);
@@ -1036,7 +1032,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatchExtraKeys) {
1036
1032
 
1037
1033
  Options options = OptionsForLogIterTest();
1038
1034
  DestroyAndReopen(options);
1039
- CreateAndReopenWithCF({ "pikachu" }, options);
1035
+ CreateAndReopenWithCF({"pikachu"}, options);
1040
1036
 
1041
1037
  // Write given keys in given batches
1042
1038
  for (size_t i = 0; i < batch_keys.size(); i++) {
@@ -1059,7 +1055,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatchExtraKeys) {
1059
1055
  // Reopen without filter, now reopen should succeed - previous
1060
1056
  // attempt to open must not have altered the db.
1061
1057
  options = OptionsForLogIterTest();
1062
- ReopenWithColumnFamilies({ "default", "pikachu" }, options);
1058
+ ReopenWithColumnFamilies({"default", "pikachu"}, options);
1063
1059
 
1064
1060
  std::vector<Slice> keys_must_exist;
1065
1061
  std::vector<Slice> keys_must_not_exist; // empty vector
@@ -1075,7 +1071,7 @@ TEST_F(DBTest2, WalFilterTestWithChangeBatchExtraKeys) {
1075
1071
 
1076
1072
  TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1077
1073
  class TestWalFilterWithColumnFamilies : public WalFilter {
1078
- private:
1074
+ private:
1079
1075
  // column_family_id -> log_number map (provided to WALFilter)
1080
1076
  std::map<uint32_t, uint64_t> cf_log_number_map_;
1081
1077
  // column_family_name -> column_family_id map (provided to WALFilter)
@@ -1085,31 +1081,34 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1085
1081
  // during recovery (i.e. aren't already flushed to SST file(s))
1086
1082
  // for verification against the keys we expect.
1087
1083
  std::map<uint32_t, std::vector<std::string>> cf_wal_keys_;
1088
- public:
1089
- void ColumnFamilyLogNumberMap(
1090
- const std::map<uint32_t, uint64_t>& cf_lognumber_map,
1091
- const std::map<std::string, uint32_t>& cf_name_id_map) override {
1092
- cf_log_number_map_ = cf_lognumber_map;
1093
- cf_name_id_map_ = cf_name_id_map;
1094
- }
1095
-
1096
- WalProcessingOption LogRecordFound(unsigned long long log_number,
1097
- const std::string& /*log_file_name*/,
1098
- const WriteBatch& batch,
1099
- WriteBatch* /*new_batch*/,
1100
- bool* /*batch_changed*/) override {
1101
- class LogRecordBatchHandler : public WriteBatch::Handler {
1102
- private:
1103
- const std::map<uint32_t, uint64_t> & cf_log_number_map_;
1104
- std::map<uint32_t, std::vector<std::string>> & cf_wal_keys_;
1084
+
1085
+ public:
1086
+ void ColumnFamilyLogNumberMap(
1087
+ const std::map<uint32_t, uint64_t>& cf_lognumber_map,
1088
+ const std::map<std::string, uint32_t>& cf_name_id_map) override {
1089
+ cf_log_number_map_ = cf_lognumber_map;
1090
+ cf_name_id_map_ = cf_name_id_map;
1091
+ }
1092
+
1093
+ WalProcessingOption LogRecordFound(unsigned long long log_number,
1094
+ const std::string& /*log_file_name*/,
1095
+ const WriteBatch& batch,
1096
+ WriteBatch* /*new_batch*/,
1097
+ bool* /*batch_changed*/) override {
1098
+ class LogRecordBatchHandler : public WriteBatch::Handler {
1099
+ private:
1100
+ const std::map<uint32_t, uint64_t>& cf_log_number_map_;
1101
+ std::map<uint32_t, std::vector<std::string>>& cf_wal_keys_;
1105
1102
  unsigned long long log_number_;
1106
- public:
1107
- LogRecordBatchHandler(unsigned long long current_log_number,
1108
- const std::map<uint32_t, uint64_t> & cf_log_number_map,
1109
- std::map<uint32_t, std::vector<std::string>> & cf_wal_keys) :
1110
- cf_log_number_map_(cf_log_number_map),
1111
- cf_wal_keys_(cf_wal_keys),
1112
- log_number_(current_log_number){}
1103
+
1104
+ public:
1105
+ LogRecordBatchHandler(
1106
+ unsigned long long current_log_number,
1107
+ const std::map<uint32_t, uint64_t>& cf_log_number_map,
1108
+ std::map<uint32_t, std::vector<std::string>>& cf_wal_keys)
1109
+ : cf_log_number_map_(cf_log_number_map),
1110
+ cf_wal_keys_(cf_wal_keys),
1111
+ log_number_(current_log_number) {}
1113
1112
 
1114
1113
  Status PutCF(uint32_t column_family_id, const Slice& key,
1115
1114
  const Slice& /*value*/) override {
@@ -1120,8 +1119,8 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1120
1119
  // (i.e. isn't flushed to SST file(s) for column_family_id)
1121
1120
  // add it to the cf_wal_keys_ map for verification.
1122
1121
  if (log_number_ >= log_number_for_cf) {
1123
- cf_wal_keys_[column_family_id].push_back(std::string(key.data(),
1124
- key.size()));
1122
+ cf_wal_keys_[column_family_id].push_back(
1123
+ std::string(key.data(), key.size()));
1125
1124
  }
1126
1125
  return Status::OK();
1127
1126
  }
@@ -1134,17 +1133,17 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1134
1133
  }
1135
1134
 
1136
1135
  return WalProcessingOption::kContinueProcessing;
1137
- }
1136
+ }
1138
1137
 
1139
- const char* Name() const override {
1140
- return "WalFilterTestWithColumnFamilies";
1141
- }
1138
+ const char* Name() const override {
1139
+ return "WalFilterTestWithColumnFamilies";
1140
+ }
1142
1141
 
1143
1142
  const std::map<uint32_t, std::vector<std::string>>& GetColumnFamilyKeys() {
1144
1143
  return cf_wal_keys_;
1145
1144
  }
1146
1145
 
1147
- const std::map<std::string, uint32_t> & GetColumnFamilyNameIdMap() {
1146
+ const std::map<std::string, uint32_t>& GetColumnFamilyNameIdMap() {
1148
1147
  return cf_name_id_map_;
1149
1148
  }
1150
1149
  };
@@ -1160,7 +1159,7 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1160
1159
 
1161
1160
  Options options = OptionsForLogIterTest();
1162
1161
  DestroyAndReopen(options);
1163
- CreateAndReopenWithCF({ "pikachu" }, options);
1162
+ CreateAndReopenWithCF({"pikachu"}, options);
1164
1163
 
1165
1164
  // Write given keys in given batches
1166
1165
  for (size_t i = 0; i < batch_keys_pre_flush.size(); i++) {
@@ -1174,7 +1173,7 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1174
1173
  ASSERT_OK(dbfull()->Write(WriteOptions(), &batch));
1175
1174
  }
1176
1175
 
1177
- //Flush default column-family
1176
+ // Flush default column-family
1178
1177
  ASSERT_OK(db_->Flush(FlushOptions(), handles_[0]));
1179
1178
 
1180
1179
  // Do some more writes
@@ -1208,8 +1207,7 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1208
1207
  // Reopen database with option to use WAL filter
1209
1208
  options = OptionsForLogIterTest();
1210
1209
  options.wal_filter = &test_wal_filter_column_families;
1211
- Status status =
1212
- TryReopenWithColumnFamilies({ "default", "pikachu" }, options);
1210
+ Status status = TryReopenWithColumnFamilies({"default", "pikachu"}, options);
1213
1211
  ASSERT_TRUE(status.ok());
1214
1212
 
1215
1213
  // verify that handles_[0] only has post_flush keys
@@ -1218,7 +1216,7 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1218
1216
  auto name_id_map = test_wal_filter_column_families.GetColumnFamilyNameIdMap();
1219
1217
  size_t index = 0;
1220
1218
  auto keys_cf = cf_wal_keys[name_id_map[kDefaultColumnFamilyName]];
1221
- //default column-family, only post_flush keys are expected
1219
+ // default column-family, only post_flush keys are expected
1222
1220
  for (size_t i = 0; i < batch_keys_post_flush.size(); i++) {
1223
1221
  for (size_t j = 0; j < batch_keys_post_flush[i].size(); j++) {
1224
1222
  Slice key_from_the_log(keys_cf[index++]);
@@ -1230,7 +1228,7 @@ TEST_F(DBTest2, WalFilterTestWithColumnFamilies) {
1230
1228
 
1231
1229
  index = 0;
1232
1230
  keys_cf = cf_wal_keys[name_id_map["pikachu"]];
1233
- //pikachu column-family, all keys are expected
1231
+ // pikachu column-family, all keys are expected
1234
1232
  for (size_t i = 0; i < batch_keys_pre_flush.size(); i++) {
1235
1233
  for (size_t j = 0; j < batch_keys_pre_flush[i].size(); j++) {
1236
1234
  Slice key_from_the_log(keys_cf[index++]);
@@ -1280,7 +1278,7 @@ TEST_F(DBTest2, PresetCompressionDict) {
1280
1278
  #if LZ4_VERSION_NUMBER >= 10400 // r124+
1281
1279
  compression_types.push_back(kLZ4Compression);
1282
1280
  compression_types.push_back(kLZ4HCCompression);
1283
- #endif // LZ4_VERSION_NUMBER >= 10400
1281
+ #endif // LZ4_VERSION_NUMBER >= 10400
1284
1282
  if (ZSTD_Supported()) {
1285
1283
  compression_types.push_back(kZSTD);
1286
1284
  }
@@ -1960,7 +1958,8 @@ TEST_F(DBTest2, CompressionOptions) {
1960
1958
 
1961
1959
  class CompactionStallTestListener : public EventListener {
1962
1960
  public:
1963
- CompactionStallTestListener() : compacting_files_cnt_(0), compacted_files_cnt_(0) {}
1961
+ CompactionStallTestListener()
1962
+ : compacting_files_cnt_(0), compacted_files_cnt_(0) {}
1964
1963
 
1965
1964
  void OnCompactionBegin(DB* /*db*/, const CompactionJobInfo& ci) override {
1966
1965
  ASSERT_EQ(ci.cf_name, "default");
@@ -2039,7 +2038,8 @@ TEST_F(DBTest2, CompactionStall) {
2039
2038
  options.level0_file_num_compaction_trigger);
2040
2039
  ASSERT_GT(listener->compacted_files_cnt_.load(),
2041
2040
  10 - options.level0_file_num_compaction_trigger);
2042
- ASSERT_EQ(listener->compacting_files_cnt_.load(), listener->compacted_files_cnt_.load());
2041
+ ASSERT_EQ(listener->compacting_files_cnt_.load(),
2042
+ listener->compacted_files_cnt_.load());
2043
2043
 
2044
2044
  ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing();
2045
2045
  }
@@ -2664,7 +2664,7 @@ namespace {
2664
2664
  void CountSyncPoint() {
2665
2665
  TEST_SYNC_POINT_CALLBACK("DBTest2::MarkedPoint", nullptr /* arg */);
2666
2666
  }
2667
- } // namespace
2667
+ } // anonymous namespace
2668
2668
 
2669
2669
  TEST_F(DBTest2, SyncPointMarker) {
2670
2670
  std::atomic<int> sync_point_called(0);
@@ -2797,7 +2797,7 @@ TEST_F(DBTest2, ReadAmpBitmap) {
2797
2797
  }
2798
2798
  }
2799
2799
 
2800
- #ifndef OS_SOLARIS // GetUniqueIdFromFile is not implemented
2800
+ #ifndef OS_SOLARIS // GetUniqueIdFromFile is not implemented
2801
2801
  TEST_F(DBTest2, ReadAmpBitmapLiveInCacheAfterDBClose) {
2802
2802
  {
2803
2803
  const int kIdBufLen = 100;
@@ -2899,7 +2899,6 @@ TEST_F(DBTest2, ReadAmpBitmapLiveInCacheAfterDBClose) {
2899
2899
  size_t total_loaded_bytes_iter2 =
2900
2900
  options.statistics->getTickerCount(READ_AMP_TOTAL_READ_BYTES);
2901
2901
 
2902
-
2903
2902
  // Read amp is on average 100% since we read all what we loaded in memory
2904
2903
  if (k == 0) {
2905
2904
  ASSERT_EQ(total_useful_bytes_iter1 + total_useful_bytes_iter2,
@@ -2911,7 +2910,7 @@ TEST_F(DBTest2, ReadAmpBitmapLiveInCacheAfterDBClose) {
2911
2910
  }
2912
2911
  }
2913
2912
  }
2914
- #endif // !OS_SOLARIS
2913
+ #endif // !OS_SOLARIS
2915
2914
 
2916
2915
  #ifndef ROCKSDB_LITE
2917
2916
  TEST_F(DBTest2, AutomaticCompactionOverlapManualCompaction) {
@@ -5192,7 +5191,7 @@ TEST_F(DBTest2, TraceWithFilter) {
5192
5191
  ColumnFamilyDescriptor("pikachu", ColumnFamilyOptions()));
5193
5192
  handles.clear();
5194
5193
 
5195
- DB* db3 = nullptr;
5194
+ DB* db3 = nullptr;
5196
5195
  ASSERT_OK(DB::Open(db_opts, dbname3, column_families, &handles, &db3));
5197
5196
 
5198
5197
  env_->SleepForMicroseconds(100);
@@ -5200,12 +5199,12 @@ TEST_F(DBTest2, TraceWithFilter) {
5200
5199
  ASSERT_TRUE(db3->Get(ro, handles[0], "a", &value).IsNotFound());
5201
5200
  ASSERT_TRUE(db3->Get(ro, handles[0], "g", &value).IsNotFound());
5202
5201
 
5203
- //The tracer will not record the READ ops.
5202
+ // The tracer will not record the READ ops.
5204
5203
  trace_opts.filter = TraceFilterType::kTraceFilterGet;
5205
5204
  std::string trace_filename3 = dbname_ + "/rocksdb.trace_3";
5206
5205
  std::unique_ptr<TraceWriter> trace_writer3;
5207
5206
  ASSERT_OK(
5208
- NewFileTraceWriter(env_, env_opts, trace_filename3, &trace_writer3));
5207
+ NewFileTraceWriter(env_, env_opts, trace_filename3, &trace_writer3));
5209
5208
  ASSERT_OK(db3->StartTrace(trace_opts, std::move(trace_writer3)));
5210
5209
 
5211
5210
  ASSERT_OK(db3->Put(wo, handles[0], "a", "1"));
@@ -5227,7 +5226,7 @@ TEST_F(DBTest2, TraceWithFilter) {
5227
5226
 
5228
5227
  std::unique_ptr<TraceReader> trace_reader3;
5229
5228
  ASSERT_OK(
5230
- NewFileTraceReader(env_, env_opts, trace_filename3, &trace_reader3));
5229
+ NewFileTraceReader(env_, env_opts, trace_filename3, &trace_reader3));
5231
5230
 
5232
5231
  // Count the number of records in the trace file;
5233
5232
  int count = 0;
@@ -5503,16 +5502,20 @@ TEST_F(DBTest2, TestGetColumnFamilyHandleUnlocked) {
5503
5502
  port::Thread user_thread1([&]() {
5504
5503
  auto cfh = dbi->GetColumnFamilyHandleUnlocked(handles_[0]->GetID());
5505
5504
  ASSERT_EQ(cfh->GetID(), handles_[0]->GetID());
5506
- TEST_SYNC_POINT("TestGetColumnFamilyHandleUnlocked::GetColumnFamilyHandleUnlocked1");
5507
- TEST_SYNC_POINT("TestGetColumnFamilyHandleUnlocked::ReadColumnFamilyHandle1");
5505
+ TEST_SYNC_POINT(
5506
+ "TestGetColumnFamilyHandleUnlocked::GetColumnFamilyHandleUnlocked1");
5507
+ TEST_SYNC_POINT(
5508
+ "TestGetColumnFamilyHandleUnlocked::ReadColumnFamilyHandle1");
5508
5509
  ASSERT_EQ(cfh->GetID(), handles_[0]->GetID());
5509
5510
  });
5510
5511
 
5511
5512
  port::Thread user_thread2([&]() {
5512
- TEST_SYNC_POINT("TestGetColumnFamilyHandleUnlocked::PreGetColumnFamilyHandleUnlocked2");
5513
+ TEST_SYNC_POINT(
5514
+ "TestGetColumnFamilyHandleUnlocked::PreGetColumnFamilyHandleUnlocked2");
5513
5515
  auto cfh = dbi->GetColumnFamilyHandleUnlocked(handles_[1]->GetID());
5514
5516
  ASSERT_EQ(cfh->GetID(), handles_[1]->GetID());
5515
- TEST_SYNC_POINT("TestGetColumnFamilyHandleUnlocked::GetColumnFamilyHandleUnlocked2");
5517
+ TEST_SYNC_POINT(
5518
+ "TestGetColumnFamilyHandleUnlocked::GetColumnFamilyHandleUnlocked2");
5516
5519
  ASSERT_EQ(cfh->GetID(), handles_[1]->GetID());
5517
5520
  });
5518
5521
 
@@ -5666,7 +5669,7 @@ class DummyOldStats : public Statistics {
5666
5669
  std::atomic<int> num_rt{0};
5667
5670
  std::atomic<int> num_mt{0};
5668
5671
  };
5669
- } // namespace
5672
+ } // anonymous namespace
5670
5673
 
5671
5674
  TEST_F(DBTest2, OldStatsInterface) {
5672
5675
  DummyOldStats* dos = new DummyOldStats();