@nxtedition/rocksdb 8.1.7 → 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
@@ -4,6 +4,7 @@
4
4
  // (found in the LICENSE.Apache file in the root directory).
5
5
 
6
6
  #include <array>
7
+ #include <cctype>
7
8
  #include <memory>
8
9
 
9
10
  #include "db/db_test_util.h"
@@ -104,6 +105,26 @@ TEST_F(DBWideBasicTest, PutEntity) {
104
105
  ASSERT_EQ(values[2], third_value);
105
106
  }
106
107
 
108
+ {
109
+ constexpr size_t num_keys = 3;
110
+
111
+ std::array<Slice, num_keys> keys{{first_key, second_key, third_key}};
112
+ std::array<PinnableWideColumns, num_keys> results;
113
+ std::array<Status, num_keys> statuses;
114
+
115
+ db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
116
+ &keys[0], &results[0], &statuses[0]);
117
+
118
+ ASSERT_OK(statuses[0]);
119
+ ASSERT_EQ(results[0].columns(), first_columns);
120
+
121
+ ASSERT_OK(statuses[1]);
122
+ ASSERT_EQ(results[1].columns(), second_columns);
123
+
124
+ ASSERT_OK(statuses[2]);
125
+ ASSERT_EQ(results[2].columns(), expected_third_columns);
126
+ }
127
+
107
128
  {
108
129
  std::unique_ptr<Iterator> iter(db_->NewIterator(ReadOptions()));
109
130
 
@@ -209,6 +230,40 @@ TEST_F(DBWideBasicTest, PutEntityColumnFamily) {
209
230
  ASSERT_OK(db_->Write(WriteOptions(), &batch));
210
231
  }
211
232
 
233
+ TEST_F(DBWideBasicTest, MultiCFMultiGetEntity) {
234
+ Options options = GetDefaultOptions();
235
+ CreateAndReopenWithCF({"corinthian"}, options);
236
+
237
+ constexpr char first_key[] = "first";
238
+ WideColumns first_columns{{"attr_name1", "foo"}, {"attr_name2", "bar"}};
239
+
240
+ ASSERT_OK(db_->PutEntity(WriteOptions(), db_->DefaultColumnFamily(),
241
+ first_key, first_columns));
242
+
243
+ constexpr char second_key[] = "second";
244
+ WideColumns second_columns{{"attr_one", "two"}, {"attr_three", "four"}};
245
+
246
+ ASSERT_OK(
247
+ db_->PutEntity(WriteOptions(), handles_[1], second_key, second_columns));
248
+
249
+ constexpr size_t num_keys = 2;
250
+
251
+ std::array<ColumnFamilyHandle*, num_keys> column_families{
252
+ {db_->DefaultColumnFamily(), handles_[1]}};
253
+ std::array<Slice, num_keys> keys{{first_key, second_key}};
254
+ std::array<PinnableWideColumns, num_keys> results;
255
+ std::array<Status, num_keys> statuses;
256
+
257
+ db_->MultiGetEntity(ReadOptions(), num_keys, &column_families[0], &keys[0],
258
+ &results[0], &statuses[0]);
259
+
260
+ ASSERT_OK(statuses[0]);
261
+ ASSERT_EQ(results[0].columns(), first_columns);
262
+
263
+ ASSERT_OK(statuses[1]);
264
+ ASSERT_EQ(results[1].columns(), second_columns);
265
+ }
266
+
212
267
  TEST_F(DBWideBasicTest, MergePlainKeyValue) {
213
268
  Options options = GetDefaultOptions();
214
269
  options.create_if_missing = true;
@@ -279,6 +334,26 @@ TEST_F(DBWideBasicTest, MergePlainKeyValue) {
279
334
  ASSERT_EQ(result.columns(), expected_third_columns);
280
335
  }
281
336
 
337
+ {
338
+ constexpr size_t num_keys = 3;
339
+
340
+ std::array<Slice, num_keys> keys{{first_key, second_key, third_key}};
341
+ std::array<PinnableWideColumns, num_keys> results;
342
+ std::array<Status, num_keys> statuses;
343
+
344
+ db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
345
+ &keys[0], &results[0], &statuses[0]);
346
+
347
+ ASSERT_OK(statuses[0]);
348
+ ASSERT_EQ(results[0].columns(), expected_first_columns);
349
+
350
+ ASSERT_OK(statuses[1]);
351
+ ASSERT_EQ(results[1].columns(), expected_second_columns);
352
+
353
+ ASSERT_OK(statuses[2]);
354
+ ASSERT_EQ(results[2].columns(), expected_third_columns);
355
+ }
356
+
282
357
  {
283
358
  std::unique_ptr<Iterator> iter(db_->NewIterator(ReadOptions()));
284
359
 
@@ -456,6 +531,23 @@ TEST_F(DBWideBasicTest, MergeEntity) {
456
531
  ASSERT_OK(statuses[1]);
457
532
  }
458
533
 
534
+ {
535
+ constexpr size_t num_keys = 2;
536
+
537
+ std::array<Slice, num_keys> keys{{first_key, second_key}};
538
+ std::array<PinnableWideColumns, num_keys> results;
539
+ std::array<Status, num_keys> statuses;
540
+
541
+ db_->MultiGetEntity(ReadOptions(), db_->DefaultColumnFamily(), num_keys,
542
+ &keys[0], &results[0], &statuses[0]);
543
+
544
+ ASSERT_OK(statuses[0]);
545
+ ASSERT_EQ(results[0].columns(), first_expected_columns);
546
+
547
+ ASSERT_OK(statuses[1]);
548
+ ASSERT_EQ(results[1].columns(), second_expected_columns);
549
+ }
550
+
459
551
  {
460
552
  std::unique_ptr<Iterator> iter(db_->NewIterator(ReadOptions()));
461
553
 
@@ -593,6 +685,302 @@ TEST_F(DBWideBasicTest, MergeEntity) {
593
685
  verify_merge_ops_post_compaction();
594
686
  }
595
687
 
688
+ TEST_F(DBWideBasicTest, CompactionFilter) {
689
+ Options options = GetDefaultOptions();
690
+ options.create_if_missing = true;
691
+
692
+ // Wide-column entity with default column
693
+ constexpr char first_key[] = "first";
694
+ WideColumns first_columns{{kDefaultWideColumnName, "a"},
695
+ {"attr_name1", "foo"},
696
+ {"attr_name2", "bar"}};
697
+ WideColumns first_columns_uppercase{{kDefaultWideColumnName, "A"},
698
+ {"attr_name1", "FOO"},
699
+ {"attr_name2", "BAR"}};
700
+
701
+ // Wide-column entity without default column
702
+ constexpr char second_key[] = "second";
703
+ WideColumns second_columns{{"attr_one", "two"}, {"attr_three", "four"}};
704
+ WideColumns second_columns_uppercase{{"attr_one", "TWO"},
705
+ {"attr_three", "FOUR"}};
706
+
707
+ // Plain old key-value
708
+ constexpr char last_key[] = "last";
709
+ constexpr char last_value[] = "baz";
710
+ constexpr char last_value_uppercase[] = "BAZ";
711
+
712
+ auto write = [&] {
713
+ ASSERT_OK(db_->PutEntity(WriteOptions(), db_->DefaultColumnFamily(),
714
+ first_key, first_columns));
715
+ ASSERT_OK(db_->PutEntity(WriteOptions(), db_->DefaultColumnFamily(),
716
+ second_key, second_columns));
717
+
718
+ ASSERT_OK(Flush());
719
+
720
+ ASSERT_OK(db_->Put(WriteOptions(), db_->DefaultColumnFamily(), last_key,
721
+ last_value));
722
+
723
+ ASSERT_OK(Flush());
724
+ ASSERT_OK(db_->CompactRange(CompactRangeOptions(), /* begin */ nullptr,
725
+ /* end */ nullptr));
726
+ };
727
+
728
+ // Test a compaction filter that keeps all entries
729
+ {
730
+ class KeepFilter : public CompactionFilter {
731
+ public:
732
+ Decision FilterV3(
733
+ int /* level */, const Slice& /* key */, ValueType /* value_type */,
734
+ const Slice* /* existing_value */,
735
+ const WideColumns* /* existing_columns */,
736
+ std::string* /* new_value */,
737
+ std::vector<std::pair<std::string, std::string>>* /* new_columns */,
738
+ std::string* /* skip_until */) const override {
739
+ return Decision::kKeep;
740
+ }
741
+
742
+ const char* Name() const override { return "KeepFilter"; }
743
+ };
744
+
745
+ KeepFilter filter;
746
+ options.compaction_filter = &filter;
747
+
748
+ DestroyAndReopen(options);
749
+
750
+ write();
751
+
752
+ {
753
+ PinnableWideColumns result;
754
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
755
+ first_key, &result));
756
+ ASSERT_EQ(result.columns(), first_columns);
757
+ }
758
+
759
+ {
760
+ PinnableWideColumns result;
761
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
762
+ second_key, &result));
763
+ ASSERT_EQ(result.columns(), second_columns);
764
+ }
765
+
766
+ // Note: GetEntity should return an entity with a single default column,
767
+ // since last_key is a plain key-value
768
+ {
769
+ PinnableWideColumns result;
770
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
771
+ last_key, &result));
772
+
773
+ WideColumns expected_columns{{kDefaultWideColumnName, last_value}};
774
+ ASSERT_EQ(result.columns(), expected_columns);
775
+ }
776
+ }
777
+
778
+ // Test a compaction filter that removes all entries
779
+ {
780
+ class RemoveFilter : public CompactionFilter {
781
+ public:
782
+ Decision FilterV3(
783
+ int /* level */, const Slice& /* key */, ValueType /* value_type */,
784
+ const Slice* /* existing_value */,
785
+ const WideColumns* /* existing_columns */,
786
+ std::string* /* new_value */,
787
+ std::vector<std::pair<std::string, std::string>>* /* new_columns */,
788
+ std::string* /* skip_until */) const override {
789
+ return Decision::kRemove;
790
+ }
791
+
792
+ const char* Name() const override { return "RemoveFilter"; }
793
+ };
794
+
795
+ RemoveFilter filter;
796
+ options.compaction_filter = &filter;
797
+
798
+ DestroyAndReopen(options);
799
+
800
+ write();
801
+
802
+ {
803
+ PinnableWideColumns result;
804
+ ASSERT_TRUE(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
805
+ first_key, &result)
806
+ .IsNotFound());
807
+ }
808
+
809
+ {
810
+ PinnableWideColumns result;
811
+ ASSERT_TRUE(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
812
+ second_key, &result)
813
+ .IsNotFound());
814
+ }
815
+
816
+ {
817
+ PinnableWideColumns result;
818
+ ASSERT_TRUE(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
819
+ last_key, &result)
820
+ .IsNotFound());
821
+ }
822
+ }
823
+
824
+ // Test a compaction filter that changes the values of entries to uppercase.
825
+ // The new entry is always a plain key-value; if the existing entry is a
826
+ // wide-column entity, only the value of its first column is kept.
827
+ {
828
+ class ChangeValueFilter : public CompactionFilter {
829
+ public:
830
+ Decision FilterV3(
831
+ int /* level */, const Slice& /* key */, ValueType value_type,
832
+ const Slice* existing_value, const WideColumns* existing_columns,
833
+ std::string* new_value,
834
+ std::vector<std::pair<std::string, std::string>>* /* new_columns */,
835
+ std::string* /* skip_until */) const override {
836
+ assert(new_value);
837
+
838
+ auto upper = [](const std::string& str) {
839
+ std::string result(str);
840
+
841
+ for (char& c : result) {
842
+ c = static_cast<char>(std::toupper(static_cast<unsigned char>(c)));
843
+ }
844
+
845
+ return result;
846
+ };
847
+
848
+ if (value_type == ValueType::kWideColumnEntity) {
849
+ assert(existing_columns);
850
+
851
+ if (!existing_columns->empty()) {
852
+ *new_value = upper(existing_columns->front().value().ToString());
853
+ }
854
+ } else {
855
+ assert(existing_value);
856
+
857
+ *new_value = upper(existing_value->ToString());
858
+ }
859
+
860
+ return Decision::kChangeValue;
861
+ }
862
+
863
+ const char* Name() const override { return "ChangeValueFilter"; }
864
+ };
865
+
866
+ ChangeValueFilter filter;
867
+ options.compaction_filter = &filter;
868
+
869
+ DestroyAndReopen(options);
870
+
871
+ write();
872
+
873
+ // Note: GetEntity should return entities with a single default column,
874
+ // since all entries are now plain key-values
875
+ {
876
+ PinnableWideColumns result;
877
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
878
+ first_key, &result));
879
+
880
+ WideColumns expected_columns{
881
+ {kDefaultWideColumnName, first_columns_uppercase[0].value()}};
882
+ ASSERT_EQ(result.columns(), expected_columns);
883
+ }
884
+
885
+ {
886
+ PinnableWideColumns result;
887
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
888
+ second_key, &result));
889
+
890
+ WideColumns expected_columns{
891
+ {kDefaultWideColumnName, second_columns_uppercase[0].value()}};
892
+ ASSERT_EQ(result.columns(), expected_columns);
893
+ }
894
+
895
+ {
896
+ PinnableWideColumns result;
897
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
898
+ last_key, &result));
899
+
900
+ WideColumns expected_columns{
901
+ {kDefaultWideColumnName, last_value_uppercase}};
902
+ ASSERT_EQ(result.columns(), expected_columns);
903
+ }
904
+ }
905
+
906
+ // Test a compaction filter that changes the column values of entries to
907
+ // uppercase. The new entry is always a wide-column entity; if the existing
908
+ // entry is a plain key-value, it is converted to a wide-column entity with a
909
+ // single default column.
910
+ {
911
+ class ChangeEntityFilter : public CompactionFilter {
912
+ public:
913
+ Decision FilterV3(
914
+ int /* level */, const Slice& /* key */, ValueType value_type,
915
+ const Slice* existing_value, const WideColumns* existing_columns,
916
+ std::string* /* new_value */,
917
+ std::vector<std::pair<std::string, std::string>>* new_columns,
918
+ std::string* /* skip_until */) const override {
919
+ assert(new_columns);
920
+
921
+ auto upper = [](const std::string& str) {
922
+ std::string result(str);
923
+
924
+ for (char& c : result) {
925
+ c = static_cast<char>(std::toupper(static_cast<unsigned char>(c)));
926
+ }
927
+
928
+ return result;
929
+ };
930
+
931
+ if (value_type == ValueType::kWideColumnEntity) {
932
+ assert(existing_columns);
933
+
934
+ for (const auto& column : *existing_columns) {
935
+ new_columns->emplace_back(column.name().ToString(),
936
+ upper(column.value().ToString()));
937
+ }
938
+ } else {
939
+ assert(existing_value);
940
+
941
+ new_columns->emplace_back(kDefaultWideColumnName.ToString(),
942
+ upper(existing_value->ToString()));
943
+ }
944
+
945
+ return Decision::kChangeWideColumnEntity;
946
+ }
947
+
948
+ const char* Name() const override { return "ChangeEntityFilter"; }
949
+ };
950
+
951
+ ChangeEntityFilter filter;
952
+ options.compaction_filter = &filter;
953
+
954
+ DestroyAndReopen(options);
955
+
956
+ write();
957
+
958
+ {
959
+ PinnableWideColumns result;
960
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
961
+ first_key, &result));
962
+ ASSERT_EQ(result.columns(), first_columns_uppercase);
963
+ }
964
+
965
+ {
966
+ PinnableWideColumns result;
967
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
968
+ second_key, &result));
969
+ ASSERT_EQ(result.columns(), second_columns_uppercase);
970
+ }
971
+
972
+ {
973
+ PinnableWideColumns result;
974
+ ASSERT_OK(db_->GetEntity(ReadOptions(), db_->DefaultColumnFamily(),
975
+ last_key, &result));
976
+
977
+ WideColumns expected_columns{
978
+ {kDefaultWideColumnName, last_value_uppercase}};
979
+ ASSERT_EQ(result.columns(), expected_columns);
980
+ }
981
+ }
982
+ }
983
+
596
984
  TEST_F(DBWideBasicTest, PutEntityTimestampError) {
597
985
  // Note: timestamps are currently not supported
598
986
 
@@ -677,7 +677,6 @@ TEST_F(WriteBatchTest, ColumnFamiliesBatchTest) {
677
677
  handler.seen);
678
678
  }
