@nxtedition/rocksdb 15.4.1 → 15.5.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.
Files changed (399) hide show
  1. package/binding.cc +24 -15
  2. package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
  3. package/deps/rocksdb/rocksdb/BUCK +42 -0
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
  5. package/deps/rocksdb/rocksdb/Makefile +59 -32
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
  7. package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
  8. package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
  9. package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
  10. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
  11. package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
  12. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
  13. package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
  14. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
  15. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
  16. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
  17. package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
  18. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
  19. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
  24. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
  25. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
  26. package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
  27. package/deps/rocksdb/rocksdb/db/builder.h +7 -0
  28. package/deps/rocksdb/rocksdb/db/c.cc +373 -57
  29. package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
  30. package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
  31. package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
  32. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
  50. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
  51. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
  52. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
  53. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
  54. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
  55. package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
  56. package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
  57. package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
  58. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
  59. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
  60. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
  61. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
  62. package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
  63. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
  64. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
  65. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
  66. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
  71. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
  72. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
  73. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
  77. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
  78. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
  79. package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
  80. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
  81. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
  82. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
  83. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
  84. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
  85. package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
  86. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
  87. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
  88. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
  89. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
  90. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
  91. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
  92. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
  93. package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
  94. package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
  95. package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
  96. package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
  97. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
  98. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
  99. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
  100. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
  101. package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
  102. package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
  103. package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
  104. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
  105. package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
  106. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
  107. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
  108. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
  109. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
  110. package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
  111. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
  112. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
  113. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
  114. package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
  115. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
  116. package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
  117. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
  118. package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
  119. package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
  120. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
  121. package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
  122. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
  123. package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
  124. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
  125. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
  126. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
  127. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
  128. package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
  129. package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
  130. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
  131. package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
  132. package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
  133. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
  134. package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
  135. package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
  136. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
  137. package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
  138. package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
  139. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
  140. package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
  141. package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
  142. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
  143. package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
  144. package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
  145. package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
  146. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
  147. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
  148. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
  149. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
  150. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
  151. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
  152. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
  153. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
  154. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
  155. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
  156. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
  157. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
  158. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
  159. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
  160. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
  161. package/deps/rocksdb/rocksdb/env/env.cc +1 -0
  162. package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
  163. package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
  164. package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
  165. package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
  166. package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
  167. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
  168. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
  169. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
  170. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
  171. package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
  172. package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
  173. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
  174. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
  175. package/deps/rocksdb/rocksdb/folly.mk +22 -5
  176. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
  177. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
  178. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
  179. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
  180. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
  181. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
  182. package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
  183. package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
  184. package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
  185. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
  186. package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
  187. package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
  188. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
  189. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
  190. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
  191. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
  192. package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
  193. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
  194. package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
  195. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
  196. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
  197. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
  198. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
  199. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
  200. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
  201. package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
  202. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
  203. package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
  204. package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
  205. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
  206. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
  207. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
  208. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
  209. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
  210. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  211. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
  212. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
  213. package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
  214. package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
  215. package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
  216. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
  217. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
  218. package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
  219. package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
  220. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
  221. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
  222. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
  223. package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
  224. package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
  225. package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
  226. package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
  227. package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
  228. package/deps/rocksdb/rocksdb/options/options.cc +5 -1
  229. package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
  230. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
  231. package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
  232. package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
  233. package/deps/rocksdb/rocksdb/port/lang.h +4 -0
  234. package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
  235. package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
  236. package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
  237. package/deps/rocksdb/rocksdb/src.mk +12 -0
  238. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
  239. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  240. package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
  241. package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
  242. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
  243. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
  244. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
  245. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
  246. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
  247. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
  248. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
  249. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
  250. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
  251. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
  252. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
  253. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
  254. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
  255. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
  256. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
  257. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
  258. package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
  259. package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
  260. package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
  261. package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
  262. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
  263. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
  264. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
  265. package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
  266. package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
  267. package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
  268. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
  269. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
  270. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
  271. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
  272. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
  273. package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
  274. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
  275. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
  276. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
  277. package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
  278. package/deps/rocksdb/rocksdb/table/format.cc +27 -15
  279. package/deps/rocksdb/rocksdb/table/format.h +41 -15
  280. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
  281. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
  282. package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
  283. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
  284. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
  285. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
  286. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
  287. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
  288. package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
  289. package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
  290. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
  291. package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
  292. package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
  293. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
  294. package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
  295. package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
  296. package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
  297. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
  298. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
  299. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
  300. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
  301. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
  302. package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
  303. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
  304. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
  305. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
  306. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
  307. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
  308. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
  309. package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
  310. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
  311. package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
  312. package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
  313. package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
  314. package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
  315. package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
  316. package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
  317. package/deps/rocksdb/rocksdb/util/coding.h +14 -27
  318. package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
  319. package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
  320. package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
  321. package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
  322. package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
  323. package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
  324. package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
  325. package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
  326. package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
  327. package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
  328. package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
  329. package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
  330. package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
  331. package/deps/rocksdb/rocksdb/util/math.h +3 -1
  332. package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
  333. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
  334. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
  335. package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
  336. package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
  337. package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
  338. package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
  339. package/deps/rocksdb/rocksdb/util/status.cc +3 -1
  340. package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
  341. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
  342. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
  343. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
  344. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
  345. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
  346. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
  347. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
  348. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
  349. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
  350. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
  351. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
  352. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
  353. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
  354. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
  355. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
  356. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
  357. package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
  358. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
  359. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
  360. package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
  361. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
  362. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
  363. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
  364. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
  365. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
  366. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
  367. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
  368. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
  369. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
  370. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
  371. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
  372. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
  373. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
  374. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
  375. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
  376. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
  377. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
  378. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
  379. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
  380. package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
  381. package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
  382. package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
  383. package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
  384. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
  385. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
  386. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
  387. package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
  388. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
  389. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
  390. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
  391. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
  392. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
  393. package/deps/rocksdb/rocksdb.gyp +7 -0
  394. package/iterator.js +2 -2
  395. package/package.json +1 -1
  396. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  397. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  398. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  399. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
