@nxtedition/rocksdb 8.2.8 → 9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/binding.cc +0 -21
  2. package/deps/rocksdb/rocksdb/CMakeLists.txt +20 -10
  3. package/deps/rocksdb/rocksdb/Makefile +37 -25
  4. package/deps/rocksdb/rocksdb/README.md +29 -0
  5. package/deps/rocksdb/rocksdb/TARGETS +25 -2
  6. package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
  7. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +229 -74
  8. package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
  9. package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
  10. package/deps/rocksdb/rocksdb/cache/cache_test.cc +58 -95
  11. package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
  12. package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
  13. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2683 -496
  14. package/deps/rocksdb/rocksdb/cache/clock_cache.h +580 -159
  15. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +145 -42
  16. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +20 -1
  17. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +391 -17
  18. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
  19. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +309 -212
  20. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -32
  21. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +439 -12
  22. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +44 -2
  23. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +11 -1
  24. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +16 -3
  25. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
  26. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
  27. package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
  28. package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
  29. package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
  30. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +28 -12
  31. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
  32. package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -1
  33. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
  34. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
  35. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
  36. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
  37. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +20 -22
  38. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
  39. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
  40. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
  41. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
  42. package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +8 -0
  43. package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
  44. package/deps/rocksdb/rocksdb/db/builder.cc +35 -10
  45. package/deps/rocksdb/rocksdb/db/c.cc +233 -6
  46. package/deps/rocksdb/rocksdb/db/c_test.c +140 -6
  47. package/deps/rocksdb/rocksdb/db/column_family.cc +110 -51
  48. package/deps/rocksdb/rocksdb/db/column_family.h +34 -2
  49. package/deps/rocksdb/rocksdb/db/column_family_test.cc +314 -7
  50. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
  51. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +106 -23
  52. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +47 -9
  53. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +10 -11
  54. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
  55. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
  56. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +148 -60
  57. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +22 -7
  58. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
  59. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -4
  60. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +33 -23
  61. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +14 -5
  62. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
  63. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
  64. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +90 -4
  65. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +170 -95
  66. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
  67. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +32 -58
  68. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +3 -1
  69. package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
  70. package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
  71. package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
  72. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
  73. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +46 -10
  74. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +13 -3
  75. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +74 -15
  76. package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
  77. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +850 -44
  78. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
  79. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +275 -1
  80. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +52 -19
  81. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
  82. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +733 -320
  83. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +155 -66
  84. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +516 -155
  85. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +8 -4
  86. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
  87. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +17 -4
  88. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +100 -35
  89. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +95 -50
  90. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -9
  91. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +136 -79
  92. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +6 -95
  93. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +31 -22
  94. package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
  95. package/deps/rocksdb/rocksdb/db/db_iter.cc +85 -57
  96. package/deps/rocksdb/rocksdb/db/db_iter.h +11 -2
  97. package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
  98. package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
  99. package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
  100. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
  101. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +193 -7
  102. package/deps/rocksdb/rocksdb/db/db_options_test.cc +294 -26
  103. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
  104. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +364 -0
  105. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +13 -3
  106. package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
  107. package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
  108. package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
  109. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
  110. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
  111. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +282 -167
  112. package/deps/rocksdb/rocksdb/db/db_test.cc +180 -49
  113. package/deps/rocksdb/rocksdb/db/db_test2.cc +84 -12
  114. package/deps/rocksdb/rocksdb/db/db_test_util.cc +25 -12
  115. package/deps/rocksdb/rocksdb/db/db_test_util.h +45 -2
  116. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +14 -1
  117. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +245 -0
  118. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +480 -1
  119. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
  120. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
  121. package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
  122. package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
  123. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
  124. package/deps/rocksdb/rocksdb/db/deletefile_test.cc +2 -0
  125. package/deps/rocksdb/rocksdb/db/error_handler.cc +67 -34
  126. package/deps/rocksdb/rocksdb/db/error_handler.h +13 -9
  127. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
  128. package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
  129. package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
  130. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
  131. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
  132. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +144 -4
  133. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
  134. package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
  135. package/deps/rocksdb/rocksdb/db/flush_job.cc +105 -17
  136. package/deps/rocksdb/rocksdb/db/flush_job.h +27 -4
  137. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -12
  138. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
  139. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
  140. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
  141. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
  142. package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
  143. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
  144. package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
  145. package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
  146. package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
  147. package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
  148. package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
  149. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -3
  150. package/deps/rocksdb/rocksdb/db/memtable.cc +70 -83
  151. package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
  152. package/deps/rocksdb/rocksdb/db/memtable_list.cc +45 -11
  153. package/deps/rocksdb/rocksdb/db/memtable_list.h +43 -2
  154. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +91 -5
  155. package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
  156. package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
  157. package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
  158. package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
  159. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +5 -2
  160. package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
  161. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -0
  162. package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
  163. package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
  164. package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
  165. package/deps/rocksdb/rocksdb/db/repair.cc +25 -7
  166. package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
  167. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +459 -74
  168. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
  169. package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
  170. package/deps/rocksdb/rocksdb/db/table_cache.cc +76 -54
  171. package/deps/rocksdb/rocksdb/db/table_cache.h +18 -12
  172. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
  173. package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
  174. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
  175. package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
  176. package/deps/rocksdb/rocksdb/db/version_edit.h +58 -10
  177. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
  178. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
  179. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
  180. package/deps/rocksdb/rocksdb/db/version_set.cc +207 -110
  181. package/deps/rocksdb/rocksdb/db/version_set.h +36 -15
  182. package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
  183. package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -26
  184. package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
  185. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
  186. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
  187. package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
  188. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
  189. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
  190. package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
  191. package/deps/rocksdb/rocksdb/db/write_batch.cc +55 -20
  192. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
  193. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
  194. package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
  195. package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
  196. package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
  197. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
  198. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +37 -13
  199. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +110 -58
  200. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
  201. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +68 -17
  202. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
  203. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +8 -1
  204. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +429 -237
  205. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +13 -6
  206. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +21 -14
  207. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
  208. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
  209. package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -6
  210. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
  211. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +29 -38
  212. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +302 -101
  213. package/deps/rocksdb/rocksdb/env/env.cc +6 -2
  214. package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
  215. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
  216. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
  217. package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
  218. package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
  219. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +79 -0
  220. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
  221. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
  222. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
  223. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +100 -70
  224. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +64 -18
  225. package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
  226. package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
  227. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1225 -97
  228. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +72 -33
  229. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
  230. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
  231. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
  232. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +40 -14
  233. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +163 -91
  234. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +112 -2
  235. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +108 -16
  236. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
  237. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
  238. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +42 -2
  239. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
  240. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +92 -12
  241. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +34 -4
  242. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
  243. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +91 -13
  244. package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
  245. package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
  246. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +7 -0
  247. package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
  248. package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
  249. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +130 -22
  250. package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
  251. package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
  252. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +92 -9
  253. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
  254. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
  255. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +37 -2
  256. package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
  257. package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
  258. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
  259. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +20 -3
  260. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +7 -0
  261. package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
  262. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
  263. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
  264. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
  265. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
  266. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +42 -2
  267. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
  268. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  269. package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +53 -2
  270. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -2
  271. package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
  272. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +4 -3
  273. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
  274. package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
  275. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
  276. package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
  277. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +22 -1
  278. package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
  279. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
  280. package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
  281. package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
  282. package/deps/rocksdb/rocksdb/options/customizable_test.cc +6 -1
  283. package/deps/rocksdb/rocksdb/options/db_options.cc +54 -2
  284. package/deps/rocksdb/rocksdb/options/db_options.h +4 -0
  285. package/deps/rocksdb/rocksdb/options/options.cc +15 -1
  286. package/deps/rocksdb/rocksdb/options/options_helper.cc +18 -0
  287. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +14 -4
  288. package/deps/rocksdb/rocksdb/options/options_test.cc +14 -1
  289. package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
  290. package/deps/rocksdb/rocksdb/port/README +10 -0
  291. package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
  292. package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
  293. package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
  294. package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
  295. package/deps/rocksdb/rocksdb/port/stack_trace.cc +32 -12
  296. package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
  297. package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
  298. package/deps/rocksdb/rocksdb/src.mk +10 -1
  299. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  300. package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
  301. package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
  302. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +116 -43
  303. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +9 -6
  304. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +321 -49
  305. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +98 -4
  306. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +233 -98
  307. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +58 -23
  308. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
  309. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +52 -24
  310. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
  311. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
  312. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
  313. package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +3 -1
  314. package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
  315. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -18
  316. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +20 -8
  317. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +232 -71
  318. package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
  319. package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
  320. package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
  321. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  322. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
  323. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
  324. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -2
  325. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
  326. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +36 -19
  327. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
  328. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
  329. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +4 -3
  330. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +11 -7
  331. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
  332. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
  333. package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
  334. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +14 -13
  335. package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
  336. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +9 -2
  337. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
  338. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
  339. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
  340. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
  341. package/deps/rocksdb/rocksdb/table/format.cc +175 -33
  342. package/deps/rocksdb/rocksdb/table/format.h +63 -10
  343. package/deps/rocksdb/rocksdb/table/get_context.cc +52 -89
  344. package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
  345. package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
  346. package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
  347. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +22 -2
  348. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
  349. package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
  350. package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
  351. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
  352. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
  353. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
  354. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
  355. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +45 -9
  356. package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
  357. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +24 -1
  358. package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
  359. package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
  360. package/deps/rocksdb/rocksdb/table/table_reader.h +6 -0
  361. package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
  362. package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
  363. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
  364. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
  365. package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
  366. package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
  367. package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
  368. package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +3 -3
  369. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +87 -65
  370. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +221 -33
  371. package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
  372. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
  373. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
  374. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -11
  375. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
  376. package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
  377. package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
  378. package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
  379. package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
  380. package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
  381. package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
  382. package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
  383. package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
  384. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
  385. package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
  386. package/deps/rocksdb/rocksdb/util/bloom_test.cc +32 -11
  387. package/deps/rocksdb/rocksdb/util/cast_util.h +24 -0
  388. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
  389. package/deps/rocksdb/rocksdb/util/comparator.cc +55 -8
  390. package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
  391. package/deps/rocksdb/rocksdb/util/compression.h +119 -35
  392. package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
  393. package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
  394. package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -1
  395. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
  396. package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
  397. package/deps/rocksdb/rocksdb/util/hash.h +7 -3
  398. package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
  399. package/deps/rocksdb/rocksdb/util/math.h +58 -6
  400. package/deps/rocksdb/rocksdb/util/math128.h +29 -7
  401. package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
  402. package/deps/rocksdb/rocksdb/util/overload.h +23 -0
  403. package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
  404. package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
  405. package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
  406. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
  407. package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
  408. package/deps/rocksdb/rocksdb/util/status.cc +1 -0
  409. package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
  410. package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
  411. package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
  412. package/deps/rocksdb/rocksdb/util/thread_operation.h +10 -1
  413. package/deps/rocksdb/rocksdb/util/udt_util.cc +385 -0
  414. package/deps/rocksdb/rocksdb/util/udt_util.h +192 -1
  415. package/deps/rocksdb/rocksdb/util/udt_util_test.cc +461 -0
  416. package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
  417. package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
  418. package/deps/rocksdb/rocksdb/util/xxhash.h +0 -3
  419. package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
  420. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
  421. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +71 -26
  422. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
  423. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
  424. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
  425. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
  426. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
  427. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
  428. package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +1 -0
  429. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +20 -16
  430. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
  431. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
  432. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +7 -1
  433. package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
  434. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +12 -3
  435. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
  436. package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
  437. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
  438. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
  439. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  440. package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
  441. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
  442. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
  443. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
  444. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +272 -33
  445. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
  446. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -1
  447. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
  448. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
  449. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +195 -23
  450. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +19 -12
  451. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +88 -1
  452. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
  453. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +43 -17
  454. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
  455. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +73 -24
  456. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
  457. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
  458. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +41 -12
  459. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
  460. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +15 -8
  461. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
  462. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
  463. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
  464. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
  465. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +59 -28
  466. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
  467. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
  468. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +111 -14
  469. package/deps/rocksdb/rocksdb.gyp +6 -2
  470. package/index.js +0 -8
  471. package/package.json +1 -1
  472. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  473. package/prebuilds/linux-x64/node.napi.node +0 -0
  474. package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
  475. package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
  476. package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
  477. package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
  478. package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
  479. package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
  480. package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
  481. package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
  482. package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
  483. package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
