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
@@ -73,37 +73,47 @@ IndexBuilder* IndexBuilder::CreateIndexBuilder(
73
73
  return result;
74
74
  }
75
75
 
76
- void ShortenedIndexBuilder::FindShortestInternalKeySeparator(
77
- const Comparator& comparator, std::string* start, const Slice& limit) {
76
+ Slice ShortenedIndexBuilder::FindShortestInternalKeySeparator(
77
+ const Comparator& comparator, const Slice& start, const Slice& limit,
78
+ std::string* scratch) {
78
79
  // Attempt to shorten the user portion of the key
79
- Slice user_start = ExtractUserKey(*start);
80
+ Slice user_start = ExtractUserKey(start);
80
81
  Slice user_limit = ExtractUserKey(limit);
81
- std::string tmp(user_start.data(), user_start.size());
82
- comparator.FindShortestSeparator(&tmp, user_limit);
83
- if (tmp.size() <= user_start.size() &&
84
- comparator.Compare(user_start, tmp) < 0) {
82
+ scratch->assign(user_start.data(), user_start.size());
83
+ comparator.FindShortestSeparator(scratch, user_limit);
84
+ assert(comparator.Compare(user_start, *scratch) <= 0);
85
+ assert(comparator.Compare(user_start, user_limit) >= 0 ||
86
+ comparator.Compare(*scratch, user_limit) < 0);
87
+ if (scratch->size() <= user_start.size() &&
88
+ comparator.Compare(user_start, *scratch) < 0) {
85
89
  // User key has become shorter physically, but larger logically.
86
90
  // Tack on the earliest possible number to the shortened user key.
87
- PutFixed64(&tmp,
91
+ PutFixed64(scratch,
88
92
  PackSequenceAndType(kMaxSequenceNumber, kValueTypeForSeek));
89
- assert(InternalKeyComparator(&comparator).Compare(*start, tmp) < 0);
90
- assert(InternalKeyComparator(&comparator).Compare(tmp, limit) < 0);
91
- start->swap(tmp);
93
+ assert(InternalKeyComparator(&comparator).Compare(start, *scratch) < 0);
94
+ assert(InternalKeyComparator(&comparator).Compare(*scratch, limit) < 0);
95
+ return *scratch;
96
+ } else {
97
+ return start;
92
98
  }
93
99
  }
94
100
 
95
- void ShortenedIndexBuilder::FindShortInternalKeySuccessor(
96
- const Comparator& comparator, std::string* key) {
97
- Slice user_key = ExtractUserKey(*key);
98
- std::string tmp(user_key.data(), user_key.size());
99
- comparator.FindShortSuccessor(&tmp);
100
- if (tmp.size() <= user_key.size() && comparator.Compare(user_key, tmp) < 0) {
101
+ Slice ShortenedIndexBuilder::FindShortInternalKeySuccessor(
102
+ const Comparator& comparator, const Slice& key, std::string* scratch) {
103
+ Slice user_key = ExtractUserKey(key);
104
+ scratch->assign(user_key.data(), user_key.size());
105
+ comparator.FindShortSuccessor(scratch);
106
+ assert(comparator.Compare(user_key, *scratch) <= 0);
107
+ if (scratch->size() <= user_key.size() &&
108
+ comparator.Compare(user_key, *scratch) < 0) {
101
109
  // User key has become shorter physically, but larger logically.
102
110
  // Tack on the earliest possible number to the shortened user key.
103
- PutFixed64(&tmp,
111
+ PutFixed64(scratch,
104
112
  PackSequenceAndType(kMaxSequenceNumber, kValueTypeForSeek));
105
- assert(InternalKeyComparator(&comparator).Compare(*key, tmp) < 0);
106
- key->swap(tmp);
113
+ assert(InternalKeyComparator(&comparator).Compare(key, *scratch) < 0);
114
+ return *scratch;
115
+ } else {
116
+ return key;
107
117
  }
108
118
  }
109
119
 
@@ -135,7 +145,6 @@ PartitionedIndexBuilder::PartitionedIndexBuilder(
135
145
  BlockBasedTableOptions::kDataBlockBinarySearch /* index_type */,
136
146
  0.75 /* data_block_hash_table_util_ratio */, ts_sz,
137
147
  persist_user_defined_timestamps, true /* is_user_key */),
138
- sub_index_builder_(nullptr),
139
148
  table_opt_(table_opt),
140
149
  // We start by false. After each partition we revise the value based on
141
150
  // what the sub_index_builder has decided. If the feature is disabled
@@ -146,13 +155,9 @@ PartitionedIndexBuilder::PartitionedIndexBuilder(
146
155
  seperator_is_key_plus_seq_(false),
147
156
  use_value_delta_encoding_(use_value_delta_encoding) {}
148
157
 
149
- PartitionedIndexBuilder::~PartitionedIndexBuilder() {
150
- delete sub_index_builder_;
151
- }
152
-
153
158
  void PartitionedIndexBuilder::MakeNewSubIndexBuilder() {
154
159
  assert(sub_index_builder_ == nullptr);
155
- sub_index_builder_ = new ShortenedIndexBuilder(
160
+ sub_index_builder_ = std::make_unique<ShortenedIndexBuilder>(
156
161
  comparator_, table_opt_.index_block_restart_interval,
157
162
  table_opt_.format_version, use_value_delta_encoding_,
158
163
  table_opt_.index_shortening, /* include_first_key */ false, ts_sz_,
@@ -180,33 +185,35 @@ void PartitionedIndexBuilder::RequestPartitionCut() {
180
185
  partition_cut_requested_ = true;
181
186
  }
182
187
 
183
- void PartitionedIndexBuilder::AddIndexEntry(
184
- std::string* last_key_in_current_block,
185
- const Slice* first_key_in_next_block, const BlockHandle& block_handle) {
188
+ Slice PartitionedIndexBuilder::AddIndexEntry(
189
+ const Slice& last_key_in_current_block,
190
+ const Slice* first_key_in_next_block, const BlockHandle& block_handle,
191
+ std::string* separator_scratch) {
186
192
  // Note: to avoid two consecuitive flush in the same method call, we do not
187
193
  // check flush policy when adding the last key
188
194
  if (UNLIKELY(first_key_in_next_block == nullptr)) { // no more keys
189
195
  if (sub_index_builder_ == nullptr) {
190
196
  MakeNewSubIndexBuilder();
197
+ // Reserve next partition entry, where we will modify the key and
198
+ // eventually set the value
199
+ entries_.push_back({{}, {}});
191
200
  }
192
- sub_index_builder_->AddIndexEntry(last_key_in_current_block,
193
- first_key_in_next_block, block_handle);
201
+ auto sep = sub_index_builder_->AddIndexEntry(
202
+ last_key_in_current_block, first_key_in_next_block, block_handle,
203
+ separator_scratch);
194
204
  if (!seperator_is_key_plus_seq_ &&
195
205
  sub_index_builder_->seperator_is_key_plus_seq_) {
196
- // then we need to apply it to all sub-index builders and reset
197
- // flush_policy to point to Block Builder of sub_index_builder_ that store
198
- // internal keys.
206
+ // We need to apply !seperator_is_key_plus_seq to all sub-index builders
199
207
  seperator_is_key_plus_seq_ = true;
200
- flush_policy_.reset(FlushBlockBySizePolicyFactory::NewFlushBlockPolicy(
201
- table_opt_.metadata_block_size, table_opt_.block_size_deviation,
202
- sub_index_builder_->index_block_builder_));
208
+ // Would associate flush_policy with the appropriate builder, but it won't
209
+ // be used again with no more keys
210
+ flush_policy_.reset();
203
211
  }
204
- sub_index_last_key_ = std::string(*last_key_in_current_block);
205
- entries_.push_back(
206
- {sub_index_last_key_,
207
- std::unique_ptr<ShortenedIndexBuilder>(sub_index_builder_)});
208
- sub_index_builder_ = nullptr;
212
+ entries_.back().key.assign(sep.data(), sep.size());
213
+ assert(entries_.back().value == nullptr);
214
+ std::swap(entries_.back().value, sub_index_builder_);
209
215
  cut_filter_block = true;
216
+ return sep;
210
217
  } else {
211
218
  // apply flush policy only to non-empty sub_index_builder_
212
219
  if (sub_index_builder_ != nullptr) {
@@ -214,31 +221,33 @@ void PartitionedIndexBuilder::AddIndexEntry(
214
221
  block_handle.EncodeTo(&handle_encoding);
215
222
  bool do_flush =
216
223
  partition_cut_requested_ ||
217
- flush_policy_->Update(*last_key_in_current_block, handle_encoding);
224
+ flush_policy_->Update(last_key_in_current_block, handle_encoding);
218
225
  if (do_flush) {
219
- entries_.push_back(
220
- {sub_index_last_key_,
221
- std::unique_ptr<ShortenedIndexBuilder>(sub_index_builder_)});
226
+ assert(entries_.back().value == nullptr);
227
+ std::swap(entries_.back().value, sub_index_builder_);
222
228
  cut_filter_block = true;
223
- sub_index_builder_ = nullptr;
224
229
  }
225
230
  }
226
231
  if (sub_index_builder_ == nullptr) {
227
232
  MakeNewSubIndexBuilder();
233
+ // Reserve next partition entry, where we will modify the key and
234
+ // eventually set the value
235
+ entries_.push_back({{}, {}});
228
236
  }
229
- sub_index_builder_->AddIndexEntry(last_key_in_current_block,
230
- first_key_in_next_block, block_handle);
231
- sub_index_last_key_ = std::string(*last_key_in_current_block);
237
+ auto sep = sub_index_builder_->AddIndexEntry(
238
+ last_key_in_current_block, first_key_in_next_block, block_handle,
239
+ separator_scratch);
240
+ entries_.back().key.assign(sep.data(), sep.size());
232
241
  if (!seperator_is_key_plus_seq_ &&
233
242
  sub_index_builder_->seperator_is_key_plus_seq_) {
234
- // then we need to apply it to all sub-index builders and reset
235
- // flush_policy to point to Block Builder of sub_index_builder_ that store
236
- // internal keys.
243
+ // We need to apply !seperator_is_key_plus_seq to all sub-index builders
237
244
  seperator_is_key_plus_seq_ = true;
245
+ // And use a flush_policy with the appropriate builder
238
246
  flush_policy_.reset(FlushBlockBySizePolicyFactory::NewFlushBlockPolicy(
239
247
  table_opt_.metadata_block_size, table_opt_.block_size_deviation,
240
248
  sub_index_builder_->index_block_builder_));
241
249
  }
250
+ return sep;
242
251
  }
243
252
  }
244
253
 
@@ -57,19 +57,24 @@ class IndexBuilder {
57
57
  virtual ~IndexBuilder() = default;
58
58
 
59
59
  // Add a new index entry to index block.
60
+ //
60
61
  // To allow further optimization, we provide `last_key_in_current_block` and
61
62
  // `first_key_in_next_block`, based on which the specific implementation can
62
63
  // determine the best index key to be used for the index block.
63
64
  // Called before the OnKeyAdded() call for first_key_in_next_block.
64
- // @last_key_in_current_block: this parameter maybe overridden with the value
65
- // "substitute key".
65
+ // @last_key_in_current_block: TODO lifetime details
66
66
  // @first_key_in_next_block: it will be nullptr if the entry being added is
67
67
  // the last one in the table
68
- //
68
+ // @separator_scratch: a scratch buffer to back a computed separator between
69
+ // those, as needed. May be modified on each call.
70
+ // @return: the key or separator stored in the index, which could be
71
+ // last_key_in_current_block or a computed separator backed by
72
+ // separator_scratch or last_key_in_current_block.
69
73
  // REQUIRES: Finish() has not yet been called.
70
- virtual void AddIndexEntry(std::string* last_key_in_current_block,
71
- const Slice* first_key_in_next_block,
72
- const BlockHandle& block_handle) = 0;
74
+ virtual Slice AddIndexEntry(const Slice& last_key_in_current_block,
75
+ const Slice* first_key_in_next_block,
76
+ const BlockHandle& block_handle,
77
+ std::string* separator_scratch) = 0;
73
78
 
74
79
  // This method will be called whenever a key is added. The subclasses may
75
80
  // override OnKeyAdded() if they need to collect additional information.
@@ -181,29 +186,35 @@ class ShortenedIndexBuilder : public IndexBuilder {
181
186
  }
182
187
  }
183
188
 
184
- void AddIndexEntry(std::string* last_key_in_current_block,
185
- const Slice* first_key_in_next_block,
186
- const BlockHandle& block_handle) override {
189
+ Slice AddIndexEntry(const Slice& last_key_in_current_block,
190
+ const Slice* first_key_in_next_block,
191
+ const BlockHandle& block_handle,
192
+ std::string* separator_scratch) override {
193
+ Slice separator;
187
194
  if (first_key_in_next_block != nullptr) {
188
195
  if (shortening_mode_ !=
189
196
  BlockBasedTableOptions::IndexShorteningMode::kNoShortening) {
190
- FindShortestInternalKeySeparator(*comparator_->user_comparator(),
191
- last_key_in_current_block,
192
- *first_key_in_next_block);
197
+ separator = FindShortestInternalKeySeparator(
198
+ *comparator_->user_comparator(), last_key_in_current_block,
199
+ *first_key_in_next_block, separator_scratch);
200
+ } else {
201
+ separator = last_key_in_current_block;
193
202
  }
194
203
  if (!seperator_is_key_plus_seq_ &&
195
- ShouldUseKeyPlusSeqAsSeparator(*last_key_in_current_block,
204
+ ShouldUseKeyPlusSeqAsSeparator(last_key_in_current_block,
196
205
  *first_key_in_next_block)) {
197
206
  seperator_is_key_plus_seq_ = true;
198
207
  }
199
208
  } else {
200
209
  if (shortening_mode_ == BlockBasedTableOptions::IndexShorteningMode::
201
210
  kShortenSeparatorsAndSuccessor) {
202
- FindShortInternalKeySuccessor(*comparator_->user_comparator(),
203
- last_key_in_current_block);
211
+ separator = FindShortInternalKeySuccessor(
212
+ *comparator_->user_comparator(), last_key_in_current_block,
213
+ separator_scratch);
214
+ } else {
215
+ separator = last_key_in_current_block;
204
216
  }
205
217
  }
206
- auto sep = Slice(*last_key_in_current_block);
207
218
 
208
219
  assert(!include_first_key_ || !current_block_first_internal_key_.empty());
209
220
  // When UDT should not be persisted, the index block builders take care of
@@ -241,13 +252,15 @@ class ShortenedIndexBuilder : public IndexBuilder {
241
252
  // away the UDT from key in index block as data block does the same thing.
242
253
  // What are the implications if a "FindShortInternalKeySuccessor"
243
254
  // optimization is provided.
244
- index_block_builder_.Add(sep, encoded_entry, &delta_encoded_entry_slice);
255
+ index_block_builder_.Add(separator, encoded_entry,
256
+ &delta_encoded_entry_slice);
245
257
  if (!seperator_is_key_plus_seq_) {
246
- index_block_builder_without_seq_.Add(ExtractUserKey(sep), encoded_entry,
247
- &delta_encoded_entry_slice);
258
+ index_block_builder_without_seq_.Add(
259
+ ExtractUserKey(separator), encoded_entry, &delta_encoded_entry_slice);
248
260
  }
249
261
 
250
262
  current_block_first_internal_key_.clear();
263
+ return separator;
251
264
  }
252
265
 
253
266
  using IndexBuilder::Finish;
@@ -271,12 +284,14 @@ class ShortenedIndexBuilder : public IndexBuilder {
271
284
 
272
285
  // Changes *key to a short string >= *key.
273
286
  //
274
- static void FindShortestInternalKeySeparator(const Comparator& comparator,
275
- std::string* start,
276
- const Slice& limit);
287
+ static Slice FindShortestInternalKeySeparator(const Comparator& comparator,
288
+ const Slice& start,
289
+ const Slice& limit,
290
+ std::string* scratch);
277
291
 
278
- static void FindShortInternalKeySuccessor(const Comparator& comparator,
279
- std::string* key);
292
+ static Slice FindShortInternalKeySuccessor(const Comparator& comparator,
293
+ const Slice& key,
294
+ std::string* scratch);
280
295
 
281
296
  friend class PartitionedIndexBuilder;
282
297
 
@@ -333,12 +348,14 @@ class HashIndexBuilder : public IndexBuilder {
333
348
  ts_sz, persist_user_defined_timestamps),
334
349
  hash_key_extractor_(hash_key_extractor) {}
335
350
 
336
- void AddIndexEntry(std::string* last_key_in_current_block,
337
- const Slice* first_key_in_next_block,
338
- const BlockHandle& block_handle) override {
351
+ Slice AddIndexEntry(const Slice& last_key_in_current_block,
352
+ const Slice* first_key_in_next_block,
353
+ const BlockHandle& block_handle,
354
+ std::string* separator_scratch) override {
339
355
  ++current_restart_index_;
340
- primary_index_builder_.AddIndexEntry(last_key_in_current_block,
341
- first_key_in_next_block, block_handle);
356
+ return primary_index_builder_.AddIndexEntry(
357
+ last_key_in_current_block, first_key_in_next_block, block_handle,
358
+ separator_scratch);
342
359
  }
343
360
 
344
361
  void OnKeyAdded(const Slice& key) override {
@@ -441,11 +458,10 @@ class PartitionedIndexBuilder : public IndexBuilder {
441
458
  bool use_value_delta_encoding, size_t ts_sz,
442
459
  bool persist_user_defined_timestamps);
443
460
 
444
- ~PartitionedIndexBuilder() override;
445
-
446
- void AddIndexEntry(std::string* last_key_in_current_block,
447
- const Slice* first_key_in_next_block,
448
- const BlockHandle& block_handle) override;
461
+ Slice AddIndexEntry(const Slice& last_key_in_current_block,
462
+ const Slice* first_key_in_next_block,
463
+ const BlockHandle& block_handle,
464
+ std::string* separator_scratch) override;
449
465
 
450
466
  Status Finish(IndexBlocks* index_blocks,
451
467
  const BlockHandle& last_partition_block_handle) override;
@@ -463,7 +479,10 @@ class PartitionedIndexBuilder : public IndexBuilder {
463
479
  return false;
464
480
  }
465
481
 
466
- std::string& GetPartitionKey() { return sub_index_last_key_; }
482
+ const std::string& GetPartitionKey() {
483
+ static const std::string kEmptyKey;
484
+ return entries_.empty() ? kEmptyKey : entries_.back().key;
485
+ }
467
486
 
468
487
  // Called when an external entity (such as filter partition builder) request
469
488
  // cutting the next partition
@@ -489,13 +508,16 @@ class PartitionedIndexBuilder : public IndexBuilder {
489
508
  std::string key;
490
509
  std::unique_ptr<ShortenedIndexBuilder> value;
491
510
  };
492
- std::list<Entry> entries_; // list of partitioned indexes and their keys
511
+ // List of partitioned indexes and their keys. Note that when
512
+ // sub_index_builder_ is not null (during construction), there
513
+ // will be a placeholder entry at the back of this list tracking
514
+ // the possible key for that next entry.
515
+ std::list<Entry> entries_;
493
516
  BlockBuilder index_block_builder_; // top-level index builder
494
517
  BlockBuilder index_block_builder_without_seq_; // same for user keys
495
518
  // the active partition index builder
496
- ShortenedIndexBuilder* sub_index_builder_;
519
+ std::unique_ptr<ShortenedIndexBuilder> sub_index_builder_;
497
520
  // the last key in the active partition index builder
498
- std::string sub_index_last_key_;
499
521
  std::unique_ptr<FlushBlockPolicy> flush_policy_;
500
522
  // true if Finish is called once but not complete yet.
501
523
  bool finishing_indexes = false;
@@ -35,9 +35,8 @@ Status BlockBasedTable::IndexReaderCommon::ReadIndexBlock(
35
35
  }
36
36
 
37
37
  Status BlockBasedTable::IndexReaderCommon::GetOrReadIndexBlock(
38
- bool no_io, GetContext* get_context,
39
- BlockCacheLookupContext* lookup_context, CachableEntry<Block>* index_block,
40
- const ReadOptions& ro) const {
38
+ GetContext* get_context, BlockCacheLookupContext* lookup_context,
39
+ CachableEntry<Block>* index_block, const ReadOptions& ro) const {
41
40
  assert(index_block != nullptr);
42
41
 
43
42
  if (!index_block_.IsEmpty()) {
@@ -45,13 +44,19 @@ Status BlockBasedTable::IndexReaderCommon::GetOrReadIndexBlock(
45
44
  return Status::OK();
46
45
  }
47
46
 
48
- ReadOptions read_options = ro;
49
- if (no_io) {
50
- read_options.read_tier = kBlockCacheTier;
51
- }
52
-
53
- return ReadIndexBlock(table_, /*prefetch_buffer=*/nullptr, read_options,
47
+ return ReadIndexBlock(table_, /*prefetch_buffer=*/nullptr, ro,
54
48
  cache_index_blocks(), get_context, lookup_context,
55
49
  index_block);
56
50
  }
51
+
52
+ void BlockBasedTable::IndexReaderCommon::EraseFromCacheBeforeDestruction(
53
+ uint32_t uncache_aggressiveness) {
54
+ if (uncache_aggressiveness > 0) {
55
+ if (index_block_.IsCached()) {
56
+ index_block_.ResetEraseIfLastRef();
57
+ } else {
58
+ table()->EraseFromCache(table()->get_rep()->index_handle);
59
+ }
60
+ }
61
+ }
57
62
  } // namespace ROCKSDB_NAMESPACE
@@ -24,6 +24,9 @@ class BlockBasedTable::IndexReaderCommon : public BlockBasedTable::IndexReader {
24
24
  assert(table_ != nullptr);
25
25
  }
26
26
 
27
+ void EraseFromCacheBeforeDestruction(
28
+ uint32_t /*uncache_aggressiveness*/) override;
29
+
27
30
  protected:
28
31
  static Status ReadIndexBlock(const BlockBasedTable* table,
29
32
  FilePrefetchBuffer* prefetch_buffer,
@@ -71,7 +74,7 @@ class BlockBasedTable::IndexReaderCommon : public BlockBasedTable::IndexReader {
71
74
  return table_->get_rep()->user_defined_timestamps_persisted;
72
75
  }
73
76
 
74
- Status GetOrReadIndexBlock(bool no_io, GetContext* get_context,
77
+ Status GetOrReadIndexBlock(GetContext* get_context,
75
78
  BlockCacheLookupContext* lookup_context,
76
79
  CachableEntry<Block>* index_block,
77
80
  const ReadOptions& read_options) const;