rocksdb-native 2.2.0 → 2.3.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 (261) hide show
  1. package/binding.c +92 -10
  2. package/index.js +9 -0
  3. package/lib/batch.js +11 -1
  4. package/lib/iterator.js +3 -1
  5. package/lib/snapshot.js +21 -0
  6. package/package.json +1 -1
  7. package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
  8. package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
  9. package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
  10. package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
  11. package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
  12. package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
  13. package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
  14. package/prebuilds/linux-x64/rocksdb-native.node +0 -0
  15. package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
  16. package/prebuilds/win32-x64/rocksdb-native.node +0 -0
  17. package/vendor/librocksdb/include/rocksdb.h +38 -4
  18. package/vendor/librocksdb/src/rocksdb.cc +114 -14
  19. package/vendor/librocksdb/vendor/rocksdb/CMakeLists.txt +21 -4
  20. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.cc +6 -3
  21. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.cc +4 -4
  22. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.h +4 -2
  23. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.cc +20 -0
  24. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.h +83 -0
  25. package/vendor/librocksdb/vendor/rocksdb/db/builder.cc +9 -5
  26. package/vendor/librocksdb/vendor/rocksdb/db/builder.h +1 -1
  27. package/vendor/librocksdb/vendor/rocksdb/db/c.cc +231 -6
  28. package/vendor/librocksdb/vendor/rocksdb/db/c_test.c +202 -2
  29. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.cc +47 -0
  30. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.h +79 -0
  31. package/vendor/librocksdb/vendor/rocksdb/db/column_family.cc +28 -0
  32. package/vendor/librocksdb/vendor/rocksdb/db/column_family.h +17 -0
  33. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.cc +8 -1
  34. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.h +11 -9
  35. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.cc +50 -23
  36. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.h +13 -0
  37. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.cc +22 -25
  38. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.h +2 -0
  39. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.cc +8 -1
  40. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.h +1 -0
  41. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.cc +40 -17
  42. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.h +20 -14
  43. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.cc +11 -6
  44. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +77 -24
  45. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_service_job.cc +2 -0
  46. package/vendor/librocksdb/vendor/rocksdb/db/convenience.cc +3 -0
  47. package/vendor/librocksdb/vendor/rocksdb/db/db_filesnapshot.cc +125 -31
  48. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.cc +457 -231
  49. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.h +172 -73
  50. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +152 -133
  51. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
  52. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_files.cc +58 -52
  53. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.cc +348 -0
  54. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.h +54 -0
  55. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_open.cc +136 -117
  56. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +4 -3
  57. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.h +7 -6
  58. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_write.cc +134 -80
  59. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.cc +11 -0
  60. package/vendor/librocksdb/vendor/rocksdb/db/db_test2.cc +1 -1
  61. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.cc +11 -1
  62. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.h +11 -7
  63. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.cc +19 -4
  64. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.h +3 -2
  65. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.cc +34 -39
  66. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.h +3 -4
  67. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.cc +6 -3
  68. package/vendor/librocksdb/vendor/rocksdb/db/experimental.cc +3 -2
  69. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +76 -18
  70. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.h +11 -0
  71. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.cc +37 -5
  72. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.h +14 -0
  73. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.cc +49 -45
  74. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.cc +60 -1
  75. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.h +20 -1
  76. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.cc +15 -6
  77. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.cc +59 -10
  78. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.h +8 -0
  79. package/vendor/librocksdb/vendor/rocksdb/db/memtable.cc +24 -40
  80. package/vendor/librocksdb/vendor/rocksdb/db/memtable.h +10 -10
  81. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.cc +9 -8
  82. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator_impl.h +296 -0
  83. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.h +8 -10
  84. package/vendor/librocksdb/vendor/rocksdb/db/repair.cc +4 -3
  85. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.cc +30 -0
  86. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.h +9 -0
  87. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.cc +17 -2
  88. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.h +9 -1
  89. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.h +9 -2
  90. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.cc +3 -3
  91. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.h +7 -7
  92. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.cc +0 -1
  93. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.cc +39 -5
  94. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.h +24 -15
  95. package/vendor/librocksdb/vendor/rocksdb/db/version_set.cc +117 -64
  96. package/vendor/librocksdb/vendor/rocksdb/db/version_set.h +27 -10
  97. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.cc +37 -29
  98. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.h +6 -5
  99. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns.cc +2 -3
  100. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.cc +6 -0
  101. package/vendor/librocksdb/vendor/rocksdb/db/write_batch.cc +89 -31
  102. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.cc +53 -5
  103. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.h +36 -4
  104. package/vendor/librocksdb/vendor/rocksdb/env/composite_env_wrapper.h +21 -0
  105. package/vendor/librocksdb/vendor/rocksdb/env/env.cc +15 -0
  106. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.cc +331 -0
  107. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.h +139 -0
  108. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.cc +8 -6
  109. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.h +1 -1
  110. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.cc +130 -27
  111. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.h +61 -8
  112. package/vendor/librocksdb/vendor/rocksdb/file/file_util.cc +25 -4
  113. package/vendor/librocksdb/vendor/rocksdb/file/file_util.h +15 -0
  114. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.cc +1 -0
  115. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.h +9 -4
  116. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.cc +18 -0
  117. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.h +31 -4
  118. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.cc +40 -38
  119. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.h +48 -15
  120. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_options.h +12 -3
  121. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/attribute_groups.h +114 -0
  122. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/c.h +90 -0
  123. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache.h +5 -0
  124. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/comparator.h +27 -0
  125. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db.h +71 -12
  126. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env.h +9 -0
  127. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/experimental.h +5 -0
  128. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_system.h +14 -0
  129. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator.h +9 -71
  130. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator_base.h +90 -0
  131. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/listener.h +21 -0
  132. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/options.h +125 -12
  133. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_context.h +1 -1
  134. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_reader.h +11 -1
  135. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table.h +6 -6
  136. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_properties.h +19 -0
  137. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/transaction_log.h +12 -6
  138. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/types.h +12 -0
  139. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/universal_compaction.h +31 -0
  140. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/user_write_callback.h +29 -0
  141. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +4 -0
  142. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +4 -2
  143. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -1
  144. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +1 -1
  145. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -7
  146. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +4 -4
  147. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +24 -5
  148. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +46 -0
  149. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction.h +42 -17
  150. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +5 -0
  151. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/types_util.h +36 -0
  152. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +71 -3
  153. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/version.h +2 -2
  154. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wide_columns.h +87 -72
  155. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch_base.h +1 -1
  156. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator.cc +1 -0
  157. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.cc +13 -2
  158. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.h +6 -2
  159. package/vendor/librocksdb/vendor/rocksdb/options/db_options.cc +27 -1
  160. package/vendor/librocksdb/vendor/rocksdb/options/db_options.h +10 -3
  161. package/vendor/librocksdb/vendor/rocksdb/options/options.cc +3 -0
  162. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.cc +1 -0
  163. package/vendor/librocksdb/vendor/rocksdb/port/jemalloc_helper.h +2 -2
  164. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.cc +1 -0
  165. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.cc +3 -2
  166. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +1 -2
  167. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.cc +47 -31
  168. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.cc +15 -0
  169. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +37 -18
  170. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.h +10 -3
  171. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.cc +102 -41
  172. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.h +15 -7
  173. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -3
  174. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -6
  175. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.h +31 -0
  176. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.cc +6 -0
  177. package/vendor/librocksdb/vendor/rocksdb/table/block_based/cachable_entry.h +10 -5
  178. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block.h +34 -28
  179. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +17 -11
  180. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.h +5 -2
  181. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy.cc +12 -3
  182. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.cc +37 -30
  183. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.h +11 -13
  184. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.cc +1 -2
  185. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.cc +62 -53
  186. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.h +60 -38
  187. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.cc +14 -9
  188. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.h +4 -1
  189. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +135 -94
  190. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.h +52 -46
  191. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +51 -13
  192. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.h +2 -0
  193. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +3 -11
  194. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +2 -3
  195. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.cc +8 -10
  196. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.h +2 -1
  197. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.cc +9 -10
  198. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.h +3 -2
  199. package/vendor/librocksdb/vendor/rocksdb/table/format.cc +1 -2
  200. package/vendor/librocksdb/vendor/rocksdb/table/iterator.cc +4 -0
  201. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.cc +18 -13
  202. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.h +5 -3
  203. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.cc +18 -4
  204. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.h +4 -0
  205. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.cc +2 -2
  206. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.cc +6 -6
  207. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_reader.cc +24 -2
  208. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer_collectors.h +3 -1
  209. package/vendor/librocksdb/vendor/rocksdb/table/table_builder.h +8 -7
  210. package/vendor/librocksdb/vendor/rocksdb/table/table_iterator.h +69 -0
  211. package/vendor/librocksdb/vendor/rocksdb/table/table_reader.h +9 -0
  212. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.cc +25 -0
  213. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.h +12 -0
  214. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench_tool.cc +32 -0
  215. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd.cc +618 -124
  216. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd_impl.h +19 -1
  217. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_tool.cc +9 -0
  218. package/vendor/librocksdb/vendor/rocksdb/util/aligned_storage.h +24 -0
  219. package/vendor/librocksdb/vendor/rocksdb/util/autovector.h +4 -0
  220. package/vendor/librocksdb/vendor/rocksdb/util/comparator.cc +12 -0
  221. package/vendor/librocksdb/vendor/rocksdb/util/filter_bench.cc +1 -1
  222. package/vendor/librocksdb/vendor/rocksdb/util/random.cc +2 -1
  223. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.cc +3 -4
  224. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.h +1 -1
  225. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.cc +33 -0
  226. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.h +7 -0
  227. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.h +5 -0
  228. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.h +36 -29
  229. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +3 -0
  230. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +20 -0
  231. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.cc +29 -9
  232. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.h +14 -3
  233. package/vendor/librocksdb/vendor/rocksdb/utilities/debug.cc +16 -4
  234. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.cc +677 -248
  235. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.h +325 -158
  236. package/vendor/librocksdb/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -8
  237. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +144 -0
  238. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +45 -0
  239. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +12 -0
  240. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
  241. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +3 -3
  242. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +116 -20
  243. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +33 -1
  244. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +78 -13
  245. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +33 -1
  246. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.cc +106 -7
  247. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.h +68 -10
  248. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_test.h +7 -3
  249. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.cc +8 -5
  250. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.h +7 -4
  251. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +18 -12
  252. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +4 -4
  253. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -0
  254. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +11 -9
  255. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +2 -1
  256. package/vendor/librocksdb/vendor/rocksdb/utilities/types_util.cc +88 -0
  257. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +313 -14
  258. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +7 -0
  259. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +1 -1
  260. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator.cc +0 -102
  261. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator.h +0 -159