@@ -94,6 +94,7 @@ AdvancedColumnFamilyOptions::AdvancedColumnFamilyOptions(const Options& options)
94
94
  ttl(options.ttl),
95
95
  periodic_compaction_seconds(options.periodic_compaction_seconds),
96
96
  sample_for_compression(options.sample_for_compression),
97
+ default_temperature(options.default_temperature),
97
98
  preclude_last_level_data_seconds(
98
99
  options.preclude_last_level_data_seconds),
99
100
  preserve_internal_time_seconds(options.preserve_internal_time_seconds),
@@ -412,6 +413,17 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
412
413
  ROCKS_LOG_HEADER(log,
413
414
  " Options.periodic_compaction_seconds: %" PRIu64,
414
415
  periodic_compaction_seconds);
416
+ const auto& it_temp = temperature_to_string.find(default_temperature);
417
+ std::string str_default_temperature;
418
+ if (it_temp == temperature_to_string.end()) {
419
+ assert(false);
420
+ str_default_temperature = "unknown_temperature";
421
+ } else {
422
+ str_default_temperature = it_temp->second;
423
+ }
424
+ ROCKS_LOG_HEADER(log,
425
+ " Options.default_temperature: %s",
426
+ str_default_temperature.c_str());
415
427
  ROCKS_LOG_HEADER(log, " Options.preclude_last_level_data_seconds: %" PRIu64,
416
428
  preclude_last_level_data_seconds);
