rocksdb-native 2.2.0 → 2.3.1

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
package/binding.c CHANGED
@@ -84,6 +84,10 @@ typedef struct {
84
84
  js_ref_t *on_status;
85
85
  } rocksdb_native_write_batch_t;
86
86
 
87
+ typedef struct {
88
+ rocksdb_snapshot_t handle;
89
+ } rocksdb_native_snapshot_t;
90
+
87
91
  static void
88
92
  rocksdb_native__on_free (js_env_t *env, void *data, void *finalize_hint) {
89
93
  free(data);
@@ -405,13 +409,13 @@ static js_value_t *
405
409
  rocksdb_native_iterator_open (js_env_t *env, js_callback_info_t *info) {
406
410
  int err;
407
411
 
408
- size_t argc = 7;
409
- js_value_t *argv[7];
412
+ size_t argc = 8;
413
+ js_value_t *argv[8];
410
414
 
411
415
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
412
416
  assert(err == 0);
413
417
 
414
- assert(argc == 7);
418
+ assert(argc == 8);
415
419
 
416
420
  rocksdb_native_t *db;
417
421
  err = js_get_arraybuffer_info(env, argv[0], (void **) &db, NULL);
@@ -439,7 +443,20 @@ rocksdb_native_iterator_open (js_env_t *env, js_callback_info_t *info) {
439
443
  err = js_get_value_bool(env, argv[6], &reverse);
440
444
  assert(err == 0);
441
445
 
442
- err = rocksdb_iterator_open(&db->handle, &iterator->handle, range, reverse, rocksdb_native__on_iterator_open);
446
+ rocksdb_read_options_t options = {
447
+ .version = 0,
448
+ };
449
+
450
+ bool has_snapshot;
451
+ err = js_is_arraybuffer(env, argv[7], &has_snapshot);
452
+ assert(err == 0);
453
+
454
+ if (has_snapshot) {
455
+ err = js_get_arraybuffer_info(env, argv[7], (void **) &options.snapshot, NULL);
456
+ assert(err == 0);
457
+ }
458
+
459
+ err = rocksdb_iterator_open(&db->handle, &iterator->handle, range, reverse, &options, rocksdb_native__on_iterator_open);
443
460
  assert(err == 0);
444
461
 
445
462
  return NULL;
@@ -729,13 +746,13 @@ static js_value_t *
729
746
  rocksdb_native_read (js_env_t *env, js_callback_info_t *info) {
730
747
  int err;
731
748
 
732
- size_t argc = 4;
733
- js_value_t *argv[4];
749
+ size_t argc = 5;
750
+ js_value_t *argv[5];
734
751
 
735
752
  err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
736
753
  assert(err == 0);
737
754
 
738
- assert(argc == 4);
755
+ assert(argc == 5);
739
756
 
740
757
  rocksdb_native_t *db;
741
758
  err = js_get_arraybuffer_info(env, argv[0], (void **) &db, NULL);
@@ -749,7 +766,7 @@ rocksdb_native_read (js_env_t *env, js_callback_info_t *info) {
749
766
  err = js_get_array_length(env, argv[2], &len);
750
767
  assert(err == 0);
751
768
 
752
- err = js_create_reference(env, argv[3], 1, &batch->on_status);
769
+ err = js_create_reference(env, argv[4], 1, &batch->on_status);
753
770
  assert(err == 0);
754
771
 
755
772
  for (uint32_t i = 0; i < len; i++) {
@@ -781,7 +798,20 @@ rocksdb_native_read (js_env_t *env, js_callback_info_t *info) {
781
798
  }
782
799
  }
783
800
 
784
- err = rocksdb_read(&db->handle, &batch->handle, batch->reads, batch->errors, len, rocksdb_native__on_read);
801
+ rocksdb_read_options_t options = {
802
+ .version = 0,
803
+ };
804
+
805
+ bool has_snapshot;
806
+ err = js_is_arraybuffer(env, argv[3], &has_snapshot);
807
+ assert(err == 0);
808
+
809
+ if (has_snapshot) {
810
+ err = js_get_arraybuffer_info(env, argv[3], (void **) &options.snapshot, NULL);
811
+ assert(err == 0);
812
+ }
813
+
814
+ err = rocksdb_read(&db->handle, &batch->handle, batch->reads, batch->errors, len, &options, rocksdb_native__on_read);
785
815
  assert(err == 0);
786
816
 
787
817
  return NULL;
@@ -985,12 +1015,61 @@ rocksdb_native_write (js_env_t *env, js_callback_info_t *info) {
985
1015
  }
986
1016
  }
987
1017
 
988
- err = rocksdb_write(&db->handle, &batch->handle, batch->writes, len, rocksdb_native__on_write);
1018
+ err = rocksdb_write(&db->handle, &batch->handle, batch->writes, len, NULL, rocksdb_native__on_write);
989
1019
  assert(err == 0);
990
1020
 
991
1021
  return NULL;
992
1022
  }
993
1023
 
1024
+ static js_value_t *
1025
+ rocksdb_native_snapshot_create (js_env_t *env, js_callback_info_t *info) {
1026
+ int err;
1027
+
1028
+ size_t argc = 1;
1029
+ js_value_t *argv[1];
1030
+
1031
+ err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1032
+ assert(err == 0);
1033
+
1034
+ assert(argc == 1);
1035
+
1036
+ rocksdb_native_t *db;
1037
+ err = js_get_arraybuffer_info(env, argv[0], (void **) &db, NULL);
1038
+ assert(err == 0);
1039
+
1040
+ js_value_t *handle;
1041
+
1042
+ rocksdb_native_snapshot_t *snapshot;
1043
+ err = js_create_arraybuffer(env, sizeof(rocksdb_native_snapshot_t), (void **) &snapshot, &handle);
1044
+ assert(err == 0);
1045
+
1046
+ err = rocksdb_snapshot_create(&db->handle, &snapshot->handle);
1047
+ assert(err == 0);
1048
+
1049
+ return handle;
1050
+ }
1051
+
1052
+ static js_value_t *
1053
+ rocksdb_native_snapshot_destroy (js_env_t *env, js_callback_info_t *info) {
1054
+ int err;
1055
+
1056
+ size_t argc = 1;
1057
+ js_value_t *argv[1];
1058
+
1059
+ err = js_get_callback_info(env, info, &argc, argv, NULL, NULL);
1060
+ assert(err == 0);
1061
+
1062
+ assert(argc == 1);
1063
+
1064
+ rocksdb_native_snapshot_t *snapshot;
1065
+ err = js_get_arraybuffer_info(env, argv[0], (void **) &snapshot, NULL);
1066
+ assert(err == 0);
1067
+
1068
+ rocksdb_snapshot_destroy(&snapshot->handle);
1069
+
1070
+ return NULL;
1071
+ }
1072
+
994
1073
  static js_value_t *
995
1074
  rocksdb_native_exports (js_env_t *env, js_value_t *exports) {
996
1075
  int err;
@@ -1021,6 +1100,9 @@ rocksdb_native_exports (js_env_t *env, js_value_t *exports) {
1021
1100
  V("writeInit", rocksdb_native_write_init)
1022
1101
  V("writeBuffer", rocksdb_native_write_buffer)
1023
1102
  V("write", rocksdb_native_write)
1103
+
1104
+ V("snapshotCreate", rocksdb_native_snapshot_create)
1105
+ V("snapshotDestroy", rocksdb_native_snapshot_destroy)
1024
1106
  #undef V
1025
1107
 
1026
1108
  #define V(name, n) \
package/index.js CHANGED
@@ -3,6 +3,7 @@ const ReadyResource = require('ready-resource')
3
3
  const binding = require('./binding')
4
4
  const { ReadBatch, WriteBatch } = require('./lib/batch')
5
5
  const Iterator = require('./lib/iterator')
6
+ const Snapshot = require('./lib/snapshot')
6
7
 
7
8
  const RocksDB = module.exports = class RocksDB extends ReadyResource {
8
9
  constructor (path, {
@@ -39,6 +40,8 @@ const RocksDB = module.exports = class RocksDB extends ReadyResource {
39
40
  this.tableCacheIndexAndFilterBlocks = tableCacheIndexAndFilterBlocks
40
41
  this.tableFormatVersion = tableFormatVersion
41
42
 
43
+ this._snapshots = new Set()
44
+
42
45
  this._handle = binding.init()
43
46
  }
44
47
 
@@ -82,6 +85,8 @@ const RocksDB = module.exports = class RocksDB extends ReadyResource {
82
85
  }
83
86
 
84
87
  async _close () {
88
+ for (const snapshot of this._snapshots) snapshot.destroy()
89
+
85
90
  const req = { resolve: null, reject: null, handle: null }
86
91
 
87
92
  const promise = new Promise((resolve, reject) => {
@@ -101,6 +106,10 @@ const RocksDB = module.exports = class RocksDB extends ReadyResource {
101
106
  }
102
107
  }
103
108
 
109
+ snapshot (opts) {
110
+ return new Snapshot(this, opts)
111
+ }
112
+
104
113
  iterator (opts) {
105
114
  return new Iterator(this, opts)
106
115
  }
package/lib/batch.js CHANGED
@@ -107,6 +107,16 @@ class RocksDBBatch {
107
107
  }
108
108
 
109
109
  exports.ReadBatch = class RocksDBReadBatch extends RocksDBBatch {
110
+ constructor (db, opts = {}) {
111
+ const {
112
+ snapshot = null
113
+ } = opts
114
+
115
+ super(db, opts)
116
+
117
+ this._snapshot = snapshot
118
+ }
119
+
110
120
  async _init () {
111
121
  this._handle = binding.readInit(this)
112
122
  this._buffer = binding.readBuffer(this._handle, this._capacity)
@@ -121,7 +131,7 @@ exports.ReadBatch = class RocksDBReadBatch extends RocksDBBatch {
121
131
  async _flush () {
122
132
  await super._flush()
123
133
 
124
- binding.read(this._db._handle, this._handle, this._operations, this._onread)
134
+ binding.read(this._db._handle, this._handle, this._operations, this._snapshot ? this._snapshot._handle : null, this._onread)
125
135
  }
126
136
 
127
137
  _onread (errs, values) {
package/lib/iterator.js CHANGED
@@ -15,6 +15,7 @@ module.exports = class RocksDBIterator extends Readable {
15
15
  reverse = false,
16
16
  limit = Infinity,
17
17
  capacity = 8,
18
+ snapshot = null,
18
19
  encoding = null,
19
20
  keyEncoding = encoding,
20
21
  valueEncoding = encoding
@@ -35,6 +36,7 @@ module.exports = class RocksDBIterator extends Readable {
35
36
  this._reverse = reverse
36
37
  this._limit = limit
37
38
  this._capacity = capacity
39
+ this._snapshot = snapshot
38
40
 
39
41
  this._pendingOpen = null
40
42
  this._pendingRead = null
@@ -100,7 +102,7 @@ module.exports = class RocksDBIterator extends Readable {
100
102
 
101
103
  this._pendingOpen = cb
102
104
 
103
- binding.iteratorOpen(this._db._handle, this._handle, this._gt, this._gte, this._lt, this._lte, this._reverse)
105
+ binding.iteratorOpen(this._db._handle, this._handle, this._gt, this._gte, this._lt, this._lte, this._reverse, this._snapshot ? this._snapshot._handle : null)
104
106
  }
105
107
 
106
108
  _read (cb) {
@@ -0,0 +1,21 @@
1
+ const binding = require('../binding')
2
+
3
+ module.exports = class RocksDBSnapshot {
4
+ constructor (db) {
5
+ this._db = db
6
+
7
+ this._handle = binding.snapshotCreate(db._handle)
8
+
9
+ this._db._snapshots.add(this)
10
+ }
11
+
12
+ destroy () {
13
+ if (this._handle === null) return
14
+
15
+ binding.snapshotDestroy(this._handle)
16
+
17
+ this._handle = null
18
+
19
+ this._db._snapshots.delete(this)
20
+ }
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rocksdb-native",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "description": "librocksdb bindings for JavaScript",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -10,6 +10,8 @@ extern "C" {
10
10
  #include <uv.h>
11
11
 
12
12
  typedef struct rocksdb_options_s rocksdb_options_t;
13
+ typedef struct rocksdb_read_options_s rocksdb_read_options_t;
14
+ typedef struct rocksdb_write_options_s rocksdb_write_options_t;
13
15
  typedef struct rocksdb_open_s rocksdb_open_t;
14
16
  typedef struct rocksdb_close_s rocksdb_close_t;
15
17
  typedef struct rocksdb_slice_s rocksdb_slice_t;
@@ -19,6 +21,7 @@ typedef struct rocksdb_read_s rocksdb_read_t;
19
21
  typedef struct rocksdb_read_batch_s rocksdb_read_batch_t;
20
22
  typedef struct rocksdb_write_s rocksdb_write_t;
21
23
  typedef struct rocksdb_write_batch_s rocksdb_write_batch_t;
24
+ typedef struct rocksdb_snapshot_s rocksdb_snapshot_t;
22
25
  typedef struct rocksdb_s rocksdb_t;
23
26
 
24
27
  typedef void (*rocksdb_open_cb)(rocksdb_open_t *req, int status);
@@ -75,6 +78,19 @@ struct rocksdb_options_s {
75
78
  uint32_t table_format_version;
76
79
  };
77
80
 
81
+ /** @version 0 */
82
+ struct rocksdb_read_options_s {
83
+ int version;
84
+
85
+ /** @since 0 */
86
+ rocksdb_snapshot_t *snapshot;
87
+ };
88
+
89
+ /** @version 0 */
90
+ struct rocksdb_write_options_s {
91
+ int version;
92
+ };
93
+
78
94
  struct rocksdb_open_s {
79
95
  uv_work_t worker;
80
96
 
@@ -121,6 +137,8 @@ struct rocksdb_iterator_s {
121
137
 
122
138
  rocksdb_t *db;
123
139
 
140
+ rocksdb_read_options_t options;
141
+
124
142
  void *handle; // Opaque iterator pointer
125
143
 
126
144
  rocksdb_range_t range;
@@ -160,6 +178,8 @@ struct rocksdb_read_batch_s {
160
178
 
161
179
  rocksdb_t *db;
162
180
 
181
+ rocksdb_read_options_t options;
182
+
163
183
  size_t len;
164
184
 
165
185
  rocksdb_read_t *reads;
@@ -200,6 +220,8 @@ struct rocksdb_write_batch_s {
200
220
 
201
221
  rocksdb_t *db;
202
222
 
223
+ rocksdb_write_options_t options;
224
+
203
225
  size_t len;
204
226
 
205
227
  rocksdb_write_t *writes;
@@ -211,6 +233,12 @@ struct rocksdb_write_batch_s {
211
233
  void *data;
212
234
  };
213
235
 
236
+ struct rocksdb_snapshot_s {
237
+ rocksdb_t *db;
238
+
239
+ const void *handle; // Opaque snapshot pointer
240
+ };
241
+
214
242
  struct rocksdb_s {
215
243
  uv_loop_t *loop;
216
244
 
@@ -236,22 +264,28 @@ rocksdb_slice_t
236
264
  rocksdb_slice_empty (void);
237
265
 
238
266
  int
239
- rocksdb_iterator_open (rocksdb_t *db, rocksdb_iterator_t *iterator, rocksdb_range_t range, bool reverse, rocksdb_iterator_cb cb);
267
+ rocksdb_iterator_open (rocksdb_t *db, rocksdb_iterator_t *iterator, rocksdb_range_t range, bool reverse, const rocksdb_read_options_t *options, rocksdb_iterator_cb cb);
240
268
 
241
269
  int
242
270
  rocksdb_iterator_close (rocksdb_iterator_t *iterator, rocksdb_iterator_cb cb);
243
271
 
244
272
  int
245
- rocksdb_iterator_refresh (rocksdb_iterator_t *iterator, rocksdb_range_t range, bool reverse, rocksdb_iterator_cb cb);
273
+ rocksdb_iterator_refresh (rocksdb_iterator_t *iterator, rocksdb_range_t range, bool reverse, const rocksdb_read_options_t *options, rocksdb_iterator_cb cb);
246
274
 
247
275
  int
248
276
  rocksdb_iterator_read (rocksdb_iterator_t *iterator, rocksdb_slice_t *keys, rocksdb_slice_t *values, size_t capacity, rocksdb_iterator_cb cb);
249
277
 
250
278
  int
251
- rocksdb_read (rocksdb_t *db, rocksdb_read_batch_t *batch, rocksdb_read_t *reads, char **errors, size_t len, rocksdb_read_batch_cb cb);
279
+ rocksdb_read (rocksdb_t *db, rocksdb_read_batch_t *batch, rocksdb_read_t *reads, char **errors, size_t len, const rocksdb_read_options_t *options, rocksdb_read_batch_cb cb);
280
+
281
+ int
282
+ rocksdb_write (rocksdb_t *db, rocksdb_write_batch_t *batch, rocksdb_write_t *writes, size_t len, const rocksdb_write_options_t *options, rocksdb_write_batch_cb cb);
252
283
 
253
284
  int
254
- rocksdb_write (rocksdb_t *db, rocksdb_write_batch_t *batch, rocksdb_write_t *writes, size_t len, rocksdb_write_batch_cb cb);
285
+ rocksdb_snapshot_create (rocksdb_t *db, rocksdb_snapshot_t *snapshot);
286
+
287
+ void
288
+ rocksdb_snapshot_destroy (rocksdb_snapshot_t *snapshot);
255
289
 
256
290
  #ifdef __cplusplus
257
291
  }