@@ -99,7 +99,7 @@ struct TableReaderOptions {
99
99
  bool user_defined_timestamps_persisted;
100
100
  };
101
101
 
102
- struct TableBuilderOptions {
102
+ struct TableBuilderOptions : public TablePropertiesCollectorFactory::Context {
103
103
  TableBuilderOptions(
104
104
  const ImmutableOptions& _ioptions, const MutableCFOptions& _moptions,
105
105
  const ReadOptions& _read_options, const WriteOptions& _write_options,
@@ -113,8 +113,13 @@ struct TableBuilderOptions {
113
113
  const int64_t _oldest_key_time = 0,
114
114
  const uint64_t _file_creation_time = 0, const std::string& _db_id = "",
115
115
  const std::string& _db_session_id = "",
116
- const uint64_t _target_file_size = 0, const uint64_t _cur_file_num = 0)
117
- : ioptions(_ioptions),
116
+ const uint64_t _target_file_size = 0, const uint64_t _cur_file_num = 0,
117
+ const SequenceNumber _last_level_inclusive_max_seqno_threshold =
118
+ kMaxSequenceNumber)
119
+ : TablePropertiesCollectorFactory::Context(
120
+ _column_family_id, _level, _ioptions.num_levels,
121
+ _last_level_inclusive_max_seqno_threshold),
122
+ ioptions(_ioptions),
118
123
  moptions(_moptions),
119
124
  read_options(_read_options),
120
125
  write_options(_write_options),
@@ -122,14 +127,12 @@ struct TableBuilderOptions {
122
127
  internal_tbl_prop_coll_factories(_internal_tbl_prop_coll_factories),
123
128
  compression_type(_compression_type),
124
129
  compression_opts(_compression_opts),
125
- column_family_id(_column_family_id),
126
130
  column_family_name(_column_family_name),
127
131
  oldest_key_time(_oldest_key_time),
128
132
  target_file_size(_target_file_size),
129
133
  file_creation_time(_file_creation_time),
130
134
  db_id(_db_id),
131
135
  db_session_id(_db_session_id),
132
- level_at_creation(_level),
133
136
  is_bottommost(_is_bottommost),
134
137
  reason(_reason),
135
138
  cur_file_num(_cur_file_num) {}
@@ -142,7 +145,6 @@ struct TableBuilderOptions {
142
145
  const InternalTblPropCollFactories* internal_tbl_prop_coll_factories;
143
146
  const CompressionType compression_type;
144
147
  const CompressionOptions& compression_opts;
145
- const uint32_t column_family_id;
146
148
  const std::string& column_family_name;
147
149
  const int64_t oldest_key_time;
148
150
  const uint64_t target_file_size;
@@ -150,7 +152,6 @@ struct TableBuilderOptions {
150
152
  const std::string db_id;
151
153
  const std::string db_session_id;
152
154
  // BEGIN for FilterBuildingContext
153
- const int level_at_creation;
154
155
  const bool is_bottommost;
155
156
  const TableFileCreationReason reason;
156
157
  // END for FilterBuildingContext
@@ -0,0 +1,69 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ //
3
+ // This source code is licensed under both the GPLv2 (found in the
4
+ // COPYING file in the root directory) and Apache 2.0 License
5
+ // (found in the LICENSE.Apache file in the root directory).
6
+
7
+ #pragma once
8
+
9
+ #include "rocksdb/iterator.h"
10
+ #include "table/internal_iterator.h"
11
+
12
+ namespace ROCKSDB_NAMESPACE {
13
+ // An iterator wrapper class used to wrap an `InternalIterator` created by API
14
+ // `TableReader::NewIterator`. The `InternalIterator` should be allocated with
15
+ // the default allocator, not on an arena.
16
+ // NOTE: Callers should ensure the wrapped `InternalIterator*` is a valid
17
+ // pointer before constructing a `TableIterator` with it.
18
+ class TableIterator : public Iterator {
19
+ void reset(InternalIterator* iter) noexcept {
20
+ if (iter_ != nullptr) {
21
+ delete iter_;
22
+ }
23
+ iter_ = iter;
24
+ }
25
+
26
+ public:
27
+ explicit TableIterator(InternalIterator* iter) : iter_(iter) {}
28
+
29
+ TableIterator(const TableIterator&) = delete;
30
+ TableIterator& operator=(const TableIterator&) = delete;
31
+
32
+ TableIterator(TableIterator&& o) noexcept {
33
+ iter_ = o.iter_;
34
+ o.iter_ = nullptr;
35
+ }
36
+
37
+ TableIterator& operator=(TableIterator&& o) noexcept {
38
+ reset(o.iter_);
39
+ o.iter_ = nullptr;
40
+ return *this;
41
+ }
42
+
43
+ InternalIterator* operator->() { return iter_; }
44
+ InternalIterator* get() { return iter_; }
45
+
46
+ ~TableIterator() override { reset(nullptr); }
47
+
48
+ bool Valid() const override { return iter_->Valid(); }
49
+ void SeekToFirst() override { return iter_->SeekToFirst(); }
50
+ void SeekToLast() override { return iter_->SeekToLast(); }
51
+ void Seek(const Slice& target) override { return iter_->Seek(target); }
52
+ void SeekForPrev(const Slice& target) override {
53
+ return iter_->SeekForPrev(target);
54
+ }
55
+ void Next() override { return iter_->Next(); }
56
+ void Prev() override { return iter_->Prev(); }
57
+ Slice key() const override { return iter_->key(); }
58
+ Slice value() const override { return iter_->value(); }
59
+ Status status() const override { return iter_->status(); }
60
+ Status GetProperty(std::string /*prop_name*/,
61
+ std::string* /*prop*/) override {
62
+ assert(false);
63
+ return Status::NotSupported("TableIterator does not support GetProperty.");
64
+ }
65
+
66
+ private:
67
+ InternalIterator* iter_;
68
+ };
69
+ } // namespace ROCKSDB_NAMESPACE
@@ -188,6 +188,15 @@ class TableReader {
188
188
  TableReaderCaller /*caller*/) {
189
189
  return Status::NotSupported("VerifyChecksum() not supported");
190
190
  }
191
+
192
+ // Tell the reader that the file should now be obsolete, e.g. as a hint
193
+ // to delete relevant cache entries on destruction. (It might not be safe
194
+ // to "unpin" cache entries until destruction time.) NOTE: must be thread
195
+ // safe because multiple table cache references might all mark this file as
196
+ // obsolete when they are released (the last of which destroys this reader).
197
+ virtual void MarkObsolete(uint32_t /*uncache_aggressiveness*/) {
198
+ // no-op as default
199
+ }
191
200
  };
192
201
 
193
202
  } // namespace ROCKSDB_NAMESPACE
@@ -46,6 +46,7 @@ const std::set<uint32_t> kFooterFormatVersionsToTest{
46
46
  kDefaultFormatVersion,
47
47
  kLatestFormatVersion,
48
48
  };
49
+ const ReadOptionsNoIo kReadOptionsNoIo;
49
50
 
50
51
  std::string RandomKey(Random* rnd, int len, RandomKeyType type) {
51
52
  // Make sure to generate a wide variety of characters so we
@@ -565,6 +566,30 @@ void DeleteDir(Env* env, const std::string& dirname) {
565
566
  TryDeleteDir(env, dirname).PermitUncheckedError();
566
567
  }
567
568
 
569
+ FileType GetFileType(const std::string& path) {
570
+ FileType type = kTempFile;
571
+ std::size_t found = path.find_last_of('/');
572
+ if (found == std::string::npos) {
573
+ found = 0;
574
+ }
575
+ std::string file_name = path.substr(found);
576
+ uint64_t number = 0;
577
+ ParseFileName(file_name, &number, &type);
578
+ return type;
579
+ }
580
+
581
+ uint64_t GetFileNumber(const std::string& path) {
582
+ FileType type = kTempFile;
583
+ std::size_t found = path.find_last_of('/');
584
+ if (found == std::string::npos) {
585
+ found = 0;
586
+ }
587
+ std::string file_name = path.substr(found);
588
+ uint64_t number = 0;
589
+ ParseFileName(file_name, &number, &type);
590
+ return number;
591
+ }
592
+
568
593
  Status CreateEnvFromSystem(const ConfigOptions& config_options, Env** result,
569
594
  std::shared_ptr<Env>* guard) {
570
595
  const char* env_uri = getenv("TEST_ENV_URI");
@@ -882,6 +882,12 @@ Status TryDeleteDir(Env* env, const std::string& dirname);
882
882
  // Delete a directory if it exists
883
883
  void DeleteDir(Env* env, const std::string& dirname);
884
884
 
885
+ // Find the FileType from the file path
886
+ FileType GetFileType(const std::string& path);
887
+
888
+ // Get the file number given the file path
889
+ uint64_t GetFileNumber(const std::string& path);
890
+
885
891
  // Creates an Env from the system environment by looking at the system
886
892
  // environment variables.
887
893
  Status CreateEnvFromSystem(const ConfigOptions& options, Env** result,
@@ -892,5 +898,11 @@ int RegisterTestObjects(ObjectLibrary& library, const std::string& /*arg*/);
892
898
 
893
899
  // Register the testutil classes with the default ObjectRegistry/Library
894
900
  void RegisterTestLibrary(const std::string& arg = "");
901
+
902
+ struct ReadOptionsNoIo : public ReadOptions {
903
+ ReadOptionsNoIo() { read_tier = ReadTier::kBlockCacheTier; }
904
+ };
905
+ extern const ReadOptionsNoIo kReadOptionsNoIo;
906
+
895
907
  } // namespace test
896
908
  } // namespace ROCKSDB_NAMESPACE
@@ -544,12 +544,20 @@ DEFINE_int32(universal_compression_size_percent, -1,
544
544
  "The percentage of the database to compress for universal "
545
545
  "compaction. -1 means compress everything.");
546
546
 
547
+ DEFINE_int32(universal_max_read_amp, -1,
548
+ "The limit on the number of sorted runs");
549
+
547
550
  DEFINE_bool(universal_allow_trivial_move, false,
548
551
  "Allow trivial move in universal compaction.");
549
552
 
550
553
  DEFINE_bool(universal_incremental, false,
551
554
  "Enable incremental compactions in universal compaction.");
552
555
 
556
+ DEFINE_int32(
557
+ universal_stop_style,
558
+ (int32_t)ROCKSDB_NAMESPACE::CompactionOptionsUniversal().stop_style,
559
+ "Universal compaction stop style.");
560
+
553
561
  DEFINE_int64(cache_size, 32 << 20, // 32MB
554
562
  "Number of bytes to use as a cache of uncompressed data");
555
563
 
@@ -704,6 +712,12 @@ DEFINE_int64(prepopulate_block_cache, 0,
704
712
  "Pre-populate hot/warm blocks in block cache. 0 to disable and 1 "
705
713
  "to insert during flush");
706
714
 
715
+ DEFINE_uint32(uncache_aggressiveness,
716
+ ROCKSDB_NAMESPACE::ColumnFamilyOptions().uncache_aggressiveness,
717
+ "Aggressiveness of erasing cache entries that are likely "
718
+ "obsolete. 0 = disabled, 1 = minimum, 100 = moderate, 10000 = "
719
+ "normal max");
720
+
707
721
  DEFINE_bool(use_data_block_hash_index, false,
708
722
  "if use kDataBlockBinaryAndHash "
709
723
  "instead of kDataBlockBinarySearch. "
@@ -1135,6 +1149,11 @@ DEFINE_int32(secondary_update_interval, 5,
1135
1149
  "Secondary instance attempts to catch up with the primary every "
1136
1150
  "secondary_update_interval seconds.");
1137
1151
 
1152
+ DEFINE_bool(open_as_follower, false,
1153
+ "Open a RocksDB DB as a follower. The leader instance can be "
1154
+ "running in another db_bench process.");
1155
+
1156
+ DEFINE_string(leader_path, "", "Path to the directory of the leader DB");
1138
1157
 
1139
1158
  DEFINE_bool(report_bg_io_stats, false,
1140
1159
  "Measure times spents on I/Os while in compactions. ");
@@ -1294,6 +1313,8 @@ static enum ROCKSDB_NAMESPACE::TieredAdmissionPolicy StringToAdmissionPolicy(
1294
1313
  return ROCKSDB_NAMESPACE::kAdmPolicyAllowCacheHits;
1295
1314
  } else if (!strcasecmp(policy, "three_queue")) {
1296
1315
  return ROCKSDB_NAMESPACE::kAdmPolicyThreeQueue;
1316
+ } else if (!strcasecmp(policy, "allow_all")) {
1317
+ return ROCKSDB_NAMESPACE::kAdmPolicyAllowAll;
1297
1318
  } else {
1298
1319
  fprintf(stderr, "Cannot parse admission policy %s\n", policy);
1299
1320
  exit(1);
@@ -4278,6 +4299,7 @@ class Benchmark {
4278
4299
  FLAGS_level_compaction_dynamic_level_bytes;
4279
4300
  options.max_bytes_for_level_multiplier =
4280
4301
  FLAGS_max_bytes_for_level_multiplier;
4302
+ options.uncache_aggressiveness = FLAGS_uncache_aggressiveness;
4281
4303
  Status s =
4282
4304
  CreateMemTableRepFactory(config_options, &options.memtable_factory);
4283
4305
  if (!s.ok()) {
@@ -4657,10 +4679,14 @@ class Benchmark {
4657
4679
  options.compaction_options_universal.compression_size_percent =
4658
4680
  FLAGS_universal_compression_size_percent;
4659
4681
  }
4682
+ options.compaction_options_universal.max_read_amp =
4683
+ FLAGS_universal_max_read_amp;
4660
4684
  options.compaction_options_universal.allow_trivial_move =
4661
4685
  FLAGS_universal_allow_trivial_move;
4662
4686
  options.compaction_options_universal.incremental =
4663
4687
  FLAGS_universal_incremental;
4688
+ options.compaction_options_universal.stop_style =
4689
+ static_cast<CompactionStopStyle>(FLAGS_universal_stop_style);
4664
4690
  if (FLAGS_thread_status_per_interval > 0) {
4665
4691
  options.enable_thread_tracking = true;
4666
4692
  }
@@ -4979,6 +5005,12 @@ class Benchmark {
4979
5005
  },
4980
5006
  FLAGS_secondary_update_interval, db));
4981
5007
  }
5008
+ } else if (FLAGS_open_as_follower) {
5009
+ std::unique_ptr<DB> dbptr;
5010
+ s = DB::OpenAsFollower(options, db_name, FLAGS_leader_path, &dbptr);
5011
+ if (s.ok()) {
5012
+ db->db = dbptr.release();
5013
+ }
4982
5014
  } else {
4983
5015
  s = DB::Open(options, db_name, &db->db);
4984
5016
  }