@nxtedition/rocksdb 6.0.1 → 6.0.2

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 (310) hide show
  1. package/BUILDING.md +2 -2
  2. package/binding.cc +14 -17
  3. package/deps/rocksdb/build_version.cc +4 -10
  4. package/deps/rocksdb/rocksdb/CMakeLists.txt +17 -3
  5. package/deps/rocksdb/rocksdb/Makefile +57 -86
  6. package/deps/rocksdb/rocksdb/TARGETS +4 -0
  7. package/deps/rocksdb/rocksdb/cache/cache_test.cc +29 -17
  8. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.cc +511 -0
  9. package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +299 -0
  10. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +3 -0
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.h +7 -0
  12. package/deps/rocksdb/rocksdb/common.mk +30 -0
  13. package/deps/rocksdb/rocksdb/crash_test.mk +3 -3
  14. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -1
  15. package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -3
  16. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -7
  17. package/deps/rocksdb/rocksdb/db/builder.cc +11 -4
  18. package/deps/rocksdb/rocksdb/db/c.cc +45 -0
  19. package/deps/rocksdb/rocksdb/db/c_test.c +25 -2
  20. package/deps/rocksdb/rocksdb/db/column_family.cc +4 -3
  21. package/deps/rocksdb/rocksdb/db/column_family_test.cc +23 -22
  22. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +11 -11
  23. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +2 -2
  24. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +36 -10
  25. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +4 -1
  26. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +3 -2
  27. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +25 -10
  28. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +6 -0
  29. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +3 -3
  30. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +69 -14
  31. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +7 -7
  32. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +1 -1
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +21 -21
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +135 -32
  36. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
  37. package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
  38. package/deps/rocksdb/rocksdb/db/corruption_test.cc +209 -38
  39. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +2 -2
  40. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
  41. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -25
  42. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +85 -138
  43. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +68 -3
  44. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +38 -13
  45. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -1
  46. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1 -1
  47. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +9 -8
  48. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +1 -1
  49. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +5 -4
  50. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -4
  51. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +2 -2
  52. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +9 -3
  53. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +6 -3
  54. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +26 -18
  55. package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +8 -7
  56. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +8 -8
  57. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +6 -3
  58. package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +2 -2
  59. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +6 -6
  60. package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +2 -2
  61. package/deps/rocksdb/rocksdb/db/db_options_test.cc +12 -12
  62. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +16 -15
  63. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +6 -4
  64. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +15 -14
  65. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +6 -6
  66. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +68 -7
  67. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -5
  68. package/deps/rocksdb/rocksdb/db/db_test.cc +44 -42
  69. package/deps/rocksdb/rocksdb/db/db_test2.cc +23 -19
  70. package/deps/rocksdb/rocksdb/db/db_test_util.cc +95 -17
  71. package/deps/rocksdb/rocksdb/db/db_test_util.h +48 -0
  72. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +1 -1
  73. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +7 -7
  74. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +4 -4
  75. package/deps/rocksdb/rocksdb/db/db_write_test.cc +6 -6
  76. package/deps/rocksdb/rocksdb/db/dbformat.h +2 -1
  77. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +1 -1
  78. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -8
  79. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +34 -12
  80. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +3 -0
  81. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +7 -7
  82. package/deps/rocksdb/rocksdb/db/file_indexer.h +1 -4
  83. package/deps/rocksdb/rocksdb/db/flush_job.cc +18 -4
  84. package/deps/rocksdb/rocksdb/db/flush_job.h +4 -0
  85. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +98 -30
  86. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1 -1
  87. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -0
  88. package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -12
  89. package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -3
  90. package/deps/rocksdb/rocksdb/db/memtable.cc +2 -2
  91. package/deps/rocksdb/rocksdb/db/memtable_list.h +1 -1
  92. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -25
  93. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +1 -1
  94. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +18 -18
  95. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +6 -6
  96. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -1
  97. package/deps/rocksdb/rocksdb/db/repair.cc +1 -1
  98. package/deps/rocksdb/rocksdb/db/repair_test.cc +5 -5
  99. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +1 -2
  100. package/deps/rocksdb/rocksdb/db/table_cache.cc +2 -4
  101. package/deps/rocksdb/rocksdb/db/version_builder.cc +1 -1
  102. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -5
  103. package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -2
  104. package/deps/rocksdb/rocksdb/db/version_set.cc +2 -2
  105. package/deps/rocksdb/rocksdb/db/version_set.h +3 -3
  106. package/deps/rocksdb/rocksdb/db/wal_edit.h +2 -1
  107. package/deps/rocksdb/rocksdb/db/wal_manager.cc +2 -3
  108. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/write_batch.cc +178 -30
  110. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +6 -6
  111. package/deps/rocksdb/rocksdb/db/write_controller.h +1 -1
  112. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -2
  113. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +7 -6
  114. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +2 -1
  115. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +4 -3
  116. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +31 -6
  117. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +4 -1
  118. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +0 -10
  119. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +45 -42
  120. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +359 -275
  121. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +53 -3
  122. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -12
  123. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +13 -11
  124. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +276 -109
  125. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +63 -0
  126. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +45 -54
  127. package/deps/rocksdb/rocksdb/env/composite_env.cc +87 -14
  128. package/deps/rocksdb/rocksdb/env/env.cc +0 -60
  129. package/deps/rocksdb/rocksdb/env/env_encryption.cc +9 -0
  130. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +1 -1
  131. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -5
  132. package/deps/rocksdb/rocksdb/env/env_test.cc +18 -5
  133. package/deps/rocksdb/rocksdb/env/fs_posix.cc +17 -12
  134. package/deps/rocksdb/rocksdb/env/io_posix.cc +39 -37
  135. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +9 -9
  136. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -1
  137. package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
  138. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -2
  139. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +7 -0
  140. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +69 -45
  141. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +3 -1
  142. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +35 -0
  143. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +5 -5
  144. package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +59 -2
  145. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
  146. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -1
  147. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -44
  148. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -1
  149. package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +2 -4
  150. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +3 -0
  151. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +28 -3
  152. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +91 -40
  153. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -2
  154. package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +22 -13
  155. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +9 -0
  156. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +4 -0
  157. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +25 -0
  158. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +189 -103
  159. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +14 -0
  160. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  161. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +18 -4
  162. package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
  163. package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +1 -5
  164. package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +1 -5
  165. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +6 -8
  166. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -1
  167. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +1 -1
  168. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +5 -3
  169. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +266 -45
  170. package/deps/rocksdb/rocksdb/monitoring/histogram.cc +2 -1
  171. package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +1 -4
  172. package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +4 -4
  173. package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +2 -8
  174. package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +2 -2
  175. package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -5
  176. package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +1 -5
  177. package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +2 -2
  178. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +2 -1
  179. package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +1 -1
  180. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +3 -3
  181. package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +2 -2
  182. package/deps/rocksdb/rocksdb/options/cf_options.cc +34 -38
  183. package/deps/rocksdb/rocksdb/options/configurable.cc +9 -27
  184. package/deps/rocksdb/rocksdb/options/configurable_test.cc +1 -1
  185. package/deps/rocksdb/rocksdb/options/customizable.cc +3 -1
  186. package/deps/rocksdb/rocksdb/options/customizable_test.cc +379 -318
  187. package/deps/rocksdb/rocksdb/options/db_options.cc +38 -17
  188. package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
  189. package/deps/rocksdb/rocksdb/options/options_helper.cc +82 -39
  190. package/deps/rocksdb/rocksdb/options/options_parser.cc +10 -10
  191. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +6 -3
  192. package/deps/rocksdb/rocksdb/options/options_test.cc +115 -59
  193. package/deps/rocksdb/rocksdb/port/port_posix.h +0 -15
  194. package/deps/rocksdb/rocksdb/port/win/env_win.cc +5 -4
  195. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  196. package/deps/rocksdb/rocksdb/port/win/port_win.h +0 -31
  197. package/deps/rocksdb/rocksdb/rocksdb.pc.in +11 -0
  198. package/deps/rocksdb/rocksdb/src.mk +2 -0
  199. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  200. package/deps/rocksdb/rocksdb/table/block_based/block.cc +4 -2
  201. package/deps/rocksdb/rocksdb/table/block_based/block.h +21 -25
  202. package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +3 -4
  203. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +14 -4
  204. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +52 -15
  205. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +1 -1
  206. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +85 -41
  207. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +42 -72
  208. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +7 -5
  209. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -1
  210. package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +1 -1
  211. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +33 -17
  212. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +2 -1
  213. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +2 -2
  214. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
  215. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +2 -1
  216. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +2 -1
  217. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +6 -3
  218. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +4 -4
  219. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +5 -5
  220. package/deps/rocksdb/rocksdb/table/cleanable_test.cc +113 -0
  221. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +1 -1
  222. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +1 -1
  223. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +1 -1
  224. package/deps/rocksdb/rocksdb/table/format.cc +22 -20
  225. package/deps/rocksdb/rocksdb/table/iterator.cc +1 -81
  226. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
  227. package/deps/rocksdb/rocksdb/table/multiget_context.h +14 -11
  228. package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +0 -3
  229. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +12 -1
  230. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +4 -4
  231. package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +1 -1
  232. package/deps/rocksdb/rocksdb/table/table_properties.cc +3 -5
  233. package/deps/rocksdb/rocksdb/table/table_test.cc +202 -78
  234. package/deps/rocksdb/rocksdb/table/unique_id.cc +57 -25
  235. package/deps/rocksdb/rocksdb/table/unique_id_impl.h +34 -4
  236. package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -1
  237. package/deps/rocksdb/rocksdb/test_util/testutil.h +11 -8
  238. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +8 -4
  239. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +17 -0
  240. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +11 -9
  241. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
  242. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +254 -98
  243. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +4 -4
  244. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +186 -42
  245. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +75 -49
  246. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +9 -8
  247. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +4 -1
  248. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
  249. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +17 -3
  250. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +1 -1
  251. package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +1 -1
  252. package/deps/rocksdb/rocksdb/util/autovector_test.cc +4 -4
  253. package/deps/rocksdb/rocksdb/util/bloom_test.cc +14 -8
  254. package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -6
  255. package/deps/rocksdb/rocksdb/util/cleanable.cc +180 -0
  256. package/deps/rocksdb/rocksdb/util/comparator.cc +5 -3
  257. package/deps/rocksdb/rocksdb/util/compression.h +7 -7
  258. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +148 -0
  259. package/deps/rocksdb/rocksdb/util/filelock_test.cc +2 -2
  260. package/deps/rocksdb/rocksdb/util/filter_bench.cc +12 -4
  261. package/deps/rocksdb/rocksdb/util/heap.h +5 -3
  262. package/deps/rocksdb/rocksdb/util/random.cc +1 -5
  263. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +12 -9
  264. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +1 -1
  265. package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1 -1
  266. package/deps/rocksdb/rocksdb/util/ribbon_test.cc +2 -4
  267. package/deps/rocksdb/rocksdb/util/slice.cc +8 -9
  268. package/deps/rocksdb/rocksdb/util/string_util.cc +3 -2
  269. package/deps/rocksdb/rocksdb/util/string_util.h +0 -13
  270. package/deps/rocksdb/rocksdb/util/thread_local.cc +4 -23
  271. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +99 -22
  272. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +7 -0
  273. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +102 -59
  274. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +38 -36
  275. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -2
  276. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +28 -0
  277. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +3 -0
  278. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
  279. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +71 -0
  280. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +71 -0
  281. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +1 -1
  282. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +5 -5
  283. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +3 -3
  284. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -13
  285. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +40 -0
  286. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +10 -8
  287. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +4 -2
  288. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +17 -0
  289. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +7 -7
  290. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +8 -1
  291. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +5 -1
  292. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +21 -15
  293. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +2 -2
  294. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +69 -11
  295. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +22 -9
  296. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +26 -5
  297. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -4
  298. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +19 -16
  299. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +7 -3
  300. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +3 -2
  301. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -2
  302. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +2 -2
  303. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  304. package/deps/rocksdb/rocksdb.gyp +8 -2
  305. package/package.json +1 -1
  306. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  307. package/prebuilds/linux-x64/node.napi.node +0 -0
  308. package/deps/rocksdb/rocksdb/python.mk +0 -9
  309. package/prebuilds/darwin-x64/node.napi.node +0 -0
  310. package/prebuilds/linux-arm64/node.napi.node +0 -0
