@nxtedition/rocksdb 8.1.6 → 8.1.8

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 (536) hide show
  1. package/deps/rocksdb/rocksdb/CMakeLists.txt +1 -6
  2. package/deps/rocksdb/rocksdb/Makefile +15 -49
  3. package/deps/rocksdb/rocksdb/TARGETS +2 -0
  4. package/deps/rocksdb/rocksdb/cache/cache.cc +1 -15
  5. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +1 -5
  6. package/deps/rocksdb/rocksdb/cache/cache_helpers.h +1 -1
  7. package/deps/rocksdb/rocksdb/cache/cache_key.cc +1 -1
  8. package/deps/rocksdb/rocksdb/cache/charged_cache.h +1 -1
  9. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +1 -1
  10. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +11 -7
  11. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -1
  12. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +94 -6
  13. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +0 -39
  14. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +1 -1
  15. package/deps/rocksdb/rocksdb/cache/typed_cache.h +1 -1
  16. package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
  17. package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +0 -17
  18. package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +0 -2
  19. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +0 -2
  20. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +240 -8
  21. package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +0 -14
  22. package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +0 -2
  23. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +0 -6
  24. package/deps/rocksdb/rocksdb/db/builder.cc +0 -2
  25. package/deps/rocksdb/rocksdb/db/c.cc +8 -14
  26. package/deps/rocksdb/rocksdb/db/c_test.c +0 -11
  27. package/deps/rocksdb/rocksdb/db/column_family.cc +0 -13
  28. package/deps/rocksdb/rocksdb/db/column_family.h +0 -2
  29. package/deps/rocksdb/rocksdb/db/column_family_test.cc +0 -71
  30. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +0 -11
  31. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +113 -43
  32. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +0 -20
  33. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +0 -10
  34. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +0 -11
  35. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +0 -2
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +0 -6
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +0 -2
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +0 -2
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +0 -5
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +0 -2
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +0 -2
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +0 -2
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +0 -11
  44. package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +1 -8
  45. package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +0 -2
  46. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +0 -8
  47. package/deps/rocksdb/rocksdb/db/convenience.cc +0 -2
  48. package/deps/rocksdb/rocksdb/db/corruption_test.cc +53 -56
  49. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +0 -10
  50. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +33 -48
  51. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +15 -358
  52. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +0 -24
  53. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +0 -6
  54. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +0 -8
  55. package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +0 -8
  56. package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +0 -4
  57. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +0 -2
  58. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +0 -33
  59. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +0 -2
  60. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +0 -4
  61. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +150 -102
  62. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +52 -48
  63. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +0 -66
  64. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +0 -2
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +0 -6
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +0 -16
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +0 -17
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +0 -4
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +0 -18
  71. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +0 -4
  72. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +6 -9
  73. package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +0 -4
  74. package/deps/rocksdb/rocksdb/db/db_iter.cc +0 -4
  75. package/deps/rocksdb/rocksdb/db/db_iter.h +0 -6
  76. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +0 -12
  77. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +0 -8
  78. package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +0 -16
  79. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +0 -2
  80. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +5 -5
  81. package/deps/rocksdb/rocksdb/db/db_options_test.cc +0 -4
  82. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +0 -6
  83. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +0 -10
  84. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +0 -15
  85. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +0 -4
  86. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +0 -2
  87. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +0 -4
  88. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +0 -2
  89. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +0 -2
  90. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +0 -9
  91. package/deps/rocksdb/rocksdb/db/db_test.cc +2 -64
  92. package/deps/rocksdb/rocksdb/db/db_test2.cc +0 -138
  93. package/deps/rocksdb/rocksdb/db/db_test_util.cc +0 -33
  94. package/deps/rocksdb/rocksdb/db/db_test_util.h +11 -94
  95. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +0 -8
  96. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +18 -53
  97. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +0 -6
  98. package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +0 -2
  99. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +0 -2
  100. package/deps/rocksdb/rocksdb/db/db_write_test.cc +115 -12
  101. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +0 -11
  102. package/deps/rocksdb/rocksdb/db/error_handler.cc +0 -27
  103. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +0 -12
  104. package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -49
  105. package/deps/rocksdb/rocksdb/db/event_helpers.h +0 -4
  106. package/deps/rocksdb/rocksdb/db/experimental.cc +0 -14
  107. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -2
  108. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +0 -2
  109. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +16 -27
  110. package/deps/rocksdb/rocksdb/db/flush_job.cc +0 -6
  111. package/deps/rocksdb/rocksdb/db/flush_job.h +0 -4
  112. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +0 -2
  113. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +0 -2
  114. package/deps/rocksdb/rocksdb/db/forward_iterator.h +0 -2
  115. package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +2 -2
  116. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +0 -2
  117. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +0 -12
  118. package/deps/rocksdb/rocksdb/db/internal_stats.cc +0 -8
  119. package/deps/rocksdb/rocksdb/db/internal_stats.h +0 -151
  120. package/deps/rocksdb/rocksdb/db/job_context.h +4 -5
  121. package/deps/rocksdb/rocksdb/db/listener_test.cc +19 -16
  122. package/deps/rocksdb/rocksdb/db/malloc_stats.cc +0 -2
  123. package/deps/rocksdb/rocksdb/db/malloc_stats.h +0 -2
  124. package/deps/rocksdb/rocksdb/db/memtable.cc +12 -10
  125. package/deps/rocksdb/rocksdb/db/memtable.h +0 -4
  126. package/deps/rocksdb/rocksdb/db/memtable_list.cc +0 -8
  127. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +0 -2
  128. package/deps/rocksdb/rocksdb/db/merge_helper.cc +6 -5
  129. package/deps/rocksdb/rocksdb/db/merge_test.cc +0 -8
  130. package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +0 -11
  131. package/deps/rocksdb/rocksdb/db/options_file_test.cc +0 -10
  132. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +0 -4
  133. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +0 -2
  134. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +0 -2
  135. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +0 -2
  136. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +0 -10
  137. package/deps/rocksdb/rocksdb/db/prefix_test.cc +0 -12
  138. package/deps/rocksdb/rocksdb/db/repair.cc +0 -2
  139. package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -12
  140. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +0 -2
  141. package/deps/rocksdb/rocksdb/db/snapshot_checker.h +0 -2
  142. package/deps/rocksdb/rocksdb/db/table_cache.cc +0 -10
  143. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +0 -4
  144. package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +0 -4
  145. package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +0 -2
  146. package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +0 -2
  147. package/deps/rocksdb/rocksdb/db/version_edit.h +1 -1
  148. package/deps/rocksdb/rocksdb/db/version_set.cc +86 -47
  149. package/deps/rocksdb/rocksdb/db/version_set.h +10 -4
  150. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +31 -11
  151. package/deps/rocksdb/rocksdb/db/version_set_test.cc +0 -2
  152. package/deps/rocksdb/rocksdb/db/wal_manager.cc +0 -2
  153. package/deps/rocksdb/rocksdb/db/wal_manager.h +0 -2
  154. package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +0 -10
  155. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +388 -0
  156. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +0 -2
  157. package/deps/rocksdb/rocksdb/db/write_callback_test.cc +0 -11
  158. package/deps/rocksdb/rocksdb/db/write_thread.cc +26 -0
  159. package/deps/rocksdb/rocksdb/db/write_thread.h +24 -0
  160. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +0 -6
  161. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +1 -4
  162. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +6 -6
  163. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +0 -2
  164. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +0 -2
  165. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +40 -131
  166. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +2 -20
  167. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +0 -7
  168. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +0 -12
  169. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +0 -61
  170. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +0 -8
  171. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +122 -54
  172. package/deps/rocksdb/rocksdb/env/composite_env.cc +0 -10
  173. package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +0 -2
  174. package/deps/rocksdb/rocksdb/env/env.cc +2 -33
  175. package/deps/rocksdb/rocksdb/env/env_basic_test.cc +0 -4
  176. package/deps/rocksdb/rocksdb/env/env_chroot.cc +2 -2
  177. package/deps/rocksdb/rocksdb/env/env_chroot.h +2 -2
  178. package/deps/rocksdb/rocksdb/env/env_encryption.cc +2 -7
  179. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -2
  180. package/deps/rocksdb/rocksdb/env/env_test.cc +2 -18
  181. package/deps/rocksdb/rocksdb/env/file_system.cc +1 -14
  182. package/deps/rocksdb/rocksdb/env/fs_posix.cc +0 -18
  183. package/deps/rocksdb/rocksdb/env/fs_readonly.h +0 -2
  184. package/deps/rocksdb/rocksdb/env/fs_remap.cc +0 -2
  185. package/deps/rocksdb/rocksdb/env/fs_remap.h +0 -2
  186. package/deps/rocksdb/rocksdb/env/mock_env.cc +0 -12
  187. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +0 -2
  188. package/deps/rocksdb/rocksdb/file/delete_scheduler.h +0 -2
  189. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +0 -7
  190. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +3 -2
  191. package/deps/rocksdb/rocksdb/file/file_util.cc +0 -9
  192. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +86 -99
  193. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +0 -18
  194. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +0 -8
  195. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +0 -2
  196. package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +0 -8
  197. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +0 -10
  198. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +0 -18
  199. package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +0 -2
  200. package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +0 -36
  201. package/deps/rocksdb/rocksdb/file/writable_file_writer.h +0 -16
  202. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +527 -0
  203. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +1 -4
  204. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +0 -4
  205. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +18 -432
  206. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +49 -3
  207. package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +0 -10
  208. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +18 -77
  209. package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +0 -4
  210. package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +154 -19
  211. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +90 -37
  212. package/deps/rocksdb/rocksdb/include/rocksdb/db_dump_tool.h +0 -2
  213. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -20
  214. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +0 -2
  215. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +0 -8
  216. package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +0 -2
  217. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +0 -7
  218. package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +0 -2
  219. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +44 -60
  220. package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +22 -0
  221. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +1 -1
  222. package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +0 -2
  223. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +0 -2
  224. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +0 -2
  225. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +17 -64
  226. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +1 -0
  227. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +0 -2
  228. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +0 -13
  229. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -1
  230. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +0 -2
  231. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +0 -2
  232. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +0 -2
  233. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +4 -59
  234. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +0 -2
  235. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +0 -2
  236. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -2
  237. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +0 -2
  238. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +0 -2
  239. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +0 -2
  240. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +0 -2
  241. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +5 -29
  242. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +0 -2
  243. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +4 -7
  244. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +18 -4
  245. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +0 -2
  246. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -2
  247. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +0 -2
  248. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -2
  249. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -2
  250. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +3 -3
  251. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +0 -4
  252. package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +0 -2
  253. package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +0 -11
  254. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +0 -2
  255. package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +0 -11
  256. package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +0 -4
  257. package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +0 -2
  258. package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +0 -2
  259. package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +0 -2
  260. package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +0 -2
  261. package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +0 -2
  262. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +0 -12
  263. package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +1 -2
  264. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +1 -36
  265. package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +0 -4
  266. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +0 -2
  267. package/deps/rocksdb/rocksdb/options/cf_options.cc +1 -4
  268. package/deps/rocksdb/rocksdb/options/cf_options.h +0 -2
  269. package/deps/rocksdb/rocksdb/options/configurable.cc +0 -55
  270. package/deps/rocksdb/rocksdb/options/configurable_helper.h +0 -2
  271. package/deps/rocksdb/rocksdb/options/configurable_test.cc +0 -20
  272. package/deps/rocksdb/rocksdb/options/configurable_test.h +0 -10
  273. package/deps/rocksdb/rocksdb/options/customizable.cc +0 -6
  274. package/deps/rocksdb/rocksdb/options/customizable_test.cc +21 -161
  275. package/deps/rocksdb/rocksdb/options/db_options.cc +1 -8
  276. package/deps/rocksdb/rocksdb/options/db_options.h +0 -4
  277. package/deps/rocksdb/rocksdb/options/options.cc +0 -2
  278. package/deps/rocksdb/rocksdb/options/options_helper.cc +0 -58
  279. package/deps/rocksdb/rocksdb/options/options_helper.h +0 -6
  280. package/deps/rocksdb/rocksdb/options/options_parser.cc +0 -2
  281. package/deps/rocksdb/rocksdb/options/options_parser.h +0 -2
  282. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +14 -8
  283. package/deps/rocksdb/rocksdb/options/options_test.cc +260 -298
  284. package/deps/rocksdb/rocksdb/port/port_posix.h +1 -1
  285. package/deps/rocksdb/rocksdb/port/stack_trace.cc +87 -6
  286. package/deps/rocksdb/rocksdb/port/win/env_win.h +2 -2
  287. package/deps/rocksdb/rocksdb/port/win/port_win.h +11 -10
  288. package/deps/rocksdb/rocksdb/src.mk +1 -0
  289. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +0 -2
  290. package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +0 -2
  291. package/deps/rocksdb/rocksdb/table/block_based/block.h +1 -0
  292. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +2 -49
  293. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -103
  294. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
  295. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +20 -107
  296. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +2 -6
  297. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +1 -4
  298. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +1 -12
  299. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +0 -4
  300. package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +1 -1
  301. package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -0
  302. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +0 -7
  303. package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +8 -22
  304. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +5 -0
  305. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +1 -8
  306. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +0 -2
  307. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +0 -2
  308. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -2
  309. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +0 -10
  310. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +0 -4
  311. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +0 -2
  312. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +0 -2
  313. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +0 -2
  314. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +0 -10
  315. package/deps/rocksdb/rocksdb/table/format.cc +0 -6
  316. package/deps/rocksdb/rocksdb/table/get_context.cc +22 -21
  317. package/deps/rocksdb/rocksdb/table/get_context.h +15 -1
  318. package/deps/rocksdb/rocksdb/table/multiget_context.h +6 -3
  319. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +0 -2
  320. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +0 -2
  321. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +0 -54
  322. package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +0 -2
  323. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +0 -2
  324. package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +0 -2
  325. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +0 -2
  326. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +0 -2
  327. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +0 -2
  328. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +0 -2
  329. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +0 -2
  330. package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -2
  331. package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +0 -2
  332. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +0 -11
  333. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +0 -2
  334. package/deps/rocksdb/rocksdb/table/table_factory.cc +1 -14
  335. package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +0 -10
  336. package/deps/rocksdb/rocksdb/table/table_test.cc +2 -17
  337. package/deps/rocksdb/rocksdb/test_util/testutil.cc +0 -16
  338. package/deps/rocksdb/rocksdb/test_util/testutil.h +0 -2
  339. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +0 -2
  340. package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +0 -2
  341. package/deps/rocksdb/rocksdb/tools/blob_dump.cc +0 -8
  342. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +0 -2
  343. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +0 -9
  344. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +0 -8
  345. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +5 -131
  346. package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +12 -4
  347. package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +0 -8
  348. package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +0 -4
  349. package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +0 -2
  350. package/deps/rocksdb/rocksdb/tools/dump/rocksdb_dump.cc +2 -5
  351. package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +2 -5
  352. package/deps/rocksdb/rocksdb/tools/io_tracer_parser.cc +0 -8
  353. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +0 -8
  354. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +0 -2
  355. package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.h +0 -2
  356. package/deps/rocksdb/rocksdb/tools/ldb.cc +0 -8
  357. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +0 -2
  358. package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +0 -10
  359. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +0 -2
  360. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +0 -10
  361. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +0 -2
  362. package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +0 -2
  363. package/deps/rocksdb/rocksdb/tools/sst_dump.cc +0 -8
  364. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +0 -10
  365. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +0 -2
  366. package/deps/rocksdb/rocksdb/tools/trace_analyzer.cc +0 -8
  367. package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +1 -11
  368. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +6 -2
  369. package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +6 -3
  370. package/deps/rocksdb/rocksdb/tools/write_stress.cc +0 -4
  371. package/deps/rocksdb/rocksdb/util/aligned_buffer.h +1 -0
  372. package/deps/rocksdb/rocksdb/util/autovector.h +0 -13
  373. package/deps/rocksdb/rocksdb/util/autovector_test.cc +0 -7
  374. package/deps/rocksdb/rocksdb/util/build_version.cc.in +0 -2
  375. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +0 -8
  376. package/deps/rocksdb/rocksdb/util/comparator.cc +0 -8
  377. package/deps/rocksdb/rocksdb/util/core_local.h +1 -0
  378. package/deps/rocksdb/rocksdb/util/data_structure.cc +18 -0
  379. package/deps/rocksdb/rocksdb/util/distributed_mutex.h +2 -0
  380. package/deps/rocksdb/rocksdb/util/duplicate_detector.h +0 -2
  381. package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +1 -6
  382. package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +1 -0
  383. package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +0 -8
  384. package/deps/rocksdb/rocksdb/util/filter_bench.cc +3 -3
  385. package/deps/rocksdb/rocksdb/util/mutexlock.h +1 -0
  386. package/deps/rocksdb/rocksdb/util/random.cc +1 -0
  387. package/deps/rocksdb/rocksdb/util/slice.cc +0 -38
  388. package/deps/rocksdb/rocksdb/util/slice_test.cc +63 -2
  389. package/deps/rocksdb/rocksdb/util/status.cc +4 -3
  390. package/deps/rocksdb/rocksdb/util/string_util.cc +0 -2
  391. package/deps/rocksdb/rocksdb/util/string_util.h +1 -2
  392. package/deps/rocksdb/rocksdb/util/thread_local_test.cc +0 -4
  393. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +0 -2
  394. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +0 -2
  395. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +3 -3
  396. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -2
  397. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +0 -2
  398. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -2
  399. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +0 -2
  400. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -2
  401. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +0 -2
  402. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +0 -2
  403. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -2
  404. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +0 -2
  405. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +0 -2
  406. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +0 -10
  407. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +0 -2
  408. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -2
  409. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +0 -2
  410. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +0 -2
  411. package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +0 -2
  412. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +0 -2
  413. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +0 -2
  414. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +0 -4
  415. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +0 -2
  416. package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +0 -2
  417. package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +0 -2
  418. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +0 -2
  419. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +0 -2
  420. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +24 -10
  421. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -2
  422. package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -2
  423. package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +4 -8
  424. package/deps/rocksdb/rocksdb/utilities/debug.cc +0 -2
  425. package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +0 -2
  426. package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +0 -10
  427. package/deps/rocksdb/rocksdb/utilities/env_timed.cc +0 -6
  428. package/deps/rocksdb/rocksdb/utilities/env_timed.h +0 -2
  429. package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +0 -10
  430. package/deps/rocksdb/rocksdb/utilities/leveldb_options/leveldb_options.cc +1 -1
  431. package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +0 -10
  432. package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +0 -2
  433. package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +38 -54
  434. package/deps/rocksdb/rocksdb/utilities/merge_operators/max_operator.h +35 -0
  435. package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +41 -59
  436. package/deps/rocksdb/rocksdb/utilities/merge_operators/put_operator.h +56 -0
  437. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +0 -2
  438. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +0 -2
  439. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +0 -4
  440. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +29 -48
  441. package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.h +35 -0
  442. package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +35 -40
  443. package/deps/rocksdb/rocksdb/utilities/object_registry.cc +0 -2
  444. package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +0 -10
  445. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +0 -10
  446. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +0 -2
  447. package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +0 -42
  448. package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +25 -37
  449. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -2
  450. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -2
  451. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +0 -2
  452. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -2
  453. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -2
  454. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -2
  455. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +0 -2
  456. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_bench.cc +1 -1
  457. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -2
  458. package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +0 -2
  459. package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +0 -2
  460. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +0 -4
  461. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +2 -51
  462. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -2
  463. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -2
  464. package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -2
  465. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -2
  466. package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -2
  467. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +26 -25
  468. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +1 -7
  469. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +0 -2
  470. package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +0 -7
  471. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +0 -2
  472. package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +0 -2
  473. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -2
  474. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +0 -2
  475. package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_tracker.h +0 -2
  476. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +0 -2
  477. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +0 -2
  478. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +0 -11
  479. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -2
  480. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +0 -2
  481. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +0 -2
  482. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +0 -11
  483. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +0 -2
  484. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +0 -2
  485. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +0 -2
  486. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +0 -2
  487. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +0 -2
  488. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +0 -2
  489. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +0 -2
  490. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +0 -2
  491. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +0 -2
  492. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +0 -2
  493. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +0 -2
  494. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +0 -2
  495. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +0 -2
  496. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +0 -2
  497. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +0 -2
  498. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -2
  499. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +0 -2
  500. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +0 -2
  501. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +0 -2
  502. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +0 -12
  503. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +0 -2
  504. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -2
  505. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +0 -2
  506. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +0 -2
  507. package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +0 -16
  508. package/deps/rocksdb/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +0 -9
  509. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +0 -2
  510. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +0 -2
  511. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -2
  512. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -2
  513. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +102 -11
  514. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +0 -2
  515. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +0 -2
  516. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +0 -10
  517. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -11
  518. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +0 -2
  519. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +0 -2
  520. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -2
  521. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +0 -2
  522. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +0 -11
  523. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +0 -2
  524. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +0 -2
  525. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -2
  526. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +0 -2
  527. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +0 -2
  528. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +0 -2
  529. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +0 -10
  530. package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +1 -2
  531. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +2 -3
  532. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +0 -2
  533. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +0 -2
  534. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +0 -10
  535. package/package.json +1 -1
  536. package/{deps/rocksdb/rocksdb/prebuilds → prebuilds}/linux-x64/node.napi.node +0 -0