417
429
  ROCKS_LOG_HEADER(log, " Options.preserve_internal_time_seconds: %" PRIu64,
@@ -448,8 +460,10 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
448
460
  ? "flush only"
449
461
  : "disabled");
450
462
  }
451
- ROCKS_LOG_HEADER(log, "Options.experimental_mempurge_threshold: %f",
463
+ ROCKS_LOG_HEADER(log, " Options.experimental_mempurge_threshold: %f",
452
464
  experimental_mempurge_threshold);
465
+ ROCKS_LOG_HEADER(log, " Options.memtable_max_range_deletions: %d",
466
+ memtable_max_range_deletions);
453
467
  } // ColumnFamilyOptions::Dump
454
468
 
455
469
  void Options::Dump(Logger* log) const {
@@ -4,6 +4,7 @@
4
4
  // (found in the LICENSE.Apache file in the root directory).
5
5
  #include "options/options_helper.h"
6
6
 
7
+ #include <atomic>
7
8
  #include <cassert>
8
9
  #include <cctype>
9
10
  #include <cstdlib>
@@ -60,6 +61,8 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
60
61
  options.paranoid_checks = immutable_db_options.paranoid_checks;
61
62
  options.flush_verify_memtable_count =
62
63
  immutable_db_options.flush_verify_memtable_count;
64
+ options.compaction_verify_record_count =
65
+ immutable_db_options.compaction_verify_record_count;
63
66
  options.track_and_verify_wals_in_manifest =
64
67
  immutable_db_options.track_and_verify_wals_in_manifest;
65
68
  options.verify_sst_unique_id_in_manifest =
@@ -176,6 +179,7 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
176
179
  options.lowest_used_cache_tier = immutable_db_options.lowest_used_cache_tier;
177
180
  options.enforce_single_del_contracts =
178
181
  immutable_db_options.enforce_single_del_contracts;
182
+ options.daily_offpeak_time_utc = mutable_db_options.daily_offpeak_time_utc;
179
183
  return options;
180
184
  }
181
185
 
@@ -208,6 +212,8 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
208
212
  moptions.memtable_protection_bytes_per_key;
209
213
  cf_opts->block_protection_bytes_per_key =
210
214
  moptions.block_protection_bytes_per_key;
215
+ cf_opts->bottommost_file_compaction_delay =
216
+ moptions.bottommost_file_compaction_delay;
211
217
 
212
218
  // Compaction related options
213
219
  cf_opts->disable_auto_compactions = moptions.disable_auto_compactions;
@@ -270,6 +276,7 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
270
276
  cf_opts->compression_per_level = moptions.compression_per_level;
271
277
  cf_opts->last_level_temperature = moptions.last_level_temperature;
272
278
  cf_opts->bottommost_temperature = moptions.last_level_temperature;
279
+ cf_opts->memtable_max_range_deletions = moptions.memtable_max_range_deletions;
273
280
  }
274
281
 
275
282
  void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
@@ -312,6 +319,7 @@ void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
312
319
  ioptions.preserve_internal_time_seconds;
313
320
  cf_opts->persist_user_defined_timestamps =