679
679
 
680
- #ifndef ROCKSDB_LITE
681
680
  TEST_F(WriteBatchTest, ColumnFamiliesBatchWithIndexTest) {
682
681
  WriteBatchWithIndex batch;
683
682
  ColumnFamilyHandleImplDummy zero(0), two(2), three(3), eight(8);
@@ -779,7 +778,6 @@ TEST_F(WriteBatchTest, ColumnFamiliesBatchWithIndexTest) {
779
778
  "Merge(omom, nom)",
780
779
  handler.seen);
781
780
  }
782
- #endif // !ROCKSDB_LITE
783
781
 
784
782
  TEST_F(WriteBatchTest, SavePointTest) {
785
783
  Status s;
@@ -3,7 +3,6 @@
3
3
  // COPYING file in the root directory) and Apache 2.0 License
4
4
  // (found in the LICENSE.Apache file in the root directory).
5
5
 
6
- #ifndef ROCKSDB_LITE
7
6
 
8
7
  #include "db/write_callback.h"
9
8
 
@@ -453,13 +452,3 @@ int main(int argc, char** argv) {
453
452
  return RUN_ALL_TESTS();
454
453
  }
455
454
 
456
- #else
457
- #include <stdio.h>
458
-
459
- int main(int /*argc*/, char** /*argv*/) {
460
- fprintf(stderr,
461
- "SKIPPED as WriteWithCallback is not supported in ROCKSDB_LITE\n");
462
- return 0;
463
- }
464
-
465
- #endif // !ROCKSDB_LITE
@@ -228,6 +228,7 @@ bool WriteThread::LinkOne(Writer* w, std::atomic<Writer*>* newest_writer) {
228
228
  assert(w->state == STATE_INIT);
229
229
  Writer* writers = newest_writer->load(std::memory_order_relaxed);
230
230
  while (true) {
231
+ assert(writers != w);
231
232
  // If write stall in effect, and w->no_slowdown is not true,
232
233
  // block here until stall is cleared. If its true, then return
233
234
  // immediately
@@ -325,6 +326,7 @@ void WriteThread::CompleteFollower(Writer* w, WriteGroup& write_group) {
325
326
  }
326
327
 
327
328
  void WriteThread::BeginWriteStall() {
329
+ ++stall_begun_count_;
328
330
  LinkOne(&write_stall_dummy_, &newest_writer_);
329
331
 
330
332
  // Walk writer list until w->write_group != nullptr. The current write group
@@ -367,10 +369,34 @@ void WriteThread::EndWriteStall() {
367
369
  }
368
370
  newest_writer_.exchange(write_stall_dummy_.link_older);
369
371
 
372
+ ++stall_ended_count_;
373
+
370
374
  // Wake up writers
371
375
  stall_cv_.SignalAll();
372
376
  }
373
377
 
378
+ uint64_t WriteThread::GetBegunCountOfOutstandingStall() {
379
+ if (stall_begun_count_ > stall_ended_count_) {
380
+ // Oustanding stall in queue
381
+ assert(newest_writer_.load(std::memory_order_relaxed) ==
382
+ &write_stall_dummy_);
383
+ return stall_begun_count_;
384
+ } else {
385
+ // No stall in queue
386
+ assert(newest_writer_.load(std::memory_order_relaxed) !=
387
+ &write_stall_dummy_);
388
+ return 0;
389
+ }
390
+ }
391
+
392
+ void WriteThread::WaitForStallEndedCount(uint64_t stall_count) {
393
+ MutexLock lock(&stall_mu_);
394
+
395
+ while (stall_ended_count_ < stall_count) {
396
+ stall_cv_.Wait();
397
+ }
398
+ }
399
+
374
400
  static WriteThread::AdaptationContext jbg_ctx("JoinBatchGroup");
375
401
  void WriteThread::JoinBatchGroup(Writer* w) {
376
402
  TEST_SYNC_POINT_CALLBACK("WriteThread::JoinBatchGroup:Start", w);
@@ -357,11 +357,23 @@ class WriteThread {
357
357
 
358
358
  // Insert a dummy writer at the tail of the write queue to indicate a write
359
359
  // stall, and fail any writers in the queue with no_slowdown set to true
360
+ // REQUIRES: db mutex held, no other stall on this queue outstanding
360
361
  void BeginWriteStall();
361
362
 
362
363
  // Remove the dummy writer and wake up waiting writers
364
+ // REQUIRES: db mutex held
363
365
  void EndWriteStall();
364
366
 
367
+ // Number of BeginWriteStall(), or 0 if there is no active stall in the
368
+ // write queue.
369
+ // REQUIRES: db mutex held
370
+ uint64_t GetBegunCountOfOutstandingStall();
371
+
372
+ // Wait for number of completed EndWriteStall() to reach >= `stall_count`,
373
+ // which will generally have come from GetBegunCountOfOutstandingStall().
374
+ // (Does not require db mutex held)
375
+ void WaitForStallEndedCount(uint64_t stall_count);
376
+
365
377
  private:
366
378
  // See AwaitState.
367
379
  const uint64_t max_yield_usec_;
@@ -401,6 +413,18 @@ class WriteThread {
401
413
  port::Mutex stall_mu_;
402
414
  port::CondVar stall_cv_;
403
415
 
416
+ // Count the number of stalls begun, so that we can check whether
417
+ // a particular stall has cleared (even if caught in another stall).
418
+ // Controlled by DB mutex.
419
+ // Because of the contract on BeginWriteStall() / EndWriteStall(),
420
+ // stall_ended_count_ <= stall_begun_count_ <= stall_ended_count_ + 1.
421
+ uint64_t stall_begun_count_ = 0;
422
+ // Count the number of stalls ended, so that we can check whether
423
+ // a particular stall has cleared (even if caught in another stall).
424
+ // Writes controlled by DB mutex + stall_mu_, signalled by stall_cv_.
425
+ // Read with stall_mu or DB mutex.
426
+ uint64_t stall_ended_count_ = 0;
427
+
404
428
  // Waits for w->state & goal_mask using w->StateMutex(). Returns
405
429
  // the state that satisfies goal_mask.
406
430
  uint8_t BlockingAwaitState(Writer* w, uint8_t goal_mask);
@@ -466,7 +466,6 @@ class CfConsistencyStressTest : public StressTest {
466
466
  iters[i]->key().ToString(true /* hex */).c_str(),
467
467
  iters[i]->value().ToString(true /* hex */).c_str());
468
468
 
469
- #ifndef ROCKSDB_LITE
470
469
  Slice begin_key;
471
470
  Slice end_key;
472
471
  if (cmp < 0) {
@@ -509,7 +508,6 @@ class CfConsistencyStressTest : public StressTest {
509
508
  }
510
509
 
511
510
  print_key_versions(column_families_[i]);
512
- #endif // ROCKSDB_LITE
513
511
 
514
512
  shared->SetVerificationFailure();
515
513
  }
@@ -524,7 +522,6 @@ class CfConsistencyStressTest : public StressTest {
524
522
  } while (true);
525
523
  }
526
524
 
527
- #ifndef ROCKSDB_LITE
528
525
  void ContinuouslyVerifyDb(ThreadState* thread) const override {
529
526
  assert(thread);
530
527
  Status status;
@@ -614,9 +611,6 @@ class CfConsistencyStressTest : public StressTest {
614
611
  }
615
612
  }
616
613
  }
617
- #else // ROCKSDB_LITE
618
- void ContinuouslyVerifyDb(ThreadState* /*thread*/) const override {}
619
- #endif // !ROCKSDB_LITE
620
614
 
621
615
  std::vector<int> GenerateColumnFamilies(
622
616
  const int /* num_column_families */,
@@ -87,6 +87,7 @@ DECLARE_int64(active_width);
87
87
  DECLARE_bool(test_batches_snapshots);
88
88
  DECLARE_bool(atomic_flush);
89
89
  DECLARE_int32(manual_wal_flush_one_in);
90
+ DECLARE_int32(lock_wal_one_in);
90
91
  DECLARE_bool(test_cf_consistency);
91
92
  DECLARE_bool(test_multi_ops_txns);
92
93
  DECLARE_int32(threads);
@@ -252,7 +253,6 @@ DECLARE_int32(continuous_verification_interval);
252
253
  DECLARE_int32(get_property_one_in);
253
254
  DECLARE_string(file_checksum_impl);
254
255
 
255
- #ifndef ROCKSDB_LITE
256
256
  // Options for StackableDB-based BlobDB
257
257
  DECLARE_bool(use_blob_db);
258
258
  DECLARE_uint64(blob_db_min_blob_size);
@@ -260,7 +260,6 @@ DECLARE_uint64(blob_db_bytes_per_sync);
260
260
  DECLARE_uint64(blob_db_file_size);
261
261
  DECLARE_bool(blob_db_enable_gc);
262
262
  DECLARE_double(blob_db_gc_cutoff);
263
- #endif // !ROCKSDB_LITE
264
263
 
265
264
  // Options for integrated BlobDB
266
265
  DECLARE_bool(allow_setting_blob_options_dynamically);
@@ -297,11 +296,9 @@ DECLARE_int32(secondary_cache_fault_one_in);
297
296
  DECLARE_int32(prepopulate_block_cache);
298
297
 
299
298
  DECLARE_bool(two_write_queues);
300
- #ifndef ROCKSDB_LITE
301
299
  DECLARE_bool(use_only_the_last_commit_time_batch_for_recovery);
302
300
  DECLARE_uint64(wp_snapshot_cache_bits);
303
301
  DECLARE_uint64(wp_commit_cache_bits);
304
- #endif // !ROCKSDB_LITE
305
302
 
306
303
  DECLARE_bool(adaptive_readahead);
307
304
  DECLARE_bool(async_io);
@@ -92,6 +92,10 @@ DEFINE_int32(
92
92
  "on average. Setting `manual_wal_flush_one_in` to be greater than 0 "
93
93
  "implies `Options::manual_wal_flush = true` is set.");
94
94
 
95
+ DEFINE_int32(lock_wal_one_in, 1000000,
96
+ "If non-zero, then `LockWAL()` + `UnlockWAL()` will be called in "
97
+ "db_stress once for every N ops on average.");
98
+
95
99
  DEFINE_bool(test_cf_consistency, false,
96
100
  "If set, runs the stress test dedicated to verifying writes to "
97
101
  "multiple column families are consistent. Setting this implies "
@@ -390,7 +394,6 @@ DEFINE_double(experimental_mempurge_threshold, 0.0,
390
394
  DEFINE_bool(enable_write_thread_adaptive_yield, true,
391
395
  "Use a yielding spin loop for brief writer thread waits.");
392
396
 
393
- #ifndef ROCKSDB_LITE
394
397
  // Options for StackableDB-based BlobDB
395
398
  DEFINE_bool(use_blob_db, false, "[Stacked BlobDB] Use BlobDB.");
396
399
 
@@ -418,7 +421,6 @@ DEFINE_double(
418
421
  blob_db_gc_cutoff,
419
422
  ROCKSDB_NAMESPACE::blob_db::BlobDBOptions().garbage_collection_cutoff,
420
423
  "[Stacked BlobDB] Cutoff ratio for BlobDB garbage collection.");
421
- #endif // !ROCKSDB_LITE
422
424
 
423
425
  // Options for integrated BlobDB
424
426
  DEFINE_bool(allow_setting_blob_options_dynamically, false,
@@ -983,13 +985,11 @@ DEFINE_int32(open_metadata_write_fault_one_in, 0,
983
985
  "On non-zero, enables fault injection on file metadata write "
984
986
  "during DB reopen.");
985
987
 
986
- #ifndef ROCKSDB_LITE
987
988
  DEFINE_string(secondary_cache_uri, "",
988
989
  "Full URI for creating a customized secondary cache object");
989
990
  DEFINE_int32(secondary_cache_fault_one_in, 0,
990
991
  "On non-zero, enables fault injection in secondary cache inserts"
991
992
  " and lookups");
992
- #endif // ROCKSDB_LITE
993
993
  DEFINE_int32(open_write_fault_one_in, 0,
994
994
  "On non-zero, enables fault injection on file writes "
995
995
  "during DB reopen.");
@@ -1008,7 +1008,6 @@ DEFINE_int32(prepopulate_block_cache,
1008
1008
 
1009
1009
  DEFINE_bool(two_write_queues, false,
1010
1010
  "Set to true to enable two write queues. Default: false");
1011
- #ifndef ROCKSDB_LITE
1012
1011
 
1013
1012
  DEFINE_bool(use_only_the_last_commit_time_batch_for_recovery, false,
1014
1013
  "If true, the commit-time write batch will not be immediately "
@@ -1022,7 +1021,6 @@ DEFINE_uint64(
1022
1021
  DEFINE_uint64(wp_commit_cache_bits, 23ull,
1023
1022
  "Number of bits to represent write-prepared transaction db's "
1024
1023
  "commit cache. Default: 23 (8M entries)");
1025
- #endif // !ROCKSDB_LITE
1026
1024
 
1027
1025
  DEFINE_bool(adaptive_readahead, false,
1028
1026
  "Carry forward internal auto readahead size from one file to next "
@@ -1075,4 +1073,6 @@ DEFINE_uint64(stats_dump_period_sec,
1075
1073
  ROCKSDB_NAMESPACE::Options().stats_dump_period_sec,
1076
1074
  "Gap between printing stats to log in seconds");
1077
1075
 
1076
+ extern "C" bool RocksDbIOUringEnable() { return true; }
1077
+
1078
1078
  #endif // GFLAGS