@@ -0,0 +1,527 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ // This source code is licensed under both the GPLv2 (found in the
3
+ // COPYING file in the root directory) and Apache 2.0 License
4
+ // (found in the LICENSE.Apache file in the root directory).
5
+ //
6
+ // APIs for customizing read caches in RocksDB.
7
+
8
+ #pragma once
9
+
10
+ #include <cstdint>
11
+ #include <functional>
12
+ #include <memory>
13
+ #include <string>
14
+
15
+ #include "rocksdb/cache.h"
16
+ #include "rocksdb/memory_allocator.h"
17
+ #include "rocksdb/slice.h"
18
+ #include "rocksdb/status.h"
19
+
20
+ namespace ROCKSDB_NAMESPACE {
21
+
22
+ class Logger;
23
+ class Statistics;
24
+
25
+ // A Cache maps keys to objects resident in memory, tracks reference counts
26
+ // on those key-object entries, and is able to remove unreferenced entries
27
+ // whenever it wants. All operations are fully thread safe except as noted.
28
+ // Inserted entries have a specified "charge" which is some quantity in
29
+ // unspecified units, typically bytes of memory used. A Cache will typically
30
+ // have a finite capacity in units of charge, and evict entries as needed
31
+ // to stay at or below that capacity.
32
+ //
33
+ // NOTE: This API is for expert use only and is intended more for customizing
34
+ // cache behavior than for calling into outside of RocksDB. It is subject to
35
+ // change as RocksDB evolves, especially the RocksDB block cache. Overriding
36
+ // CacheWrapper is the preferred way of customizing some operations on an
37
+ // existing implementation.
38
+ //
39
+ // INTERNAL: See typed_cache.h for convenient wrappers on top of this API.
40
+ // New virtual functions must also be added to CacheWrapper below.
41
+ class Cache {
42
+ public: // types hidden from API client
43
+ // Opaque handle to an entry stored in the cache.
44
+ struct Handle {};
45
+
46
+ public: // types hidden from Cache implementation
47
+ // Pointer to cached object of unspecified type. (This type alias is
48
+ // provided for clarity, not really for type checking.)
49
+ using ObjectPtr = void*;
50
+
51
+ // Opaque object providing context (settings, etc.) to create objects
52
+ // for primary cache from saved (serialized) secondary cache entries.
53
+ struct CreateContext {};
54
+
55
+ public: // type defs
56
+ // Depending on implementation, cache entries with higher priority levels
57
+ // could be less likely to get evicted than entries with lower priority
58
+ // levels. The "high" priority level applies to certain SST metablocks (e.g.
59
+ // index and filter blocks) if the option
60
+ // cache_index_and_filter_blocks_with_high_priority is set. The "low" priority
61
+ // level is used for other kinds of SST blocks (most importantly, data
62
+ // blocks), as well as the above metablocks in case
63
+ // cache_index_and_filter_blocks_with_high_priority is
64
+ // not set. The "bottom" priority level is for BlobDB's blob values.
65
+ enum class Priority { HIGH, LOW, BOTTOM };
66
+
67
+ // A set of callbacks to allow objects in the primary block cache to be
68
+ // be persisted in a secondary cache. The purpose of the secondary cache
69
+ // is to support other ways of caching the object, such as persistent or
70
+ // compressed data, that may require the object to be parsed and transformed
71
+ // in some way. Since the primary cache holds C++ objects and the secondary
72
+ // cache may only hold flat data that doesn't need relocation, these
73
+ // callbacks need to be provided by the user of the block
74
+ // cache to do the conversion.
75
+ // The CacheItemHelper is passed to Insert() and Lookup(). It has pointers
76
+ // to callback functions for size, saving and deletion of the
77
+ // object. The callbacks are defined in C-style in order to make them
78
+ // stateless and not add to the cache metadata size.
79
+ // Saving multiple std::function objects will take up 32 bytes per
80
+ // function, even if its not bound to an object and does no capture.
81
+ //
82
+ // All the callbacks are C-style function pointers in order to simplify
83
+ // lifecycle management. Objects in the cache can outlive the parent DB,
84
+ // so anything required for these operations should be contained in the
85
+ // object itself.
86
+ //
87
+ // The SizeCallback takes a pointer to the object and returns the size
88
+ // of the persistable data. It can be used by the secondary cache to allocate
89
+ // memory if needed.
90
+ //
91
+ // RocksDB callbacks are NOT exception-safe. A callback completing with an
92
+ // exception can lead to undefined behavior in RocksDB, including data loss,
93
+ // unreported corruption, deadlocks, and more.
94
+ using SizeCallback = size_t (*)(ObjectPtr obj);
95
+
96
+ // The SaveToCallback takes an object pointer and saves the persistable
97
+ // data into a buffer. The secondary cache may decide to not store it in a
98
+ // contiguous buffer, in which case this callback will be called multiple
99
+ // times with increasing offset
100
+ using SaveToCallback = Status (*)(ObjectPtr from_obj, size_t from_offset,
101
+ size_t length, char* out_buf);
102
+
103
+ // A function pointer type for destruction of a cache object. This will
104
+ // typically call the destructor for the appropriate type of the object.
105
+ // The Cache is responsible for copying and reclaiming space for the key,
106
+ // but objects are managed in part using this callback. Generally a DeleterFn
107
+ // can be nullptr if the ObjectPtr does not need destruction (e.g. nullptr or
108
+ // pointer into static data).
109
+ using DeleterFn = void (*)(ObjectPtr obj, MemoryAllocator* allocator);
110
+
111
+ // The CreateCallback is takes in a buffer from the NVM cache and constructs
112
+ // an object using it. The callback doesn't have ownership of the buffer and
113
+ // should copy the contents into its own buffer. The CreateContext* is
114
+ // provided by Lookup and may be used to follow DB- or CF-specific settings.
115
+ // In case of some error, non-OK is returned and the caller should ignore
116
+ // any result in out_obj. (The implementation must clean up after itself.)
117
+ using CreateCallback = Status (*)(const Slice& data, CreateContext* context,
118
+ MemoryAllocator* allocator,
119
+ ObjectPtr* out_obj, size_t* out_charge);
120
+
121
+ // A struct with pointers to helper functions for spilling items from the
122
+ // cache into the secondary cache. May be extended in the future. An
123
+ // instance of this struct is expected to outlive the cache.
124
+ struct CacheItemHelper {
125
+ // Function for deleting an object on its removal from the Cache.
126
+ // nullptr is only for entries that require no destruction, such as
127
+ // "placeholder" cache entries with nullptr object.
128
+ DeleterFn del_cb; // (<- Most performance critical)
129
+ // Next three are used for persisting values as described above.
130
+ // If any is nullptr, then all three should be nullptr and persisting the
131
+ // entry to/from secondary cache is not supported.
132
+ SizeCallback size_cb;
133
+ SaveToCallback saveto_cb;
134
+ CreateCallback create_cb;
135
+ // Classification of the entry for monitoring purposes in block cache.
136
+ CacheEntryRole role;
137
+
138
+ constexpr CacheItemHelper()
139
+ : del_cb(nullptr),
140
+ size_cb(nullptr),
141
+ saveto_cb(nullptr),
142
+ create_cb(nullptr),
143
+ role(CacheEntryRole::kMisc) {}
144
+
145
+ explicit constexpr CacheItemHelper(CacheEntryRole _role,
146
+ DeleterFn _del_cb = nullptr,
147
+ SizeCallback _size_cb = nullptr,
148
+ SaveToCallback _saveto_cb = nullptr,
149
+ CreateCallback _create_cb = nullptr)
150
+ : del_cb(_del_cb),
151
+ size_cb(_size_cb),
152
+ saveto_cb(_saveto_cb),
153
+ create_cb(_create_cb),
154
+ role(_role) {
155
+ // Either all three secondary cache callbacks are non-nullptr or
156
+ // all three are nullptr
157
+ assert((size_cb != nullptr) == (saveto_cb != nullptr));
158
+ assert((size_cb != nullptr) == (create_cb != nullptr));
159
+ }
160
+ inline bool IsSecondaryCacheCompatible() const {
161
+ return size_cb != nullptr;
162
+ }
163
+ };
164
+
165
+ public: // ctor/dtor/create
166
+ Cache(std::shared_ptr<MemoryAllocator> allocator = nullptr)
167
+ : memory_allocator_(std::move(allocator)) {}
168
+ // No copying allowed
169
+ Cache(const Cache&) = delete;
170
+ Cache& operator=(const Cache&) = delete;
171
+
172
+ // Destroys all remaining entries by calling the associated "deleter"
173
+ virtual ~Cache() {}
174
+
175
+ // Creates a new Cache based on the input value string and returns the result.
176
+ // Currently, this method can be used to create LRUCaches only
177
+ // @param config_options
178
+ // @param value The value might be:
179
+ // - an old-style cache ("1M") -- equivalent to NewLRUCache(1024*102(
180
+ // - Name-value option pairs -- "capacity=1M; num_shard_bits=4;
181
+ // For the LRUCache, the values are defined in LRUCacheOptions.
182
+ // @param result The new Cache object
183
+ // @return OK if the cache was successfully created
184
+ // @return NotFound if an invalid name was specified in the value
185
+ // @return InvalidArgument if either the options were not valid
186
+ static Status CreateFromString(const ConfigOptions& config_options,
187
+ const std::string& value,
188
+ std::shared_ptr<Cache>* result);
189
+
190
+ public: // functions
191
+ // The type of the Cache
192
+ virtual const char* Name() const = 0;
193
+
194
+ // The Insert and Lookup APIs below are intended to allow cached objects
195
+ // to be demoted/promoted between the primary block cache and a secondary
196
+ // cache. The secondary cache could be a non-volatile cache, and will
197
+ // likely store the object in a different representation. They rely on a
198
+ // per object CacheItemHelper to do the conversions.
199
+ // The secondary cache may persist across process and system restarts,
200
+ // and may even be moved between hosts. Therefore, the cache key must
201
+ // be repeatable across restarts/reboots, and globally unique if
202
+ // multiple DBs share the same cache and the set of DBs can change
203
+ // over time.
204
+
205
+ // Insert a mapping from key->object into the cache and assign it
206
+ // the specified charge against the total cache capacity. If
207
+ // strict_capacity_limit is true and cache reaches its full capacity,
208
+ // return Status::MemoryLimit. `obj` must be non-nullptr if compatible
209
+ // with secondary cache (helper->size_cb != nullptr), because Value() ==
210
+ // nullptr is reserved for indicating some secondary cache failure cases.
211
+ // On success, returns OK and takes ownership of `obj`, eventually deleting
212
+ // it with helper->del_cb. On non-OK return, the caller maintains ownership
213
+ // of `obj` so will often need to delete it in such cases.
214
+ //
215
+ // The helper argument is saved by the cache and will be used when the
216
+ // inserted object is evicted or considered for promotion to the secondary
217
+ // cache. Promotion to secondary cache is only enabled if helper->size_cb
218
+ // != nullptr. The helper must outlive the cache. Callers may use
219
+ // &kNoopCacheItemHelper as a trivial helper (no deleter for the object,
220
+ // no secondary cache). `helper` must not be nullptr (efficiency).
221
+ //
222
+ // If `handle` is not nullptr and return status is OK, `handle` is set
223
+ // to a Handle* for the entry. The caller must call this->Release(handle)
224
+ // when the returned entry is no longer needed. If `handle` is nullptr, it is
225
+ // as if Release is called immediately after Insert.
226
+ //
227
+ // Regardless of whether the item was inserted into the cache,
228
+ // it will attempt to insert it into the secondary cache if one is
229
+ // configured, and the helper supports it.
230
+ // The cache implementation must support a secondary cache, otherwise
231
+ // the item is only inserted into the primary cache. It may
232
+ // defer the insertion to the secondary cache as it sees fit.
233
+ //
234
+ // When the inserted entry is no longer needed, it will be destroyed using
235
+ // helper->del_cb (if non-nullptr).
236
+ virtual Status Insert(const Slice& key, ObjectPtr obj,
237
+ const CacheItemHelper* helper, size_t charge,
238
+ Handle** handle = nullptr,
239
+ Priority priority = Priority::LOW) = 0;
240
+
241
+ // Lookup the key, returning nullptr if not found. If found, returns
242
+ // a handle to the mapping that must eventually be passed to Release().
243
+ //
244
+ // If a non-nullptr helper argument is provided with a non-nullptr
245
+ // create_cb, and a secondary cache is configured, then the secondary
246
+ // cache is also queried if lookup in the primary cache fails. If found
247
+ // in secondary cache, the provided create_db and create_context are
248
+ // used to promote the entry to an object in the primary cache.
249
+ // In that case, the helper may be saved and used later when the object
250
+ // is evicted, so as usual, the pointed-to helper must outlive the cache.
251
+ //
252
+ // ======================== Async Lookup (wait=false) ======================
253
+ // When wait=false, the handle returned might be in any of three states:
254
+ // * Present - If Value() != nullptr, then the result is present and
255
+ // the handle can be used just as if wait=true.
256
+ // * Pending, not ready (IsReady() == false) - secondary cache is still
257
+ // working to retrieve the value. Might become ready any time.
258
+ // * Pending, ready (IsReady() == true) - secondary cache has the value
259
+ // but it has not been loaded as an object into primary cache. Call to
260
+ // Wait()/WaitAll() will not block.
261
+ //
262
+ // IMPORTANT: Pending handles are not thread-safe, and only these functions
263
+ // are allowed on them: Value(), IsReady(), Wait(), WaitAll(). Even Release()
264
+ // can only come after Wait() or WaitAll() even though a reference is held.
265
+ //
266
+ // Only Wait()/WaitAll() gets a Handle out of a Pending state. (Waiting is
267
+ // safe and has no effect on other handle states.) After waiting on a Handle,
268
+ // it is in one of two states:
269
+ // * Present - if Value() != nullptr
270
+ // * Failed - if Value() == nullptr, such as if the secondary cache
271
+ // initially thought it had the value but actually did not.
272
+ //
273
+ // Note that given an arbitrary Handle, the only way to distinguish the
274
+ // Pending+ready state from the Failed state is to Wait() on it. A cache
275
+ // entry not compatible with secondary cache can also have Value()==nullptr
276
+ // like the Failed state, but this is not generally a concern.
277
+ virtual Handle* Lookup(const Slice& key,
278
+ const CacheItemHelper* helper = nullptr,
279
+ CreateContext* create_context = nullptr,
280
+ Priority priority = Priority::LOW, bool wait = true,
281
+ Statistics* stats = nullptr) = 0;
282
+
283
+ // Convenience wrapper when secondary cache not supported
284
+ inline Handle* BasicLookup(const Slice& key, Statistics* stats) {
285
+ return Lookup(key, nullptr, nullptr, Priority::LOW, true, stats);
286
+ }
287
+
288
+ // Increments the reference count for the handle if it refers to an entry in
289
+ // the cache. Returns true if refcount was incremented; otherwise, returns
290
+ // false.
291
+ // REQUIRES: handle must have been returned by a method on *this.
292
+ virtual bool Ref(Handle* handle) = 0;
293
+
294
+ /**
295
+ * Release a mapping returned by a previous Lookup(). A released entry might
296
+ * still remain in cache in case it is later looked up by others. If
297
+ * erase_if_last_ref is set then it also erases it from the cache if there is
298
+ * no other reference to it. Erasing it should call the deleter function that
299
+ * was provided when the entry was inserted.
300
+ *
301
+ * Returns true if the entry was also erased.
302
+ */
303
+ // REQUIRES: handle must not have been released yet.
304
+ // REQUIRES: handle must have been returned by a method on *this.
305
+ virtual bool Release(Handle* handle, bool erase_if_last_ref = false) = 0;
306
+
307
+ // Return the object assiciated with a handle returned by a successful
308
+ // Lookup(). For historical reasons, this is also known at the "value"
309
+ // associated with the key.
310
+ // REQUIRES: handle must not have been released yet.
311
+ // REQUIRES: handle must have been returned by a method on *this.
312
+ virtual ObjectPtr Value(Handle* handle) = 0;
313
+
314
+ // If the cache contains the entry for the key, erase it. Note that the
315
+ // underlying entry will be kept around until all existing handles
316
+ // to it have been released.
317
+ virtual void Erase(const Slice& key) = 0;
318
+ // Return a new numeric id. May be used by multiple clients who are
319
+ // sharding the same cache to partition the key space. Typically the
320
+ // client will allocate a new id at startup and prepend the id to
321
+ // its cache keys.
322
+ virtual uint64_t NewId() = 0;
323
+
324
+ // sets the maximum configured capacity of the cache. When the new
325
+ // capacity is less than the old capacity and the existing usage is
326
+ // greater than new capacity, the implementation will do its best job to
327
+ // purge the released entries from the cache in order to lower the usage
328
+ virtual void SetCapacity(size_t capacity) = 0;
329
+
330
+ // Set whether to return error on insertion when cache reaches its full
331
+ // capacity.
332
+ virtual void SetStrictCapacityLimit(bool strict_capacity_limit) = 0;
333
+
334
+ // Get the flag whether to return error on insertion when cache reaches its
335
+ // full capacity.
336
+ virtual bool HasStrictCapacityLimit() const = 0;
337
+
338
+ // Returns the maximum configured capacity of the cache
339
+ virtual size_t GetCapacity() const = 0;
340
+
341
+ // Returns the memory size for the entries residing in the cache.
342
+ virtual size_t GetUsage() const = 0;
343
+
344
+ // Returns the number of entries currently tracked in the table. SIZE_MAX
345
+ // means "not supported." This is used for inspecting the load factor, along
346
+ // with GetTableAddressCount().
347
+ virtual size_t GetOccupancyCount() const { return SIZE_MAX; }
348
+
349
+ // Returns the number of ways the hash function is divided for addressing
350
+ // entries. Zero means "not supported." This is used for inspecting the load
351
+ // factor, along with GetOccupancyCount().
352
+ virtual size_t GetTableAddressCount() const { return 0; }
353
+
354
+ // Returns the memory size for a specific entry in the cache.
355
+ virtual size_t GetUsage(Handle* handle) const = 0;
356
+
357
+ // Returns the memory size for the entries in use by the system
358
+ virtual size_t GetPinnedUsage() const = 0;
359
+
360
+ // Returns the charge for the specific entry in the cache.
361
+ virtual size_t GetCharge(Handle* handle) const = 0;
362
+
363
+ // Returns the helper for the specified entry.
364
+ virtual const CacheItemHelper* GetCacheItemHelper(Handle* handle) const = 0;
365
+
366
+ // Call this on shutdown if you want to speed it up. Cache will disown
367
+ // any underlying data and will not free it on delete. This call will leak
368
+ // memory - call this only if you're shutting down the process.
369
+ // Any attempts of using cache after this call will fail terribly.
370
+ // Always delete the DB object before calling this method!
371
+ virtual void DisownData() {
372
+ // default implementation is noop
373
+ }
374
+
375
+ struct ApplyToAllEntriesOptions {
376
+ // If the Cache uses locks, setting `average_entries_per_lock` to
377
+ // a higher value suggests iterating over more entries each time a lock
378
+ // is acquired, likely reducing the time for ApplyToAllEntries but
379
+ // increasing latency for concurrent users of the Cache. Setting
380
+ // `average_entries_per_lock` to a smaller value could be helpful if
381
+ // callback is relatively expensive, such as using large data structures.
382
+ size_t average_entries_per_lock = 256;
383
+ };
384
+
385
+ // Apply a callback to all entries in the cache. The Cache must ensure
386
+ // thread safety but does not guarantee that a consistent snapshot of all
387
+ // entries is iterated over if other threads are operating on the Cache
388
+ // also.
389
+ virtual void ApplyToAllEntries(
390
+ const std::function<void(const Slice& key, ObjectPtr obj, size_t charge,
391
+ const CacheItemHelper* helper)>& callback,
392
+ const ApplyToAllEntriesOptions& opts) = 0;
393
+
394
+ // Remove all entries.
395
+ // Prerequisite: no entry is referenced.
396
+ virtual void EraseUnRefEntries() = 0;
397
+
398
+ virtual std::string GetPrintableOptions() const { return ""; }
399
+
400
+ // Check for any warnings or errors in the operation of the cache and
401
+ // report them to the logger. This is intended only to be called
402
+ // periodically so does not need to be very efficient. (Obscure calling
403
+ // conventions for Logger inherited from env.h)
404
+ virtual void ReportProblems(
405
+ const std::shared_ptr<Logger>& /*info_log*/) const {}
406
+
407
+ MemoryAllocator* memory_allocator() const { return memory_allocator_.get(); }
408
+
409
+ // EXPERIMENTAL
410
+ // The following APIs are experimental and might change in the future.
411
+
412
+ // Release a mapping returned by a previous Lookup(). The "useful"
413
+ // parameter specifies whether the data was actually used or not,
414
+ // which may be used by the cache implementation to decide whether
415
+ // to consider it as a hit for retention purposes. As noted elsewhere,
416
+ // "pending" handles require Wait()/WaitAll() before Release().
417
+ virtual bool Release(Handle* handle, bool /*useful*/,
418
+ bool erase_if_last_ref) {
419
+ return Release(handle, erase_if_last_ref);
420
+ }
421
+
422
+ // Determines if the handle returned by Lookup() can give a value without
423
+ // blocking, though Wait()/WaitAll() might be required to publish it to
424
+ // Value(). See secondary cache compatible Lookup() above for details.
425
+ // This call is not thread safe on "pending" handles.
426
+ virtual bool IsReady(Handle* /*handle*/) { return true; }
427
+
428
+ // Convert a "pending" handle into a full thread-shareable handle by
429
+ // * If necessary, wait until secondary cache finishes loading the value.
430
+ // * Construct the object for primary cache and set it in the handle.
431
+ // Even after Wait() on a pending handle, the caller must check for
432
+ // Value() == nullptr in case of failure. This call is not thread-safe
433
+ // on pending handles. This call has no effect on non-pending handles.
434
+ // See secondary cache compatible Lookup() above for details.
435
+ virtual void Wait(Handle* /*handle*/) {}
436
+
437
+ // Wait for a vector of handles to become ready. As with Wait(), the user
438
+ // should check the Value() of each handle for nullptr. This call is not
439
+ // thread-safe on pending handles.
440
+ virtual void WaitAll(std::vector<Handle*>& /*handles*/) {}
441
+
442
+ private:
443
+ std::shared_ptr<MemoryAllocator> memory_allocator_;
444
+ };
445
+
446
+ // A wrapper around Cache that can easily be extended with instrumentation,
447
+ // etc.
448
+ class CacheWrapper : public Cache {
449
+ public:
450
+ explicit CacheWrapper(std::shared_ptr<Cache> target)
451
+ : target_(std::move(target)) {}
452
+
453
+ // Only function that derived class must provide
454
+ // const char* Name() const override { ... }
455
+
456
+ Status Insert(const Slice& key, ObjectPtr value,
457
+ const CacheItemHelper* helper, size_t charge,
458
+ Handle** handle = nullptr,
459
+ Priority priority = Priority::LOW) override {
460
+ return target_->Insert(key, value, helper, charge, handle, priority);
461
+ }
462
+
463
+ Handle* Lookup(const Slice& key, const CacheItemHelper* helper,
464
+ CreateContext* create_context,
465
+ Priority priority = Priority::LOW, bool wait = true,
466
+ Statistics* stats = nullptr) override {
467
+ return target_->Lookup(key, helper, create_context, priority, wait, stats);
468
+ }
469
+
470
+ bool Ref(Handle* handle) override { return target_->Ref(handle); }
471
+
472
+ using Cache::Release;
473
+ bool Release(Handle* handle, bool erase_if_last_ref = false) override {
474
+ return target_->Release(handle, erase_if_last_ref);
475
+ }
476
+
477
+ ObjectPtr Value(Handle* handle) override { return target_->Value(handle); }
478
+
479
+ void Erase(const Slice& key) override { target_->Erase(key); }
480
+ uint64_t NewId() override { return target_->NewId(); }
481
+
482
+ void SetCapacity(size_t capacity) override { target_->SetCapacity(capacity); }
483
+
484
+ void SetStrictCapacityLimit(bool strict_capacity_limit) override {
485
+ target_->SetStrictCapacityLimit(strict_capacity_limit);
486
+ }
487
+
488
+ bool HasStrictCapacityLimit() const override {
489
+ return target_->HasStrictCapacityLimit();
490
+ }
491
+
492
+ size_t GetCapacity() const override { return target_->GetCapacity(); }
493
+
494
+ size_t GetUsage() const override { return target_->GetUsage(); }
495
+
496
+ size_t GetUsage(Handle* handle) const override {
497
+ return target_->GetUsage(handle);
498
+ }
499
+
500
+ size_t GetPinnedUsage() const override { return target_->GetPinnedUsage(); }
501
+
502
+ size_t GetCharge(Handle* handle) const override {
503
+ return target_->GetCharge(handle);
504
+ }
505
+
506
+ const CacheItemHelper* GetCacheItemHelper(Handle* handle) const override {
507
+ return target_->GetCacheItemHelper(handle);
508
+ }
509
+
510
+ void ApplyToAllEntries(
511
+ const std::function<void(const Slice& key, ObjectPtr value, size_t charge,
512
+ const CacheItemHelper* helper)>& callback,
513
+ const ApplyToAllEntriesOptions& opts) override {
514
+ target_->ApplyToAllEntries(callback, opts);
515
+ }
516
+
517
+ void EraseUnRefEntries() override { target_->EraseUnRefEntries(); }
518
+
519
+ protected:
520
+ std::shared_ptr<Cache> target_;
521
+ };
522
+
523
+ // Useful for cache entries requiring no clean-up, such as for cache
524
+ // reservations
525
+ inline constexpr Cache::CacheItemHelper kNoopCacheItemHelper{};
526
+
527
+ } // namespace ROCKSDB_NAMESPACE
@@ -27,14 +27,11 @@ enum CompactionStyle : char {
27
27
  // level based compaction style
28
28
  kCompactionStyleLevel = 0x0,
29
29
  // Universal compaction style
30
- // Not supported in ROCKSDB_LITE.
31
30
  kCompactionStyleUniversal = 0x1,
32
31
  // FIFO compaction style
33
- // Not supported in ROCKSDB_LITE
34
32
  kCompactionStyleFIFO = 0x2,
35
33
  // Disable background compaction. Compaction jobs are submitted
36
34
  // via CompactFiles().
37
- // Not supported in ROCKSDB_LITE
38
35
  kCompactionStyleNone = 0x3,
39
36
  };
40
37
 
@@ -753,7 +750,7 @@ struct AdvancedColumnFamilyOptions {
753
750
  // Related options that were originally here but now moved include:
754
751
  // no_block_cache
755
752
  // block_cache
756
- // block_cache_compressed
753
+ // block_cache_compressed (removed)
757
754
  // block_size
758
755
  // block_size_deviation
759
756
  // block_restart_interval
@@ -1001,10 +1001,6 @@ extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_no_block_cache(
1001
1001
  extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_block_cache(
1002
1002
  rocksdb_block_based_table_options_t* options, rocksdb_cache_t* block_cache);
1003
1003
  extern ROCKSDB_LIBRARY_API void
1004
- rocksdb_block_based_options_set_block_cache_compressed(
1005
- rocksdb_block_based_table_options_t* options,
1006
- rocksdb_cache_t* block_cache_compressed);
1007
- extern ROCKSDB_LIBRARY_API void
1008
1004
  rocksdb_block_based_options_set_whole_key_filtering(
1009
1005
  rocksdb_block_based_table_options_t*, unsigned char);
1010
1006
  extern ROCKSDB_LIBRARY_API void rocksdb_block_based_options_set_format_version(