314
321
  ioptions.persist_user_defined_timestamps;
322
+ cf_opts->default_temperature = ioptions.default_temperature;
315
323
 
316
324
  // TODO(yhchiang): find some way to handle the following derived options
317
325
  // * max_file_size
@@ -426,6 +434,10 @@ static bool ParseOptionHelper(void* opt_address, const OptionType& opt_type,
426
434
  case OptionType::kSizeT:
427
435
  PutUnaligned(static_cast<size_t*>(opt_address), ParseSizeT(value));
428
436
  break;
437
+ case OptionType::kAtomicInt:
438
+ static_cast<std::atomic<int>*>(opt_address)
439
+ ->store(ParseInt(value), std::memory_order_release);
440
+ break;
429
441
  case OptionType::kString:
430
442
  *static_cast<std::string*>(opt_address) = value;
431
443
  break;
@@ -515,6 +527,10 @@ bool SerializeSingleOptionHelper(const void* opt_address,
515
527
  case OptionType::kDouble:
516
528
  *value = std::to_string(*(static_cast<const double*>(opt_address)));
517
529
  break;
530
+ case OptionType::kAtomicInt:
531
+ *value = std::to_string(static_cast<const std::atomic<int>*>(opt_address)
532
+ ->load(std::memory_order_acquire));
533
+ break;
518
534
  case OptionType::kString:
519
535
  *value =
520
536
  EscapeOptionString(*(static_cast<const std::string*>(opt_address)));
@@ -1163,6 +1179,8 @@ static bool AreOptionsEqual(OptionType type, const void* this_offset,
1163
1179
  GetUnaligned(static_cast<const size_t*>(that_offset), &v2);
1164
1180
  return (v1 == v2);
1165
1181
  }
1182
+ case OptionType::kAtomicInt:
1183
+ return IsOptionEqual<std::atomic<int>>(this_offset, that_offset);
1166
1184
  case OptionType::kString:
1167
1185
  return IsOptionEqual<std::string>(this_offset, that_offset);
1168
1186
  case OptionType::kDouble:
@@ -252,6 +252,7 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
252
252
  sizeof(FileTypeSet)},
253
253
  {offsetof(struct DBOptions, compaction_service),
254
254
  sizeof(std::shared_ptr<CompactionService>)},
255
+ {offsetof(struct DBOptions, daily_offpeak_time_utc), sizeof(std::string)},
255
256
  };
256
257
 
257
258
  char* options_ptr = new char[sizeof(DBOptions)];
@@ -308,6 +309,7 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
308
309
  "writable_file_max_buffer_size=1048576;"
309
310
  "paranoid_checks=true;"
310
311
  "flush_verify_memtable_count=true;"
312
+ "compaction_verify_record_count=true;"
311
313
  "track_and_verify_wals_in_manifest=true;"
312
314
  "verify_sst_unique_id_in_manifest=true;"
313
315
  "is_fd_close_on_exec=false;"
@@ -364,7 +366,8 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
364
366
  "db_host_id=hostname;"
365
367
  "lowest_used_cache_tier=kNonVolatileBlockTier;"
366
368
  "allow_data_in_errors=false;"
367
- "enforce_single_del_contracts=false;",
369
+ "enforce_single_del_contracts=false;"
370
+ "daily_offpeak_time_utc=08:30-19:00;",
368
371
  new_options));
369
372
 
370
373
  ASSERT_EQ(unset_bytes_base, NumUnsetBytes(new_options_ptr, sizeof(DBOptions),
@@ -377,6 +380,8 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
377
380
  delete[] new_options_ptr;
378
381
  }
379
382
 
383
+ // status check adds CXX flag -fno-elide-constructors which fails this test.
384
+ #ifndef ROCKSDB_ASSERT_STATUS_CHECKED
380
385
  // If the test fails, likely a new option is added to ColumnFamilyOptions
381
386
  // but it cannot be set through GetColumnFamilyOptionsFromString(), or the
382
387
  // test is not updated accordingly.
@@ -501,11 +506,12 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
501
506
  "compression=kNoCompression;"
502
507
  "compression_opts={max_dict_buffer_bytes=5;use_zstd_dict_trainer=true;"
503
508
  "enabled=false;parallel_threads=6;zstd_max_train_bytes=7;strategy=8;max_"
504
- "dict_bytes=9;level=10;window_bits=11;max_compressed_bytes_per_kb=987;};"
509
+ "dict_bytes=9;level=10;window_bits=11;max_compressed_bytes_per_kb=987;"
510
+ "checksum=true};"
505
511
  "bottommost_compression_opts={max_dict_buffer_bytes=4;use_zstd_dict_"
506
512
  "trainer=true;enabled=true;parallel_threads=5;zstd_max_train_bytes=6;"
507
513
  "strategy=7;max_dict_bytes=8;level=9;window_bits=10;max_compressed_bytes_"
508
- "per_kb=876;};"
514
+ "per_kb=876;checksum=true};"
509
515
  "bottommost_compression=kDisableCompressionOption;"
510
516
  "level0_stop_writes_trigger=33;"
511
517
  "num_levels=99;"
@@ -548,6 +554,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
548
554
  "prepopulate_blob_cache=kDisable;"
549
555
  "bottommost_temperature=kWarm;"
550
556
  "last_level_temperature=kWarm;"
557
+ "default_temperature=kHot;"
551
558
  "preclude_last_level_data_seconds=86400;"
552
559
  "preserve_internal_time_seconds=86400;"
553
560
  "compaction_options_fifo={max_table_files_size=3;allow_"
@@ -556,7 +563,9 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
556
563
  "blob_cache=1M;"
557
564
  "memtable_protection_bytes_per_key=2;"
558
565
  "persist_user_defined_timestamps=true;"
559
- "block_protection_bytes_per_key=1;",
566
+ "block_protection_bytes_per_key=1;"
567
+ "memtable_max_range_deletions=999999;"
568
+ "bottommost_file_compaction_delay=7200;",
560
569
  new_options));