@@ -23,6 +23,7 @@
23
23
  #include "rocksdb/merge_operator.h"
24
24
  #include "rocksdb/utilities/db_ttl.h"
25
25
  #include "test_util/testharness.h"
26
+ #include "util/cast_util.h"
26
27
  #include "util/random.h"
27
28
  #include "utilities/merge_operators.h"
28
29
  #include "utilities/merge_operators/string_append/stringappend2.h"
@@ -34,8 +35,7 @@ const std::string kDbName = test::PerThreadDBPath("stringappend_test");
34
35
 
35
36
  namespace {
36
37
  // OpenDb opens a (possibly new) rocksdb database with a StringAppendOperator
37
- std::shared_ptr<DB> OpenNormalDb(const std::string& delim) {
38
- DB* db;
38
+ std::unique_ptr<DB> OpenNormalDb(const std::string& delim) {
39
39
  Options options;
40
40
  options.create_if_missing = true;
41
41
  MergeOperator* mergeOperator;
@@ -45,12 +45,13 @@ std::shared_ptr<DB> OpenNormalDb(const std::string& delim) {
45
45
  mergeOperator = new StringAppendOperator(delim);
46
46
  }
47
47
  options.merge_operator.reset(mergeOperator);
48
+ std::unique_ptr<DB> db;
48
49
  EXPECT_OK(DB::Open(options, kDbName, &db));
49
- return std::shared_ptr<DB>(db);
50
+ return db;
50
51
  }
51
52
 
52
53
  // Open a TtlDB with a non-associative StringAppendTESTOperator
53
- std::shared_ptr<DB> OpenTtlDb(const std::string& delim) {
54
+ std::unique_ptr<DB> OpenTtlDb(const std::string& delim) {
54
55
  DBWithTTL* db;
55
56
  Options options;
56
57
  options.create_if_missing = true;
@@ -62,7 +63,7 @@ std::shared_ptr<DB> OpenTtlDb(const std::string& delim) {
62
63
  }
63
64
  options.merge_operator.reset(mergeOperator);
64
65
  EXPECT_OK(DBWithTTL::Open(options, kDbName, &db, 123456));
65
- return std::shared_ptr<DB>(db);
66
+ return std::unique_ptr<DB>(db);
66
67
  }
67
68
  } // namespace
68
69
 
@@ -72,8 +73,7 @@ class StringLists {
72
73
  public:
73
74
  // Constructor: specifies the rocksdb db
74
75
  /* implicit */
75
- StringLists(std::shared_ptr<DB> db)
76
- : db_(db), merge_option_(), get_option_() {
76
+ StringLists(UnownedPtr<DB> db) : db_(db), merge_option_(), get_option_() {
77
77
  assert(db);
78
78
  }
79
79
 
@@ -113,7 +113,7 @@ class StringLists {
113
113
  }
114
114
 
115
115
  private:
116
- std::shared_ptr<DB> db_;
116
+ UnownedPtr<DB> db_;
117
117
  WriteOptions merge_option_;
118
118
  ReadOptions get_option_;
119
119
  };
@@ -138,7 +138,7 @@ class StringAppendOperatorTest : public testing::Test,
138
138
  StringAppendOperatorTest::SetOpenDbFunction(&OpenNormalDb);
139
139
  }
140
140
 
141
- using OpenFuncPtr = std::shared_ptr<DB> (*)(const std::string&);
141
+ using OpenFuncPtr = std::unique_ptr<DB> (*)(const std::string&);
142
142
 
143
143
  // Allows user to open databases with different configurations.
144
144
  // e.g.: Can open a DB or a TtlDB, etc.
@@ -154,7 +154,7 @@ StringAppendOperatorTest::OpenFuncPtr StringAppendOperatorTest::OpenDb =
154
154
 
155
155
  TEST_P(StringAppendOperatorTest, IteratorTest) {
156
156
  auto db_ = OpenDb(",");
157
- StringLists slists(db_);
157
+ StringLists slists(db_.get());
158
158
 
159
159
  slists.Append("k1", "v1");
160
160
  slists.Append("k1", "v2");
@@ -249,7 +249,7 @@ TEST_P(StringAppendOperatorTest, IteratorTest) {
249
249
 
250
250
  TEST_P(StringAppendOperatorTest, SimpleTest) {
251
251
  auto db = OpenDb(",");
252
- StringLists slists(db);
252
+ StringLists slists(db.get());
253
253
 
254
254
  slists.Append("k1", "v1");
255
255
  slists.Append("k1", "v2");
@@ -262,7 +262,7 @@ TEST_P(StringAppendOperatorTest, SimpleTest) {
262
262
 
263
263
  TEST_P(StringAppendOperatorTest, SimpleDelimiterTest) {
264
264
  auto db = OpenDb("|");
265
- StringLists slists(db);
265
+ StringLists slists(db.get());
266
266
 
267
267
  slists.Append("k1", "v1");
268
268
  slists.Append("k1", "v2");
@@ -275,7 +275,7 @@ TEST_P(StringAppendOperatorTest, SimpleDelimiterTest) {
275
275
 
276
276
  TEST_P(StringAppendOperatorTest, EmptyDelimiterTest) {
277
277
  auto db = OpenDb("");
278
- StringLists slists(db);
278
+ StringLists slists(db.get());
279
279
 
280
280
  slists.Append("k1", "v1");
281
281
  slists.Append("k1", "v2");
@@ -288,7 +288,7 @@ TEST_P(StringAppendOperatorTest, EmptyDelimiterTest) {
288
288
 
289
289
  TEST_P(StringAppendOperatorTest, MultiCharDelimiterTest) {
290
290
  auto db = OpenDb("<>");
291
- StringLists slists(db);
291
+ StringLists slists(db.get());
292
292
 
293
293
  slists.Append("k1", "v1");
294
294
  slists.Append("k1", "v2");
@@ -302,7 +302,7 @@ TEST_P(StringAppendOperatorTest, MultiCharDelimiterTest) {
302
302
  TEST_P(StringAppendOperatorTest, DelimiterIsDefensivelyCopiedTest) {
303
303
  std::string delimiter = "<>";
304
304
  auto db = OpenDb(delimiter);
305
- StringLists slists(db);
305
+ StringLists slists(db.get());
306
306
 
307
307
  slists.Append("k1", "v1");
308
308
  slists.Append("k1", "v2");
@@ -316,7 +316,7 @@ TEST_P(StringAppendOperatorTest, DelimiterIsDefensivelyCopiedTest) {
316
316
 
317
317
  TEST_P(StringAppendOperatorTest, OneValueNoDelimiterTest) {
318
318
  auto db = OpenDb("!");
319
- StringLists slists(db);
319
+ StringLists slists(db.get());
320
320
 
321
321
  slists.Append("random_key", "single_val");
322
322
 
@@ -327,7 +327,7 @@ TEST_P(StringAppendOperatorTest, OneValueNoDelimiterTest) {
327
327
 
328
328
  TEST_P(StringAppendOperatorTest, VariousKeys) {
329
329
  auto db = OpenDb("\n");
330
- StringLists slists(db);
330
+ StringLists slists(db.get());
331
331
 
332
332
  slists.Append("c", "asdasd");
333
333
  slists.Append("a", "x");
@@ -353,7 +353,7 @@ TEST_P(StringAppendOperatorTest, VariousKeys) {
353
353
  // Generate semi random keys/words from a small distribution.
354
354
  TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
355
355
  auto db = OpenDb(" ");
356
- StringLists slists(db);
356
+ StringLists slists(db.get());
357
357
 
358
358
  // Generate a list of random keys and values
359
359
  const int kWordCount = 15;
@@ -402,7 +402,7 @@ TEST_P(StringAppendOperatorTest, RandomMixGetAppend) {
402
402
 
403
403
  TEST_P(StringAppendOperatorTest, BIGRandomMixGetAppend) {
404
404
  auto db = OpenDb(" ");
405
- StringLists slists(db);
405
+ StringLists slists(db.get());
406
406
 
407
407
  // Generate a list of random keys and values
408
408
  const int kWordCount = 15;
@@ -453,7 +453,7 @@ TEST_P(StringAppendOperatorTest, PersistentVariousKeys) {
453
453
  // Perform the following operations in limited scope
454
454
  {
455
455
  auto db = OpenDb("\n");
456
- StringLists slists(db);
456
+ StringLists slists(db.get());
457
457
 
458
458
  slists.Append("c", "asdasd");
459
459
  slists.Append("a", "x");
@@ -476,7 +476,7 @@ TEST_P(StringAppendOperatorTest, PersistentVariousKeys) {
476
476
  // Reopen the database (the previous changes should persist / be remembered)
477
477
  {
478
478
  auto db = OpenDb("\n");
479
- StringLists slists(db);
479
+ StringLists slists(db.get());
480
480
 
481
481
  slists.Append("c", "bbnagnagsx");
482
482
  slists.Append("a", "sa");
@@ -502,7 +502,7 @@ TEST_P(StringAppendOperatorTest, PersistentVariousKeys) {
502
502
  // Reopen the database (the previous changes should persist / be remembered)
503
503
  {
504
504
  auto db = OpenDb("\n");
505
- StringLists slists(db);
505
+ StringLists slists(db.get());
506
506
 
507
507
  // All changes should be on disk. This will test VersionSet Get()
508
508
  std::string a, b, c;
@@ -520,7 +520,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
520
520
  // Perform the following operations in limited scope
521
521
  {
522
522
  auto db = OpenDb("\n");
523
- StringLists slists(db);
523
+ StringLists slists(db.get());
524
524
  std::string a, b, c;
525
525
 
526
526
  // Append, Flush, Get
@@ -559,7 +559,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
559
559
  // Reopen the database (the previous changes should persist / be remembered)
560
560
  {
561
561
  auto db = OpenDb("\n");
562
- StringLists slists(db);
562
+ StringLists slists(db.get());
563
563
  std::string a, b, c;
564
564
 
565
565
  // Get (Quick check for persistence of previous database)
@@ -607,7 +607,7 @@ TEST_P(StringAppendOperatorTest, PersistentFlushAndCompaction) {
607
607
 
608
608
  TEST_P(StringAppendOperatorTest, SimpleTestNullDelimiter) {
609
609
  auto db = OpenDb(std::string(1, '\0'));
610
- StringLists slists(db);
610
+ StringLists slists(db.get());
611
611
 
612
612
  slists.Append("k1", "v1");
613
613
  slists.Append("k1", "v2");
@@ -15,7 +15,7 @@
15
15
 
16
16
  namespace ROCKSDB_NAMESPACE {
17
17
  namespace {
18
- bool MatchesInteger(const std::string &target, size_t start, size_t pos) {
18
+ bool MatchesInteger(const std::string& target, size_t start, size_t pos) {
19
19
  // If it is numeric, everything up to the match must be a number
20
20
  int digits = 0;
21
21
  if (target[start] == '-') {
@@ -31,7 +31,7 @@ bool MatchesInteger(const std::string &target, size_t start, size_t pos) {
31
31
  return (digits > 0);
32
32
  }
33
33
 
34
- bool MatchesDecimal(const std::string &target, size_t start, size_t pos) {
34
+ bool MatchesDecimal(const std::string& target, size_t start, size_t pos) {
35
35
  int digits = 0;
36
36
  if (target[start] == '-') {
37
37
  start++; // Allow negative numbers
@@ -54,8 +54,8 @@ bool MatchesDecimal(const std::string &target, size_t start, size_t pos) {
54
54
  } // namespace
55
55
 
56
56
  size_t ObjectLibrary::PatternEntry::MatchSeparatorAt(
57
- size_t start, Quantifier mode, const std::string &target, size_t tlen,
58
- const std::string &separator) const {
57
+ size_t start, Quantifier mode, const std::string& target, size_t tlen,
58
+ const std::string& separator) const {
59
59
  size_t slen = separator.size();
60
60
  // See if there is enough space. If so, find the separator
61
61
  if (tlen < start + slen) {
@@ -87,9 +87,9 @@ size_t ObjectLibrary::PatternEntry::MatchSeparatorAt(
87
87
  }
88
88
  }
89
89
 
90
- bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string &name,
90
+ bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string& name,
91
91
  size_t nlen,
92
- const std::string &target,
92
+ const std::string& target,
93
93
  size_t tlen) const {
94
94
  if (separators_.empty()) {
95
95
  assert(optional_); // If there are no separators, it must be only a name
@@ -109,7 +109,7 @@ bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string &name,
109
109
  size_t start = nlen;
110
110
  auto mode = kMatchExact;
111
111
  for (size_t idx = 0; idx < separators_.size(); ++idx) {
112
- const auto &separator = separators_[idx];
112
+ const auto& separator = separators_[idx];
113
113
  start = MatchSeparatorAt(start, mode, target, tlen, separator.first);
114
114
  if (start == std::string::npos) {
115
115
  return false;
@@ -132,12 +132,12 @@ bool ObjectLibrary::PatternEntry::MatchesTarget(const std::string &name,
132
132
  return true;
133
133
  }
134
134
 
135
- bool ObjectLibrary::PatternEntry::Matches(const std::string &target) const {
135
+ bool ObjectLibrary::PatternEntry::Matches(const std::string& target) const {
136
136
  auto tlen = target.size();
137
137
  if (MatchesTarget(name_, nlength_, target, tlen)) {
138
138
  return true;
139
139
  } else if (!names_.empty()) {
140
- for (const auto &alt : names_) {
140
+ for (const auto& alt : names_) {
141
141
  if (MatchesTarget(alt, alt.size(), target, tlen)) {
142
142
  return true;
143
143
  }
@@ -146,17 +146,17 @@ bool ObjectLibrary::PatternEntry::Matches(const std::string &target) const {
146
146
  return false;
147
147
  }
148
148
 
149
- size_t ObjectLibrary::GetFactoryCount(size_t *types) const {
149
+ size_t ObjectLibrary::GetFactoryCount(size_t* types) const {
150
150
  std::unique_lock<std::mutex> lock(mu_);
151
151
  *types = factories_.size();
152
152
  size_t factories = 0;
153
- for (const auto &e : factories_) {
153
+ for (const auto& e : factories_) {
154
154
  factories += e.second.size();
155
155
  }
156
156
  return factories;
157
157
  }
158
158
 
159
- size_t ObjectLibrary::GetFactoryCount(const std::string &type) const {
159
+ size_t ObjectLibrary::GetFactoryCount(const std::string& type) const {
160
160
  std::unique_lock<std::mutex> lock(mu_);
161
161
  auto iter = factories_.find(type);
162
162
  if (iter != factories_.end()) {
@@ -166,36 +166,36 @@ size_t ObjectLibrary::GetFactoryCount(const std::string &type) const {
166
166
  }
167
167
  }
168
168
 
169
- void ObjectLibrary::GetFactoryNames(const std::string &type,
170
- std::vector<std::string> *names) const {
169
+ void ObjectLibrary::GetFactoryNames(const std::string& type,
170
+ std::vector<std::string>* names) const {
171
171
  assert(names);
172
172
  std::unique_lock<std::mutex> lock(mu_);
173
173
  auto iter = factories_.find(type);
174
174
  if (iter != factories_.end()) {
175
- for (const auto &f : iter->second) {
175
+ for (const auto& f : iter->second) {
176
176
  names->push_back(f->Name());
177
177
  }
178
178
  }
179
179
  }
180
180
 
181
181
  void ObjectLibrary::GetFactoryTypes(
182
- std::unordered_set<std::string> *types) const {
182
+ std::unordered_set<std::string>* types) const {
183
183
  assert(types);
184
184
  std::unique_lock<std::mutex> lock(mu_);
185
- for (const auto &iter : factories_) {
185
+ for (const auto& iter : factories_) {
186
186
  types->insert(iter.first);
187
187
  }
188
188
  }
189
189
 
190
- void ObjectLibrary::Dump(Logger *logger) const {
190
+ void ObjectLibrary::Dump(Logger* logger) const {
191
191
  std::unique_lock<std::mutex> lock(mu_);
192
192
  if (logger != nullptr && !factories_.empty()) {
193
193
  ROCKS_LOG_HEADER(logger, " Registered Library: %s\n", id_.c_str());
194
- for (const auto &iter : factories_) {
194
+ for (const auto& iter : factories_) {
195
195
  ROCKS_LOG_HEADER(logger, " Registered factories for type[%s] ",
196
196
  iter.first.c_str());
197
197
  bool printed_one = false;
198
- for (const auto &e : iter.second) {
198
+ for (const auto& e : iter.second) {
199
199
  ROCKS_LOG_HEADER(logger, "%c %s", (printed_one) ? ',' : ':', e->Name());
200
200
  printed_one = true;
201
201
  }
@@ -205,7 +205,7 @@ void ObjectLibrary::Dump(Logger *logger) const {
205
205
 
206
206
  // Returns the Default singleton instance of the ObjectLibrary
207
207
  // This instance will contain most of the "standard" registered objects
208
- std::shared_ptr<ObjectLibrary> &ObjectLibrary::Default() {
208
+ std::shared_ptr<ObjectLibrary>& ObjectLibrary::Default() {
209
209
  // Use avoid destruction here so the default ObjectLibrary will not be
210
210
  // statically destroyed and long-lived.
211
211
  STATIC_AVOID_DESTRUCTION(std::shared_ptr<ObjectLibrary>, instance)
@@ -213,9 +213,9 @@ std::shared_ptr<ObjectLibrary> &ObjectLibrary::Default() {
213
213
  return instance;
214
214
  }
215
215
 
216
- ObjectRegistry::ObjectRegistry(const std::shared_ptr<ObjectLibrary> &library) {
216
+ ObjectRegistry::ObjectRegistry(const std::shared_ptr<ObjectLibrary>& library) {
217
217
  libraries_.push_back(library);
218
- for (const auto &b : builtins_) {
218
+ for (const auto& b : builtins_) {
219
219
  RegisterPlugin(b.first, b.second);
220
220
  }
221
221
  }
@@ -233,13 +233,13 @@ std::shared_ptr<ObjectRegistry> ObjectRegistry::NewInstance() {
233
233
  }
234
234
 
235
235
  std::shared_ptr<ObjectRegistry> ObjectRegistry::NewInstance(
236
- const std::shared_ptr<ObjectRegistry> &parent) {
236
+ const std::shared_ptr<ObjectRegistry>& parent) {
237
237
  return std::make_shared<ObjectRegistry>(parent);
238
238
  }
239
239
 
240
240
  Status ObjectRegistry::SetManagedObject(
241
- const std::string &type, const std::string &id,
242
- const std::shared_ptr<Customizable> &object) {
241
+ const std::string& type, const std::string& id,
242
+ const std::shared_ptr<Customizable>& object) {
243
243
  std::string object_key = ToManagedObjectKey(type, id);
244
244
  std::shared_ptr<Customizable> curr;
245
245
  if (parent_ != nullptr) {
@@ -267,7 +267,7 @@ Status ObjectRegistry::SetManagedObject(
267
267
  }
268
268
 
269
269
  std::shared_ptr<Customizable> ObjectRegistry::GetManagedObject(
270
- const std::string &type, const std::string &id) const {
270
+ const std::string& type, const std::string& id) const {
271
271
  {
272
272
  std::unique_lock<std::mutex> lock(objects_mutex_);
273
273
  auto iter = managed_objects_.find(ToManagedObjectKey(type, id));
@@ -283,8 +283,8 @@ std::shared_ptr<Customizable> ObjectRegistry::GetManagedObject(
283
283
  }
284
284
 
285
285
  Status ObjectRegistry::ListManagedObjects(
286
- const std::string &type, const std::string &name,
287
- std::vector<std::shared_ptr<Customizable>> *results) const {
286
+ const std::string& type, const std::string& name,
287
+ std::vector<std::shared_ptr<Customizable>>* results) const {
288
288
  {
289
289
  std::string key = ToManagedObjectKey(type, name);
290
290
  std::unique_lock<std::mutex> lock(objects_mutex_);
@@ -309,50 +309,50 @@ Status ObjectRegistry::ListManagedObjects(
309
309
  // Returns the number of registered types for this registry.
310
310
  // If specified (not-null), types is updated to include the names of the
311
311
  // registered types.
312
- size_t ObjectRegistry::GetFactoryCount(const std::string &type) const {
312
+ size_t ObjectRegistry::GetFactoryCount(const std::string& type) const {
313
313
  size_t count = 0;
314
314
  if (parent_ != nullptr) {
315
315
  count = parent_->GetFactoryCount(type);
316
316
  }
317
317
  std::unique_lock<std::mutex> lock(library_mutex_);
318
- for (const auto &library : libraries_) {
318
+ for (const auto& library : libraries_) {
319
319
  count += library->GetFactoryCount(type);
320
320
  }
321
321
  return count;
322
322
  }
323
323
 
324
- void ObjectRegistry::GetFactoryNames(const std::string &type,
325
- std::vector<std::string> *names) const {
324
+ void ObjectRegistry::GetFactoryNames(const std::string& type,
325
+ std::vector<std::string>* names) const {
326
326
  assert(names);
327
327
  names->clear();
328
328
  if (parent_ != nullptr) {
329
329
  parent_->GetFactoryNames(type, names);
330
330
  }
331
331
  std::unique_lock<std::mutex> lock(library_mutex_);
332
- for (const auto &library : libraries_) {
332
+ for (const auto& library : libraries_) {
333
333
  library->GetFactoryNames(type, names);
334
334
  }
335
335
  }
336
336
 
337
337
  void ObjectRegistry::GetFactoryTypes(
338
- std::unordered_set<std::string> *types) const {
338
+ std::unordered_set<std::string>* types) const {
339
339
  assert(types);
340
340
  if (parent_ != nullptr) {
341
341
  parent_->GetFactoryTypes(types);
342
342
  }
343
343
  std::unique_lock<std::mutex> lock(library_mutex_);
344
- for (const auto &library : libraries_) {
344
+ for (const auto& library : libraries_) {
345
345
  library->GetFactoryTypes(types);
346
346
  }
347
347
  }
348
348
 
349
- void ObjectRegistry::Dump(Logger *logger) const {
349
+ void ObjectRegistry::Dump(Logger* logger) const {
350
350
  if (logger != nullptr) {
351
351
  std::unique_lock<std::mutex> lock(library_mutex_);
352
352
  if (!plugins_.empty()) {
353
353
  ROCKS_LOG_HEADER(logger, " Registered Plugins:");
354
354
  bool printed_one = false;
355
- for (const auto &plugin : plugins_) {
355
+ for (const auto& plugin : plugins_) {
356
356
  ROCKS_LOG_HEADER(logger, "%s%s", (printed_one) ? ", " : " ",
357
357
  plugin.c_str());
358
358
  printed_one = true;
@@ -368,8 +368,8 @@ void ObjectRegistry::Dump(Logger *logger) const {
368
368
  }
369
369
  }
370
370
 
371
- int ObjectRegistry::RegisterPlugin(const std::string &name,
372
- const RegistrarFunc &func) {
371
+ int ObjectRegistry::RegisterPlugin(const std::string& name,
372
+ const RegistrarFunc& func) {
373
373
  if (!name.empty() && func != nullptr) {
374
374
  plugins_.push_back(name);
375
375
  return AddLibrary(name)->Register(func, name);
@@ -221,12 +221,9 @@ Status OpenDBWithCFs(const DBOptions& db_opts, const std::string& dbname,
221
221
  std::unique_ptr<DB>* db,
222
222
  std::vector<ColumnFamilyHandle*>* handles) {
223
223
  handles->clear();
224
- DB* tmpdb;
225
- Status s = DB::Open(db_opts, dbname, cf_descs, handles, &tmpdb);
224
+ Status s = DB::Open(db_opts, dbname, cf_descs, handles, db);
226
225
 
227
- if (s.ok()) {
228
- db->reset(tmpdb);
229
- } else {
226
+ if (!s.ok()) {
230
227
  for (auto* handle : *handles) {
231
228
  delete handle;
232
229
  }
@@ -216,8 +216,6 @@ class DummySliceTransform : public SliceTransform {
216
216
  // determine whether this is a valid src upon the function applies
217
217
  bool InDomain(const Slice& /*src*/) const override { return false; }
218
218
 
219
- // determine whether dst=Transform(src) for some src
220
- bool InRange(const Slice& /*dst*/) const override { return false; }
221
219
  };
222
220
 
223
221
  } // namespace
@@ -243,7 +241,7 @@ TEST_F(OptionsUtilTest, SanityCheck) {
243
241
  db_opt.create_if_missing = true;
244
242
 
245
243
  ASSERT_OK(DestroyDB(dbname_, Options(db_opt, cf_descs[0].options)));
246
- DB* db;
244
+ std::unique_ptr<DB> db;
247
245
  std::vector<ColumnFamilyHandle*> handles;
248
246
  // open and persist the options
249
247
  ASSERT_OK(DB::Open(db_opt, dbname_, cf_descs, &handles, &db));
@@ -252,7 +250,7 @@ TEST_F(OptionsUtilTest, SanityCheck) {
252
250
  for (auto* handle : handles) {
253
251
  delete handle;
254
252
  }
255
- delete db;
253
+ db.reset();
256
254
 
257
255
  ConfigOptions config_options;
258
256
  config_options.ignore_unknown_options = false;
@@ -435,7 +433,7 @@ TEST_F(OptionsUtilTest, LoadLatestOptions) {
435
433
  DBOptions db_opts;
436
434
  std::vector<ColumnFamilyDescriptor> cf_descs;
437
435
  std::vector<ColumnFamilyHandle*> handles;
438
- DB* db;
436
+ std::unique_ptr<DB> db;
439
437
  options.create_if_missing = true;
440
438
 
441
439
  ASSERT_OK(DestroyDB(dbname_, options));
@@ -495,7 +493,7 @@ TEST_F(OptionsUtilTest, LoadLatestOptions) {
495
493
  for (auto* handle : handles) {
496
494
  delete handle;
497
495
  }
498
- delete db;
496
+ db.reset();
499
497
  ASSERT_OK(DestroyDB(dbname_, options, cf_descs));
500
498
  }
501
499
 
@@ -639,7 +637,7 @@ TEST_F(OptionsUtilTest, BadLatestOptions) {
639
637
  }
640
638
 
641
639
  TEST_F(OptionsUtilTest, RenameDatabaseDirectory) {
642
- DB* db;
640
+ std::unique_ptr<DB> db;
643
641
  Options options;
644
642
  DBOptions db_opts;
645
643
  std::vector<ColumnFamilyDescriptor> cf_descs;
@@ -652,7 +650,7 @@ TEST_F(OptionsUtilTest, RenameDatabaseDirectory) {
652
650
 
653
651
  ASSERT_OK(DB::Open(options, dbname_, &db));
654
652
  ASSERT_OK(db->Put(WriteOptions(), "foo", "value0"));
655
- delete db;
653
+ db.reset();
656
654
 
657
655
  auto new_dbname = dbname_ + "_2";
658
656
 
@@ -669,14 +667,14 @@ TEST_F(OptionsUtilTest, RenameDatabaseDirectory) {
669
667
  for (auto* handle : handles) {
670
668
  delete handle;
671
669
  }
672
- delete db;
670
+ db.reset();
673
671
  Options new_options(db_opts, cf_descs[0].options);
674
672
  ASSERT_OK(DestroyDB(new_dbname, new_options, cf_descs));
675
673
  ASSERT_OK(DestroyDB(dbname_, options));
676
674
  }
677
675
 
678
676
  TEST_F(OptionsUtilTest, WalDirSettings) {
679
- DB* db;
677
+ std::unique_ptr<DB> db;
680
678
  Options options;
681
679
  DBOptions db_opts;
682
680
  std::vector<ColumnFamilyDescriptor> cf_descs;
@@ -689,14 +687,14 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
689
687
 
690
688
  // Open a DB with no wal dir set. The wal_dir should stay empty
691
689
  ASSERT_OK(DB::Open(options, dbname_, &db));
692
- delete db;
690
+ db.reset();
693
691
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
694
692
  ASSERT_EQ(db_opts.wal_dir, "");
695
693
 
696
694
  // Open a DB with wal_dir == dbname. The wal_dir should be set to empty
697
695
  options.wal_dir = dbname_;
698
696
  ASSERT_OK(DB::Open(options, dbname_, &db));
699
- delete db;
697
+ db.reset();
700
698
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
701
699
  ASSERT_EQ(db_opts.wal_dir, "");
702
700
 
@@ -705,7 +703,7 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
705
703
  options.wal_dir = "";
706
704
  options.db_paths.emplace_back(dbname_, std::numeric_limits<uint64_t>::max());
707
705
  ASSERT_OK(DB::Open(options, dbname_, &db));
708
- delete db;
706
+ db.reset();
709
707
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
710
708
  ASSERT_EQ(db_opts.wal_dir, "");
711
709
 
@@ -714,7 +712,7 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
714
712
  options.wal_dir = dbname_ + "/";
715
713
  options.db_paths.emplace_back(dbname_, std::numeric_limits<uint64_t>::max());
716
714
  ASSERT_OK(DB::Open(options, dbname_, &db));
717
- delete db;
715
+ db.reset();
718
716
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
719
717
  ASSERT_EQ(db_opts.wal_dir, "");
720
718
  ASSERT_OK(DestroyDB(dbname_, options));
@@ -725,7 +723,7 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
725
723
  options.db_paths.emplace_back(dbname_ + "_0",
726
724
  std::numeric_limits<uint64_t>::max());
727
725
  ASSERT_OK(DB::Open(options, dbname_, &db));
728
- delete db;
726
+ db.reset();
729
727
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
730
728
  ASSERT_EQ(db_opts.wal_dir, dbname_);
731
729
  ASSERT_OK(DestroyDB(dbname_, options));
@@ -734,14 +732,14 @@ TEST_F(OptionsUtilTest, WalDirSettings) {
734
732
  options.wal_dir = dbname_ + "/wal";
735
733
  options.db_paths.clear();
736
734
  ASSERT_OK(DB::Open(options, dbname_, &db));
737
- delete db;
735
+ db.reset();
738
736
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
739
737
  ASSERT_EQ(db_opts.wal_dir, dbname_ + "/wal");
740
738
  ASSERT_OK(DestroyDB(dbname_, options));
741
739
  }
742
740
 
743
741
  TEST_F(OptionsUtilTest, WalDirInOptins) {
744
- DB* db;
742
+ std::unique_ptr<DB> db;
745
743
  Options options;
746
744
  DBOptions db_opts;
747
745
  std::vector<ColumnFamilyDescriptor> cf_descs;
@@ -755,7 +753,7 @@ TEST_F(OptionsUtilTest, WalDirInOptins) {
755
753
  options.create_if_missing = true;
756
754
  options.wal_dir = "";
757
755
  ASSERT_OK(DB::Open(options, dbname_, &db));
758
- delete db;
756
+ db.reset();
759
757
  options.wal_dir = dbname_;
760
758
  std::string options_file;
761
759
  ASSERT_OK(GetLatestOptionsFileName(dbname_, options.env, &options_file));
@@ -766,7 +764,7 @@ TEST_F(OptionsUtilTest, WalDirInOptins) {
766
764
  ASSERT_EQ(db_opts.wal_dir, dbname_);
767
765
  options.wal_dir = "";
768
766
  ASSERT_OK(DB::Open(options, dbname_, &db));
769
- delete db;
767
+ db.reset();
770
768
  ASSERT_OK(LoadLatestOptions(ignore_opts, dbname_, &db_opts, &cf_descs));
771
769
  ASSERT_EQ(db_opts.wal_dir, "");
772
770
  }
@@ -254,7 +254,7 @@ bool RandomAccessCacheFile::ParseRec(const LBA& lba, Slice* key, Slice* val,
254
254
 
255
255
  CacheRecord rec;
256
256
  if (!rec.Deserialize(data)) {
257
- assert(!"Error deserializing data");
257
+ assert(false && "Error deserializing data");
258
258
  Error(log_, "Error de-serializing record from file %s off %d",
259
259
  Path().c_str(), lba.off_);
260
260
  return false;
@@ -339,7 +339,7 @@ bool WriteableCacheFile::Append(const Slice& key, const Slice& val, LBA* lba) {
339
339
  CacheRecord rec(key, val);
340
340
  if (!rec.Serialize(&bufs_, &buf_woff_)) {
341
341
  // unexpected error: unable to serialize the data
342
- assert(!"Error serializing record");
342
+ assert(false && "Error serializing record");
343
343
  return false;
344
344
  }
345
345
 
@@ -101,14 +101,14 @@ class BlockCacheFile : public LRUElement<BlockCacheFile> {
101
101
  // append key/value to file and return LBA locator to user
102
102
  virtual bool Append(const Slice& /*key*/, const Slice& /*val*/,
103
103
  LBA* const /*lba*/) {
104
- assert(!"not implemented");
104
+ assert(false && "not implemented");
105
105
  return false;
106
106
  }
107
107
 
108
108
  // read from the record locator (LBA) and return key, value and status
109
109
  virtual bool Read(const LBA& /*lba*/, Slice* /*key*/, Slice* /*block*/,
110
110
  char* /*scratch*/) {
111
- assert(!"not implemented");
111
+ assert(false && "not implemented");
112
112
  return false;
113
113
  }
114
114
 
@@ -106,7 +106,7 @@ Status VolatileCacheTier::Lookup(const Slice& page_key,
106
106
  }
107
107
 
108
108
  bool VolatileCacheTier::Erase(const Slice& /*key*/) {
109
- assert(!"not supported");
109
+ assert(false && "not supported");
110
110
  return true;
111
111
  }
112
112