@@ -552,7 +552,7 @@ struct DBOptions {
552
552
  // compaction. For universal-style compaction, you can usually set it to -1.
553
553
  //
554
554
  // A high value or -1 for this option can cause high memory usage.
555
- // See BlockBasedTableOptions::reserve_table_reader_memory to constrain
555
+ // See BlockBasedTableOptions::cache_usage_options to constrain
556
556
  // memory usage in case of block based table format.
557
557
  //
558
558
  // Default: -1
@@ -767,6 +767,14 @@ struct DBOptions {
767
767
 
768
768
  // Allow the OS to mmap file for reading sst tables.
769
769
  // Not recommended for 32-bit OS.
770
+ // When the option is set to true and compression is disabled, the blocks
771
+ // will not be copied and will be read directly from the mmap-ed memory
772
+ // area, and the block will not be inserted into the block cache. However,
773
+ // checksums will still be checked if ReadOptions.verify_checksums is set
774
+ // to be true. It means a checksum check every time a block is read, more
775
+ // than the setup where the option is set to false and the block cache is
776
+ // used. The common use of the options is to run RocksDB on ramfs, where
777
+ // checksum verification is usually not needed.
770
778
  // Default: false
771
779
  bool allow_mmap_reads = false;
772
780
 
@@ -1142,8 +1150,7 @@ struct DBOptions {
1142
1150
  #endif // ROCKSDB_LITE
1143
1151
 
1144
1152
  // If true, then DB::Open / CreateColumnFamily / DropColumnFamily
1145
- // / SetOptions will fail if options file is not detected or properly
1146
- // persisted.
1153
+ // SetOptions will fail if options file is not properly persisted.
1147
1154
  //
1148
1155
  // DEFAULT: false
1149
1156
  bool fail_if_options_file_error = false;
@@ -1329,6 +1336,19 @@ struct DBOptions {
1329
1336
  //
1330
1337
  // Default: kNonVolatileBlockTier
1331
1338
  CacheTier lowest_used_cache_tier = CacheTier::kNonVolatileBlockTier;
1339
+
1340
+ // If set to false, when compaction or flush sees a SingleDelete followed by
1341
+ // a Delete for the same user key, compaction job will not fail.
1342
+ // Otherwise, compaction job will fail.
1343
+ // This is a temporary option to help existing use cases migrate, and
1344
+ // will be removed in a future release.
1345
+ // Warning: do not set to false unless you are trying to migrate existing
1346
+ // data in which the contract of single delete
1347
+ // (https://github.com/facebook/rocksdb/wiki/Single-Delete) is not enforced,
1348
+ // thus has Delete mixed with SingleDelete for the same user key. Violation
1349
+ // of the contract leads to undefined behaviors with high possibility of data
1350
+ // inconsistency, e.g. deleted old data become visible again, etc.
1351
+ bool enforce_single_del_contracts = true;
1332
1352
  };
1333
1353
 
1334
1354
  // Options to control the behavior of a database (passed to DB::Open)
@@ -1952,6 +1972,11 @@ struct CompactionServiceOptionsOverride {
1952
1972
  // returned to CompactionService primary host, to collect that, the user needs
1953
1973
  // to set it here.
1954
1974
  std::shared_ptr<Statistics> statistics = nullptr;
1975
+
1976
+ // Only compaction generated SST files use this user defined table properties
1977
+ // collector.
1978
+ std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>
1979
+ table_properties_collector_factories;
1955
1980
  };
1956
1981
 
1957
1982
  struct OpenAndCompactOptions {
@@ -22,6 +22,7 @@
22
22
  #include <string>
23
23
  #include <unordered_map>
24
24
 
25
+ #include "rocksdb/cache.h"
25
26
  #include "rocksdb/customizable.h"
26
27
  #include "rocksdb/env.h"
27
28
  #include "rocksdb/options.h"
@@ -104,6 +105,23 @@ struct MetadataCacheOptions {
104
105
  PinningTier unpartitioned_pinning = PinningTier::kFallback;
105
106
  };
106
107
 
108
+ struct CacheEntryRoleOptions {
109
+ enum class Decision {
110
+ kEnabled,
111
+ kDisabled,
112
+ kFallback,
113
+ };
114
+ Decision charged = Decision::kFallback;
115
+ bool operator==(const CacheEntryRoleOptions& other) const {
116
+ return charged == other.charged;
117
+ }
118
+ };
119
+
120
+ struct CacheUsageOptions {
121
+ CacheEntryRoleOptions options;
122
+ std::map<CacheEntryRole, CacheEntryRoleOptions> options_overrides;
123
+ };
124
+
107
125
  // For advanced user only
108
126
  struct BlockBasedTableOptions {
109
127
  static const char* kName() { return "BlockTableOptions"; };
@@ -287,47 +305,80 @@ struct BlockBasedTableOptions {
287
305
  // separately
288
306
  uint64_t metadata_block_size = 4096;
289
307
 
290
- // If true, a dynamically updating charge to block cache, loosely based
291
- // on the actual memory usage of table building, will occur to account
292
- // the memory, if block cache available.
293
- //
294
- // Charged memory usage includes:
295
- // 1. Bloom Filter (format_version >= 5) and Ribbon Filter construction
296
- // 2. More to come...
297
- //
298
- // Note:
299
- // 1. Bloom Filter (format_version >= 5) and Ribbon Filter construction
300
- //
301
- // If additional temporary memory of Ribbon Filter uses up too much memory
302
- // relative to the avaible space left in the block cache
308
+ // `cache_usage_options` allows users to specify the default
309
+ // options (`cache_usage_options.options`) and the overriding
310
+ // options (`cache_usage_options.options_overrides`)
311
+ // for different `CacheEntryRole` under various features related to cache
312
+ // usage.
313
+ //
314
+ // For a certain `CacheEntryRole role` and a certain feature `f` of
315
+ // `CacheEntryRoleOptions`:
316
+ // 1. If `options_overrides` has an entry for `role` and
317
+ // `options_overrides[role].f != kFallback`, we use
318
+ // `options_overrides[role].f`
319
+ // 2. Otherwise, if `options[role].f != kFallback`, we use `options[role].f`
320
+ // 3. Otherwise, we follow the compatible existing behavior for `f` (see
321
+ // each feature's comment for more)
322
+ //
323
+ // `cache_usage_options` currently supports specifying options for the
324
+ // following features:
325
+ //
326
+ // 1. Memory charging to block cache (`CacheEntryRoleOptions::charged`)
327
+ // Memory charging is a feature of accounting memory usage of specific area
328
+ // (represented by `CacheEntryRole`) toward usage in block cache (if
329
+ // available), by updating a dynamical charge to the block cache loosely based
330
+ // on the actual memory usage of that area.
331
+ //
332
+ // (a) CacheEntryRole::kCompressionDictionaryBuildingBuffer
333
+ // (i) If kEnabled:
334
+ // Charge memory usage of the buffered data used as training samples for
335
+ // dictionary compression.
336
+ // If such memory usage exceeds the avaible space left in the block cache
303
337
  // at some point (i.e, causing a cache full under
304
- // LRUCacheOptions::strict_capacity_limit = true), construction will fall back
305
- // to Bloom Filter.
306
- //
307
- // Default: false
308
- bool reserve_table_builder_memory = false;
309
-
310
- // If true, a dynamically updating charge to block cache, loosely based
311
- // on the actual memory usage of table reader, will occur to account
312
- // the memory, if block cache available.
313
- //
314
- // Charged memory usage includes:
315
- // 1. Table properties
316
- // 2. Index block/Filter block/Uncompression dictionary if stored in table
317
- // reader (i.e, BlockBasedTableOptions::cache_index_and_filter_blocks ==
318
- // false)
319
- // 3. Some internal data structures
320
- // 4. More to come...
321
- //
322
- // Note:
323
- // If creation of a table reader uses up too much memory
324
- // relative to the avaible space left in the block cache
325
- // at some point (i.e, causing a cache full under
326
- // LRUCacheOptions::strict_capacity_limit = true), such creation will fail
327
- // with Status::MemoryLimit().
328
- //
329
- // Default: false
330
- bool reserve_table_reader_memory = false;
338
+ // `LRUCacheOptions::strict_capacity_limit` = true), the data will then be
339
+ // unbuffered.
340
+ // (ii) If kDisabled:
341
+ // Does not charge the memory usage mentioned above.
342
+ // (iii) Compatible existing behavior:
343
+ // Same as kEnabled.
344
+ //
345
+ // (b) CacheEntryRole::kFilterConstruction
346
+ // (i) If kEnabled:
347
+ // Charge memory usage of Bloom Filter
348
+ // (format_version >= 5) and Ribbon Filter construction.
349
+ // If additional temporary memory of Ribbon Filter exceeds the avaible
350
+ // space left in the block cache at some point (i.e, causing a cache full
351
+ // under `LRUCacheOptions::strict_capacity_limit` = true),
352
+ // construction will fall back to Bloom Filter.
353
+ // (ii) If kDisabled:
354
+ // Does not charge the memory usage mentioned above.
355
+ // (iii) Compatible existing behavior:
356
+ // Same as kDisabled.
357
+ //
358
+ // (c) CacheEntryRole::kBlockBasedTableReader
359
+ // (i) If kEnabled:
360
+ // Charge memory usage of table properties +
361
+ // index block/filter block/uncompression dictionary (when stored in table
362
+ // reader i.e, BlockBasedTableOptions::cache_index_and_filter_blocks ==
363
+ // false) + some internal data structures during table reader creation.
364
+ // If such a table reader exceeds
365
+ // the avaible space left in the block cache at some point (i.e, causing
366
+ // a cache full under `LRUCacheOptions::strict_capacity_limit` = true),
367
+ // creation will fail with Status::MemoryLimit().
368
+ // (ii) If kDisabled:
369
+ // Does not charge the memory usage mentioned above.
370
+ // (iii) Compatible existing behavior:
371
+ // Same as kDisabled.
372
+ //
373
+ // (d) Other CacheEntryRole
374
+ // Not supported.
375
+ // `Status::kNotSupported` will be returned if
376
+ // `CacheEntryRoleOptions::charged` is set to {`kEnabled`, `kDisabled`}.
377
+ //
378
+ //
379
+ // 2. More to come ...
380
+ //
381
+ CacheUsageOptions cache_usage_options;
331
382
 
332
383
  // Note: currently this option requires kTwoLevelIndexSearch to be set as
333
384
  // well.
@@ -22,8 +22,7 @@
22
22
 
23
23
  #include "rocksdb/rocksdb_namespace.h"
24
24
 
25
- #if !defined(ROCKSDB_LITE) && !defined(NROCKSDB_THREAD_STATUS) && \
26
- defined(ROCKSDB_SUPPORT_THREAD_LOCAL)
25
+ #if !defined(ROCKSDB_LITE) && !defined(NROCKSDB_THREAD_STATUS)
27
26
  #define ROCKSDB_USING_THREAD_STATUS
28
27
  #endif
29
28
 
@@ -9,9 +9,7 @@
9
9
 
10
10
  namespace ROCKSDB_NAMESPACE {
11
11
 
12
- // EXPERIMENTAL: This API is subject to change
13
- //
14
- // Computes a stable, universally unique 192-bit (24 binary char) identifier
12
+ // Computes a stable, universally unique 128-bit (16 binary char) identifier
15
13
  // for an SST file from TableProperties. This is supported for table (SST)
16
14
  // files created with RocksDB 6.24 and later. NotSupported will be returned
17
15
  // for other cases. The first 16 bytes (128 bits) is of sufficient quality
@@ -22,22 +20,33 @@ namespace ROCKSDB_NAMESPACE {
22
20
  // .c_str() on the result will often result in information loss and very
23
21
  // poor uniqueness probability.
24
22
  //
25
- // More detail: the first 128 bits are *guaranteed* unique for SST files
23
+ // More detail: the value is *guaranteed* unique for SST files
26
24
  // generated in the same process (even different DBs, RocksDB >= 6.26),
27
25
  // and first 128 bits are guaranteed not "all zeros" (RocksDB >= 6.26)
28
26
  // so that the "all zeros" value can be used reliably for a null ID.
29
- // Assuming one generates many SST files in the lifetime of each process,
30
- // the probability of collision between processes is "better than
31
- // random": if processes generate n SST files on average, we expect to
32
- // generate roughly 2^64 * sqrt(n) files before first collision in the
33
- // first 128 bits. See https://github.com/pdillinger/unique_id
34
- // Using the full 192 bits, we expect to generate roughly 2^96 * sqrt(n)
35
- // files before first collision.
27
+ // These IDs are more than sufficient for SST uniqueness within each of
28
+ // many DBs or hosts. For an extreme example assuming random IDs, consider
29
+ // 10^9 hosts each with 10^9 live SST files being replaced at 10^6/second.
30
+ // Such a service would need to run for 10 million years to see an ID
31
+ // collision among live SST files on any host.
32
+ //
33
+ // And assuming one generates many SST files in the lifetime of each process,
34
+ // the probability of ID collisions is much "better than random"; see
35
+ // https://github.com/pdillinger/unique_id
36
36
  Status GetUniqueIdFromTableProperties(const TableProperties &props,
37
37
  std::string *out_id);
38
38
 
39
- // EXPERIMENTAL: This API is subject to change
40
- //
39
+ // Computes a 192-bit (24 binary char) stable, universally unique ID
40
+ // with an extra 64 bits of uniqueness compared to the standard ID. It is only
41
+ // appropriate to use this ID instead of the 128-bit ID if ID collisions
42
+ // between files among any hosts in a vast fleet is a problem, such as a shared
43
+ // global namespace for SST file backups. Under this criteria, the extreme
44
+ // example above would expect a global file ID collision every 4 days with
45
+ // 128-bit IDs (using some worst-case assumptions about process lifetime).
46
+ // It's 10^17 years with 192-bit IDs.
47
+ Status GetExtendedUniqueIdFromTableProperties(const TableProperties &props,
48
+ std::string *out_id);
49
+
41
50
  // Converts a binary string (unique id) to hexadecimal, with each 64 bits
42
51
  // separated by '-', e.g. 6474DF650323BDF0-B48E64F3039308CA-17284B32E7F7444B
43
52
  // Also works on unique id prefix.
@@ -2,6 +2,15 @@
2
2
  // This source code is licensed under both the GPLv2 (found in the
3
3
  // COPYING file in the root directory) and Apache 2.0 License
4
4
  // (found in the LICENSE.Apache file in the root directory).
5
+ //
6
+ // The methods in this file are used to instantiate new Customizable
7
+ // instances of objects. These methods are most typically used by
8
+ // the "CreateFromString" method of a customizable class.
9
+ // If not developing a new Type of customizable class, you probably
10
+ // do not need the methods in this file.
11
+ //
12
+ // See https://github.com/facebook/rocksdb/wiki/RocksDB-Configurable-Objects
13
+ // for more information on how to develop and use customizable objects
5
14
 
6
15
  #pragma once
7
16
  #include <functional>
@@ -70,6 +70,7 @@ class LDBCommand {
70
70
  static const std::string ARG_BLOB_GARBAGE_COLLECTION_FORCE_THRESHOLD;
71
71
  static const std::string ARG_BLOB_COMPACTION_READAHEAD_SIZE;
72
72
  static const std::string ARG_DECODE_BLOB_INDEX;
73
+ static const std::string ARG_DUMP_UNCOMPRESSED_BLOBS;
73
74
 
74
75
  struct ParsedParams {
75
76
  std::string cmd;
@@ -287,6 +288,9 @@ class LDBCommand {
287
288
  bool IsValueHex(const std::map<std::string, std::string>& options,
288
289
  const std::vector<std::string>& flags);
289
290
 
291
+ bool IsTryLoadOptions(const std::map<std::string, std::string>& options,
292
+ const std::vector<std::string>& flags);
293
+
290
294
  /**
291
295
  * Converts val to a boolean.
292
296
  * val must be either true or false (case insensitive).
@@ -13,6 +13,7 @@
13
13
  #include <mutex>
14
14
  #include <string>
15
15
  #include <unordered_map>
16
+ #include <unordered_set>
16
17
  #include <vector>
17
18
 
18
19
  #include "rocksdb/status.h"
@@ -217,6 +218,18 @@ class ObjectLibrary {
217
218
  // @param num_types returns how many unique types are registered.
218
219
  size_t GetFactoryCount(size_t* num_types) const;
219
220
 
221
+ // Returns the number of factories registered for this library
222
+ // for the input type.
223
+ // @param num_types returns how many unique types are registered.
224
+ size_t GetFactoryCount(const std::string& type) const;
225
+
226
+ // Returns the registered factory names for the input type
227
+ // names is updated to include the names for the type
228
+ void GetFactoryNames(const std::string& type,
229
+ std::vector<std::string>* names) const;
230
+
231
+ void GetFactoryTypes(std::unordered_set<std::string>* types) const;
232
+
220
233
  void Dump(Logger* logger) const;
221
234
 
222
235
  // Registers the factory with the library for the name.
@@ -497,6 +510,18 @@ class ObjectRegistry {
497
510
  }
498
511
  }
499
512
 
513
+ // Returns the number of factories registered for this library
514
+ // for the input type.
515
+ // @param num_types returns how many unique types are registered.
516
+ size_t GetFactoryCount(const std::string& type) const;
517
+
518
+ // Returns the names of registered factories for the input type.
519
+ // names is updated to include the names for the type
520
+ void GetFactoryNames(const std::string& type,
521
+ std::vector<std::string>* names) const;
522
+
523
+ void GetFactoryTypes(std::unordered_set<std::string>* types) const;
524
+
500
525
  // Dump the contents of the registry to the logger
501
526
  void Dump(Logger* logger) const;
502
527