561
570
 
562
571
  ASSERT_NE(new_options->blob_cache.get(), nullptr);
@@ -639,6 +648,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
639
648
  delete[] mcfo2_ptr;
640
649
  delete[] cfo_clean_ptr;
641
650
  }
651
+ #endif // !ROCKSDB_ASSERT_STATUS_CHECKED
642
652
  #endif // !ROCKSDB_UBSAN_RUN
643
653
  #endif // !__clang__
644
654
  #endif // OS_LINUX || OS_WIN
@@ -130,7 +130,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
130
130
  {"blob_file_starting_level", "1"},
131
131
  {"prepopulate_blob_cache", "kDisable"},
132
132
  {"last_level_temperature", "kWarm"},
133
+ {"default_temperature", "kHot"},
133
134
  {"persist_user_defined_timestamps", "true"},
135
+ {"memtable_max_range_deletions", "0"},
134
136
  };
135
137
 
136
138
  std::unordered_map<std::string, std::string> db_options_map = {
@@ -176,6 +178,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
176
178
  {"wal_bytes_per_sync", "48"},
177
179
  {"strict_bytes_per_sync", "true"},
178
180
  {"preserve_deletes", "false"},
181
+ {"daily_offpeak_time_utc", ""},
179
182
  };
180
183
 
181
184
  ColumnFamilyOptions base_cf_opt;
@@ -283,7 +286,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
283
286
  ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
284
287
  ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
285
288
  ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
289
+ ASSERT_EQ(new_cf_opt.default_temperature, Temperature::kHot);
286
290
  ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
291
+ ASSERT_EQ(new_cf_opt.memtable_max_range_deletions, 0);
287
292
 
288
293
  cf_options_map["write_buffer_size"] = "hello";
289
294
  ASSERT_NOK(GetColumnFamilyOptionsFromMap(exact, base_cf_opt, cf_options_map,
@@ -354,6 +359,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
354
359
  ASSERT_EQ(new_db_opt.bytes_per_sync, static_cast<uint64_t>(47));
355
360
  ASSERT_EQ(new_db_opt.wal_bytes_per_sync, static_cast<uint64_t>(48));
356
361
  ASSERT_EQ(new_db_opt.strict_bytes_per_sync, true);
362
+ ASSERT_EQ(new_db_opt.daily_offpeak_time_utc, "");
357
363
 
358
364
  db_options_map["max_open_files"] = "hello";
359
365
  Status s =
@@ -875,6 +881,7 @@ TEST_F(OptionsTest, OldInterfaceTest) {
875
881
  {"track_and_verify_wals_in_manifest", "true"},
876
882
  {"verify_sst_unique_id_in_manifest", "true"},
877
883
  {"max_open_files", "32"},
884
+ {"daily_offpeak_time_utc", "06:30-23:30"},
878
885
  };
879
886
 
880
887
  ConfigOptions db_config_options(base_db_opt);
@@ -905,11 +912,13 @@ TEST_F(OptionsTest, OldInterfaceTest) {
905
912
  db_config_options.ignore_unknown_options = false;
906
913
  ASSERT_OK(GetDBOptionsFromString(
907
914
  db_config_options, base_db_opt,
908
- "create_if_missing=false;error_if_exists=false;max_open_files=42;",
915
+ "create_if_missing=false;error_if_exists=false;max_open_files=42;"
916
+ "daily_offpeak_time_utc=08:30-19:00;",
909
917
  &new_db_opt));
910
918
  ASSERT_EQ(new_db_opt.create_if_missing, false);
911
919
  ASSERT_EQ(new_db_opt.error_if_exists, false);
912
920
  ASSERT_EQ(new_db_opt.max_open_files, 42);
921
+ ASSERT_EQ(new_db_opt.daily_offpeak_time_utc, "08:30-19:00");
913
922
  s = GetDBOptionsFromString(
914
923
  db_config_options, base_db_opt,
915
924
  "create_if_missing=false;error_if_exists=false;max_open_files=42;"
@@ -2337,7 +2346,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
2337
2346
  {"blob_file_starting_level", "1"},
2338
2347
  {"prepopulate_blob_cache", "kDisable"},
2339
2348
  {"last_level_temperature", "kWarm"},
2349
+ {"default_temperature", "kHot"},
2340
2350
  {"persist_user_defined_timestamps", "true"},
2351
+ {"memtable_max_range_deletions", "0"},
2341
2352
  };
2342
2353
 
2343
2354
  std::unordered_map<std::string, std::string> db_options_map = {
@@ -2488,7 +2499,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
2488
2499
  ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
2489
2500
  ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
2490
2501
  ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
2502
+ ASSERT_EQ(new_cf_opt.default_temperature, Temperature::kHot);
2491
2503
  ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
2504
+ ASSERT_EQ(new_cf_opt.memtable_max_range_deletions, 0);
2492
2505
 
2493
2506
  cf_options_map["write_buffer_size"] = "hello";
2494
2507
  ASSERT_NOK(GetColumnFamilyOptionsFromMap(cf_config_options, base_cf_opt,
@@ -0,0 +1,43 @@
1
+ ## Building external plugins together with RocksDB
2
+
3
+ RocksDB offers several plugin interfaces for developers to customize its behavior. One difficulty developers face is how to make their plugin available to end users. The approach discussed here involves building the external code together with the RocksDB code into a single binary. Note another approach we plan to support involves loading plugins dynamically from shared libraries.
4
+
5
+ ### Discovery
6
+
7
+ We hope developers will mention their work in "PLUGINS.md" so users can easily discover and reuse solutions for customizing RocksDB.
8
+
9
+ ### Directory organization
10
+
11
+ External plugins will be linked according to their name into a subdirectory of "plugin/". For example, a plugin called "dedupfs" would be linked into "plugin/dedupfs/".
12
+
13
+ ### Build standard
14
+
15
+ Currently the only supported build system are make and cmake.
16
+
17
+ For make, files in the plugin directory ending in the .mk extension can define the following variables.
18
+
19
+ * `$(PLUGIN_NAME)_SOURCES`: these files will be compiled and linked with RocksDB. They can access RocksDB public header files.
20
+ * `$(PLUGIN_NAME)_HEADERS`: these files will be installed in the RocksDB header directory. Their paths will be prefixed by "rocksdb/plugin/$(PLUGIN_NAME)/".
21
+ * `$(PLUGIN_NAME)_LDFLAGS`: these flags will be passed to the final link step. For example, library dependencies can be propagated here, or symbols can be forcibly included, e.g., for static registration.
22
+ * `$(PLUGIN_NAME)_CXXFLAGS`: these flags will be passed to the compiler. For example, they can specify locations of header files in non-standard locations.
23
+
24
+ Users will run the usual make commands from the RocksDB directory, specifying the plugins to include in a space-separated list in the variable `ROCKSDB_PLUGINS`.
25
+
26
+ For CMake, the CMakeLists.txt file in the plugin directory can define the following variables.
27
+
28
+ * `${PLUGIN_NAME}_SOURCES`: these files will be compiled and linked with RocksDB. They can access RocksDB public header files.
29
+ * `${PLUGIN_NAME}_COMPILE_FLAGS`: these flags will be passed to the compiler. For example, they can specify locations of header files in non-standard locations.
30
+ * `${PLUGIN_NAME}_INCLUDE_PATHS`: paths to directories to search for plugin-specific header files during compilation.
31
+ * `${PLUGIN_NAME}_LIBS`: list of library names required to build the plugin, e.g. `dl`, `java`, `jvm`, `rados`, etc. CMake will generate proper flags for linking.
32
+ * `${PLUGIN_NAME}_LINK_PATHS`: list of paths for the linker to search for required libraries in additional to standard locations.
33
+ * `${PLUGIN_NAME}_CMAKE_SHARED_LINKER_FLAGS` additional linker flags used to generate shared libraries. For example, symbols can be forcibly included, e.g., for static registration.
34
+ * `${PLUGIN_NAME}_CMAKE_EXE_LINKER_FLAGS`: additional linker flags used to generate executables. For example, symbols can be forcibly included, e.g., for static registration.
35
+
36
+ Users will run the usual cmake commands, specifying the plugins to include in a space-separated list in the command line variable `ROCKSDB_PLUGINS` when invoking cmake.
37
+ ```
38
+ cmake .. -DROCKSDB_PLUGINS="dedupfs hdfs rados"
39
+ ```
40
+
41
+ ### Example
42
+
43
+ For a working example, see [Dedupfs](https://github.com/ajkr/dedupfs).
@@ -0,0 +1,10 @@
1
+ This directory contains interfaces and implementations that isolate the
2
+ rest of the package from platform details.
3
+
4
+ Code in the rest of the package includes "port.h" from this directory.
5
+ "port.h" in turn includes a platform specific "port_<platform>.h" file
6
+ that provides the platform specific implementation.
7
+
8
+ See port_posix.h for an example of what must be provided in a platform
9
+ specific header file.
10
+
@@ -14,6 +14,7 @@
14
14
  #endif // OS_WIN
15
15
 
16
16
  #include <cstdint>
17
+ #include <utility>
17
18
 
18
19
  #include "rocksdb/rocksdb_namespace.h"
19
20
 
@@ -67,4 +68,23 @@ class MemMapping {
67
68
  static MemMapping AllocateAnonymous(size_t length, bool huge);
68
69
  };
69
70
 
71
+ // Simple MemMapping wrapper that presents the memory as an array of T.
72
+ // For example,
73
+ // TypedMemMapping<uint64_t> arr = MemMapping::AllocateLazyZeroed(num_bytes);
74
+ template <typename T>
75
+ class TypedMemMapping : public MemMapping {
76
+ public:
77
+ /*implicit*/ TypedMemMapping(MemMapping&& v) noexcept
78
+ : MemMapping(std::move(v)) {}
79
+ TypedMemMapping& operator=(MemMapping&& v) noexcept {
80
+ MemMapping& base = *this;
81
+ base = std::move(v);
82
+ }
83
+
84
+ inline T* Get() const { return static_cast<T*>(MemMapping::Get()); }
85
+ inline size_t Count() const { return MemMapping::Length() / sizeof(T); }
86
+
87
+ inline T& operator[](size_t index) const { return Get()[index]; }
88
+ };
89
+
70
90
  } // namespace ROCKSDB_NAMESPACE
@@ -43,7 +43,7 @@ class Mutex {
43
43
  // Optionally crash if this thread does not hold this mutex.
44
44
  // The implementation must be fast, especially if NDEBUG is
45
45
  // defined. The implementation is allowed to skip all checks.
46
- void AssertHeld();
46
+ void AssertHeld() const;
47
47
  };
48
48
 
49
49
  class CondVar {
@@ -100,7 +100,7 @@ bool Mutex::TryLock() {
100
100
  return ret;
101
101
  }
102
102
 
103
- void Mutex::AssertHeld() {
103
+ void Mutex::AssertHeld() const {
104
104
  #ifndef NDEBUG
105
105
  assert(locked_);
106
106
  #endif
@@ -109,9 +109,9 @@ class Mutex {
109
109
 
110
110
  bool TryLock();
111
111
 
112
- // this will assert if the mutex is not locked
113
- // it does NOT verify that mutex is held by a calling thread
114
- void AssertHeld();
112
+ // This will fail assertion if the mutex is not locked.
113
+ // It does NOT verify that mutex is held by a calling thread.
114
+ void AssertHeld() const;
115
115
 
116
116
  // Also implement std Lockable
117
117
  inline void lock() { Lock(); }
@@ -139,7 +139,7 @@ class RWMutex {
139
139
  void WriteLock();
140
140
  void ReadUnlock();
141
141
  void WriteUnlock();
142
- void AssertHeld() {}
142
+ void AssertHeld() const {}
143
143
 
144
144
  private:
145
145
  pthread_rwlock_t mu_; // the underlying platform mutex
@@ -149,6 +149,9 @@ class CondVar {
149
149
  public:
150
150
  explicit CondVar(Mutex* mu);
151
151
  ~CondVar();
152
+
153
+ Mutex* GetMutex() const { return mu_; }
154
+
152
155
  void Wait();
153
156
  // Timed condition wait. Returns true if timeout occurred.
154
157
  bool TimedWait(uint64_t abs_time_us);
@@ -31,6 +31,10 @@ void* SaveStack(int* /*num_frames*/, int /*first_frames_to_skip*/) {
31
31
  #include <string.h>
32
32
  #include <unistd.h>
33
33
 
34
+ #ifdef OS_OPENBSD
35
+ #include <sys/wait.h>
36
+ #include <sys/sysctl.h>
37
+ #endif // OS_OPENBSD
34
38
  #ifdef OS_FREEBSD
35
39
  #include <sys/sysctl.h>
36
40
  #endif // OS_FREEBSD
@@ -51,28 +55,39 @@ namespace port {
51
55
 
52
56
  namespace {
53
57
 
54
- #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_GNU_KFREEBSD)
58
+ #if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_GNU_KFREEBSD)
55
59
  const char* GetExecutableName() {
56
60
  static char name[1024];
57
61
 
58
- #if !defined(OS_FREEBSD)
59
- char link[1024];
60
- snprintf(link, sizeof(link), "/proc/%d/exe", getpid());
61
- auto read = readlink(link, name, sizeof(name) - 1);
62
- if (-1 == read) {
62
+ #if defined(OS_FREEBSD)
63
+ int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
64
+ size_t namesz = sizeof(name);
65
+
66
+ auto ret = sysctl(mib, 4, name, &namesz, nullptr, 0);
67
+ if (-1 == ret) {
63
68
  return nullptr;
64
69
  } else {
65
- name[read] = 0;
66
70
  return name;
67
71
  }
68
- #else
69
- int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
72
+ #elif defined(OS_OPENBSD)
73
+ int mib[4] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_ARGV};
70
74
  size_t namesz = sizeof(name);
75
+ char* bin[namesz];
71
76
 
72
- auto ret = sysctl(mib, 4, name, &namesz, nullptr, 0);
77
+ auto ret = sysctl(mib, 4, bin, &namesz, nullptr, 0);
73
78
  if (-1 == ret) {
74
79
  return nullptr;
75
80
  } else {
81
+ return bin[0];
82
+ }
83
+ #else
84
+ char link[1024];
85
+ snprintf(link, sizeof(link), "/proc/%d/exe", getpid());
86
+ auto read = readlink(link, name, sizeof(name) - 1);
87
+ if (-1 == read) {
88
+ return nullptr;
89
+ } else {
90
+ name[read] = 0;
76
91
  return name;
77
92
  }
78
93
  #endif
@@ -176,6 +191,11 @@ void PrintStack(int first_frames_to_skip) {
176
191
  char* debug_env = getenv("ROCKSDB_DEBUG");
177
192
  bool debug = debug_env != nullptr && strlen(debug_env) > 0;
178
193
 
194
+ if (!debug && getenv("ROCKSDB_NO_STACK") != nullptr) {
195
+ // Skip stack trace
196
+ return;
197
+ }
198
+
179
199
  if (lldb_stack_trace || gdb_stack_trace || debug) {
180
200
  // Allow ouside debugger to attach, even with Yama security restrictions
181
201
  #ifdef PR_SET_PTRACER_ANY
@@ -271,7 +291,7 @@ void PrintStack(int first_frames_to_skip) {
271
291
  const int kMaxFrames = 100;
272
292
  void* frames[kMaxFrames];
273
293
 
274
- auto num_frames = backtrace(frames, kMaxFrames);
294
+ int num_frames = (int) backtrace(frames, kMaxFrames);
275
295
  PrintStack(&frames[first_frames_to_skip], num_frames - first_frames_to_skip);
276
296
  }
277
297
 
@@ -284,7 +304,7 @@ void* SaveStack(int* num_frames, int first_frames_to_skip) {
284
304
  const int kMaxFrames = 100;
285
305
  void* frames[kMaxFrames];
286
306
 
287
- auto count = backtrace(frames, kMaxFrames);
307
+ int count = (int) backtrace(frames, kMaxFrames);
288
308
  *num_frames = count - first_frames_to_skip;
289
309
  void* callstack = malloc(sizeof(void*) * *num_frames);
290
310
  memcpy(callstack, &frames[first_frames_to_skip], sizeof(void*) * *num_frames);
@@ -227,7 +227,7 @@ class WinFileSystem : public FileSystem {
227
227
  const FileOptions& file_options) const override;
228
228
  FileOptions OptimizeForManifestWrite(
229
229
  const FileOptions& file_options) const override;
230
- bool use_async_io() override { return false; }
230
+ void SupportedOps(int64_t& supported_ops) override { supported_ops = 0; }
231
231
 
232
232
  protected:
233
233
  static uint64_t FileTimeToUnixTime(const FILETIME& ftTime);
@@ -117,7 +117,7 @@ class Mutex {
117
117
 
118
118
  // this will assert if the mutex is not locked
119
119
  // it does NOT verify that mutex is held by a calling thread
120
- void AssertHeld() {
120
+ void AssertHeld() const {
121
121
  #ifndef NDEBUG
122
122
  assert(locked_);
123
123
  #endif
@@ -159,7 +159,7 @@ class RWMutex {
159
159
  void WriteUnlock() { ReleaseSRWLockExclusive(&srwLock_); }
160
160
 
161
161
  // Empty as in POSIX
162
- void AssertHeld() {}
162
+ void AssertHeld() const {}
163
163
 
164
164
  private:
165
165
  SRWLOCK srwLock_;
@@ -170,6 +170,9 @@ class CondVar {
170
170
  explicit CondVar(Mutex* mu) : mu_(mu) {}
171
171
 
172
172
  ~CondVar();
173
+
174
+ Mutex* GetMutex() const { return mu_; }
175
+
173
176
  void Wait();
174
177
  bool TimedWait(uint64_t expiration_time);
175
178
  void Signal();
@@ -12,6 +12,7 @@ LIB_SOURCES = \
12
12
  cache/secondary_cache.cc \
13
13
  cache/secondary_cache_adapter.cc \
14
14
  cache/sharded_cache.cc \
15
+ cache/tiered_secondary_cache.cc \
15
16
  db/arena_wrapped_db_iter.cc \
16
17
  db/blob/blob_contents.cc \
17
18
  db/blob/blob_fetcher.cc \
@@ -94,6 +95,7 @@ LIB_SOURCES = \
94
95
  db/wal_manager.cc \
95
96
  db/wide/wide_column_serialization.cc \
96
97
  db/wide/wide_columns.cc \
98
+ db/wide/wide_columns_helper.cc \
97
99
  db/write_batch.cc \
98
100
  db/write_batch_base.cc \
99
101
  db/write_controller.cc \
@@ -251,6 +253,8 @@ LIB_SOURCES = \
251
253
  util/string_util.cc \
252
254
  util/thread_local.cc \
253
255
  util/threadpool_imp.cc \
256
+ util/udt_util.cc \
257
+ util/write_batch_util.cc \
254
258
  util/xxhash.cc \
255
259
  utilities/agg_merge/agg_merge.cc \
256
260
  utilities/backup/backup_engine.cc \
@@ -376,6 +380,7 @@ STRESS_LIB_SOURCES = \
376
380
  db_stress_tool/db_stress_stat.cc \
377
381
  db_stress_tool/db_stress_test_base.cc \
378
382
  db_stress_tool/db_stress_tool.cc \
383
+ db_stress_tool/db_stress_wide_merge_operator.cc \
379
384
  db_stress_tool/expected_state.cc \
380
385
  db_stress_tool/expected_value.cc \
381
386
  db_stress_tool/no_batched_ops_stress.cc \
@@ -429,8 +434,9 @@ BENCH_MAIN_SOURCES = \
429
434
  TEST_MAIN_SOURCES = \
430
435
  cache/cache_test.cc \
431
436
  cache/cache_reservation_manager_test.cc \
432
- cache/lru_cache_test.cc \
433
437
  cache/compressed_secondary_cache_test.cc \
438
+ cache/lru_cache_test.cc \
439
+ cache/tiered_secondary_cache_test.cc \
434
440
  db/blob/blob_counting_iterator_test.cc \
435
441
  db/blob/blob_file_addition_test.cc \
436
442
  db/blob/blob_file_builder_test.cc \
@@ -526,6 +532,7 @@ TEST_MAIN_SOURCES = \
526
532
  db/wal_manager_test.cc \
527
533
  db/wide/db_wide_basic_test.cc \
528
534
  db/wide/wide_column_serialization_test.cc \
535
+ db/wide/wide_columns_helper_test.cc \
529
536
  db/write_batch_test.cc \
530
537
  db/write_callback_test.cc \
531
538
  db/write_controller_test.cc \
@@ -593,6 +600,7 @@ TEST_MAIN_SOURCES = \
593
600
  util/timer_test.cc \
594
601
  util/thread_list_test.cc \
595
602
  util/thread_local_test.cc \
603
+ util/udt_util_test.cc \
596
604
  util/work_queue_test.cc \
597
605
  utilities/agg_merge/agg_merge_test.cc \
598
606
  utilities/backup/backup_engine_test.cc \
@@ -660,6 +668,7 @@ JNI_NATIVE_SOURCES = \
660
668
  java/rocksjni/ingest_external_file_options.cc \
661
669
  java/rocksjni/filter.cc \
662
670
  java/rocksjni/iterator.cc \
671
+ java/rocksjni/jni_perf_context.cc \
663
672
  java/rocksjni/jnicallback.cc \
664
673
  java/rocksjni/loggerjnicallback.cc \
665
674
  java/rocksjni/lru_cache.cc \
@@ -63,7 +63,8 @@ InternalIteratorBase<IndexValue>* BinarySearchIndexReader::NewIterator(
63
63
  auto it = index_block.GetValue()->NewIndexIterator(
64
64
  internal_comparator()->user_comparator(),
65
65
  rep->get_global_seqno(BlockType::kIndex), iter, kNullStats, true,
66
- index_has_first_key(), index_key_includes_seq(), index_value_is_full());
66
+ index_has_first_key(), index_key_includes_seq(), index_value_is_full(),
67
+ false /* block_contents_pinned */, user_defined_timestamps_persisted());
67
68
 
68
69
  assert(it != nullptr);
69
70
  index_block.TransferTo(it);