@nxtedition/rocksdb 8.2.8 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/deps/rocksdb/rocksdb/CMakeLists.txt +7 -1
  2. package/deps/rocksdb/rocksdb/Makefile +22 -19
  3. package/deps/rocksdb/rocksdb/TARGETS +8 -0
  4. package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +157 -61
  5. package/deps/rocksdb/rocksdb/cache/cache_test.cc +43 -92
  6. package/deps/rocksdb/rocksdb/cache/clock_cache.cc +632 -455
  7. package/deps/rocksdb/rocksdb/cache/clock_cache.h +244 -149
  8. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +41 -13
  9. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +11 -1
  10. package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +216 -17
  11. package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
  12. package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +279 -199
  13. package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +2 -1
  14. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +159 -8
  15. package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +28 -2
  16. package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +1 -1
  17. package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -0
  18. package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
  19. package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +3 -1
  20. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
  21. package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
  22. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
  23. package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
  24. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +18 -21
  25. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
  26. package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
  27. package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
  28. package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
  29. package/deps/rocksdb/rocksdb/db/builder.cc +32 -7
  30. package/deps/rocksdb/rocksdb/db/c.cc +169 -6
  31. package/deps/rocksdb/rocksdb/db/c_test.c +104 -6
  32. package/deps/rocksdb/rocksdb/db/column_family.cc +98 -47
  33. package/deps/rocksdb/rocksdb/db/column_family.h +25 -2
  34. package/deps/rocksdb/rocksdb/db/column_family_test.cc +213 -2
  35. package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
  36. package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +93 -23
  37. package/deps/rocksdb/rocksdb/db/compaction/compaction.h +33 -9
  38. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -6
  39. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
  40. package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
  41. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +107 -43
  42. package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -4
  43. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
  44. package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
  45. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +25 -17
  46. package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +13 -4
  47. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
  48. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +29 -4
  49. package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +24 -31
  50. package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
  51. package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +19 -19
  52. package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -1
  53. package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
  54. package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
  55. package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
  56. package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
  57. package/deps/rocksdb/rocksdb/db/db_basic_test.cc +17 -3
  58. package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +5 -0
  59. package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +15 -15
  60. package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +666 -44
  61. package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
  62. package/deps/rocksdb/rocksdb/db/db_flush_test.cc +274 -1
  63. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -19
  64. package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
  65. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +250 -116
  66. package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +51 -23
  67. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +354 -96
  68. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -3
  69. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
  70. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -0
  71. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -21
  72. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +26 -13
  73. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -5
  74. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +61 -21
  75. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +8 -87
  76. package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +7 -1
  77. package/deps/rocksdb/rocksdb/db/db_iter.cc +2 -2
  78. package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
  79. package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
  80. package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +6 -6
  81. package/deps/rocksdb/rocksdb/db/db_options_test.cc +39 -29
  82. package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
  83. package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +106 -0
  84. package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +12 -3
  85. package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
  86. package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
  87. package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +279 -166
  88. package/deps/rocksdb/rocksdb/db/db_test.cc +48 -21
  89. package/deps/rocksdb/rocksdb/db/db_test2.cc +81 -12
  90. package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
  91. package/deps/rocksdb/rocksdb/db/db_test_util.h +40 -0
  92. package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +13 -1
  93. package/deps/rocksdb/rocksdb/db/db_wal_test.cc +233 -0
  94. package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +143 -0
  95. package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
  96. package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
  97. package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
  98. package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
  99. package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
  100. package/deps/rocksdb/rocksdb/db/error_handler.cc +16 -0
  101. package/deps/rocksdb/rocksdb/db/error_handler.h +6 -3
  102. package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
  103. package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
  104. package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
  105. package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
  106. package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
  107. package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -4
  108. package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
  109. package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
  110. package/deps/rocksdb/rocksdb/db/flush_job.cc +101 -11
  111. package/deps/rocksdb/rocksdb/db/flush_job.h +24 -1
  112. package/deps/rocksdb/rocksdb/db/flush_job_test.cc +88 -11
  113. package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
  114. package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
  115. package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
  116. package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
  117. package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
  118. package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
  119. package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
  120. package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
  121. package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
  122. package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
  123. package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
  124. package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +4 -3
  125. package/deps/rocksdb/rocksdb/db/memtable.cc +52 -13
  126. package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
  127. package/deps/rocksdb/rocksdb/db/memtable_list.cc +44 -10
  128. package/deps/rocksdb/rocksdb/db/memtable_list.h +32 -1
  129. package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +90 -4
  130. package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -2
  131. package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +1 -0
  132. package/deps/rocksdb/rocksdb/db/repair.cc +21 -4
  133. package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
  134. package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -4
  135. package/deps/rocksdb/rocksdb/db/table_cache.cc +44 -35
  136. package/deps/rocksdb/rocksdb/db/table_cache.h +6 -6
  137. package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
  138. package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
  139. package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
  140. package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
  141. package/deps/rocksdb/rocksdb/db/version_edit.h +48 -6
  142. package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
  143. package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
  144. package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
  145. package/deps/rocksdb/rocksdb/db/version_set.cc +136 -41
  146. package/deps/rocksdb/rocksdb/db/version_set.h +28 -7
  147. package/deps/rocksdb/rocksdb/db/version_set_test.cc +25 -15
  148. package/deps/rocksdb/rocksdb/db/write_batch.cc +11 -0
  149. package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
  150. package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
  151. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +22 -3
  152. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +2 -0
  153. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
  154. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +32 -3
  155. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +7 -0
  156. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +247 -120
  157. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +9 -4
  158. package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +13 -6
  159. package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
  160. package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +15 -27
  161. package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +264 -69
  162. package/deps/rocksdb/rocksdb/env/env.cc +1 -2
  163. package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
  164. package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
  165. package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
  166. package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
  167. package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
  168. package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +78 -0
  169. package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
  170. package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
  171. package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
  172. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +52 -43
  173. package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +34 -18
  174. package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
  175. package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
  176. package/deps/rocksdb/rocksdb/file/prefetch_test.cc +724 -79
  177. package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +64 -33
  178. package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
  179. package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
  180. package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
  181. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +2 -1
  182. package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +153 -88
  183. package/deps/rocksdb/rocksdb/include/rocksdb/c.h +70 -2
  184. package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +50 -11
  185. package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
  186. package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +16 -2
  187. package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
  188. package/deps/rocksdb/rocksdb/include/rocksdb/db.h +55 -8
  189. package/deps/rocksdb/rocksdb/include/rocksdb/env.h +32 -4
  190. package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
  191. package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +90 -13
  192. package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +3 -0
  193. package/deps/rocksdb/rocksdb/include/rocksdb/options.h +85 -17
  194. package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +13 -1
  195. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
  196. package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
  197. package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +21 -2
  198. package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
  199. package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +6 -0
  200. package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +5 -0
  201. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
  202. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
  203. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +33 -2
  204. package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
  205. package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
  206. package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -0
  207. package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
  208. package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -1
  209. package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
  210. package/deps/rocksdb/rocksdb/monitoring/statistics.cc +16 -1
  211. package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +10 -0
  212. package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
  213. package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
  214. package/deps/rocksdb/rocksdb/options/customizable_test.cc +2 -1
  215. package/deps/rocksdb/rocksdb/options/db_options.cc +7 -0
  216. package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
  217. package/deps/rocksdb/rocksdb/options/options.cc +15 -1
  218. package/deps/rocksdb/rocksdb/options/options_helper.cc +6 -0
  219. package/deps/rocksdb/rocksdb/options/options_settable_test.cc +11 -3
  220. package/deps/rocksdb/rocksdb/options/options_test.cc +8 -0
  221. package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
  222. package/deps/rocksdb/rocksdb/port/stack_trace.cc +27 -12
  223. package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
  224. package/deps/rocksdb/rocksdb/src.mk +3 -0
  225. package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
  226. package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
  227. package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
  228. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +115 -42
  229. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +6 -5
  230. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +60 -2
  231. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +2 -0
  232. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +62 -44
  233. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +36 -14
  234. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -15
  235. package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
  236. package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
  237. package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
  238. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -21
  239. package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +11 -4
  240. package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +195 -55
  241. package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
  242. package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
  243. package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
  244. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
  245. package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
  246. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +27 -12
  247. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
  248. package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
  249. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -2
  250. package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +9 -6
  251. package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
  252. package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
  253. package/deps/rocksdb/rocksdb/table/block_fetcher.cc +11 -11
  254. package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -0
  255. package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
  256. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
  257. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
  258. package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
  259. package/deps/rocksdb/rocksdb/table/format.cc +175 -33
  260. package/deps/rocksdb/rocksdb/table/format.h +63 -10
  261. package/deps/rocksdb/rocksdb/table/merging_iterator.cc +10 -2
  262. package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
  263. package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
  264. package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
  265. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
  266. package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
  267. package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
  268. package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
  269. package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +12 -3
  270. package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +26 -1
  271. package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
  272. package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
  273. package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
  274. package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
  275. package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
  276. package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
  277. package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
  278. package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +65 -26
  279. package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +8 -5
  280. package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
  281. package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
  282. package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +0 -1
  283. package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
  284. package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
  285. package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
  286. package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
  287. package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
  288. package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
  289. package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
  290. package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
  291. package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
  292. package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
  293. package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
  294. package/deps/rocksdb/rocksdb/util/cast_util.h +14 -0
  295. package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
  296. package/deps/rocksdb/rocksdb/util/comparator.cc +29 -7
  297. package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
  298. package/deps/rocksdb/rocksdb/util/compression.h +110 -32
  299. package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
  300. package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
  301. package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
  302. package/deps/rocksdb/rocksdb/util/hash.h +7 -3
  303. package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
  304. package/deps/rocksdb/rocksdb/util/math.h +58 -6
  305. package/deps/rocksdb/rocksdb/util/math128.h +29 -7
  306. package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
  307. package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
  308. package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
  309. package/deps/rocksdb/rocksdb/util/thread_operation.h +8 -1
  310. package/deps/rocksdb/rocksdb/util/udt_util.cc +343 -0
  311. package/deps/rocksdb/rocksdb/util/udt_util.h +173 -1
  312. package/deps/rocksdb/rocksdb/util/udt_util_test.cc +447 -0
  313. package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
  314. package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
  315. package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
  316. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +69 -25
  317. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
  318. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
  319. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
  320. package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
  321. package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
  322. package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
  323. package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +1 -1
  324. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
  325. package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -1
  326. package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +3 -3
  327. package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
  328. package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
  329. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
  330. package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
  331. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
  332. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
  333. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
  334. package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +231 -33
  335. package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -1
  336. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
  337. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
  338. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +40 -23
  339. package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +13 -12
  340. package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +7 -0
  341. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
  342. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +41 -11
  343. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
  344. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +71 -24
  345. package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
  346. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
  347. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +39 -11
  348. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
  349. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +14 -8
  350. package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
  351. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
  352. package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
  353. package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
  354. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +2 -1
  355. package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
  356. package/deps/rocksdb/rocksdb.gyp +2 -0
  357. package/package.json +1 -1
  358. package/prebuilds/darwin-arm64/node.napi.node +0 -0
  359. package/prebuilds/linux-x64/node.napi.node +0 -0
@@ -81,6 +81,7 @@ class ReduceLevelTest : public testing::Test {
81
81
 
82
82
  Status ReduceLevelTest::OpenDB(bool create_if_missing, int num_levels) {
83
83
  ROCKSDB_NAMESPACE::Options opt;
84
+ opt.level_compaction_dynamic_level_bytes = false;
84
85
  opt.num_levels = num_levels;
85
86
  opt.create_if_missing = create_if_missing;
86
87
  ROCKSDB_NAMESPACE::Status st =
@@ -468,4 +468,3 @@ int main(int argc, char** argv) {
468
468
  RegisterCustomObjects(argc, argv);
469
469
  return RUN_ALL_TESTS();
470
470
  }
471
-
@@ -419,6 +419,10 @@ int SSTDumpTool::Run(int argc, char const* const* argv, Options options) {
419
419
  filename = std::string(dir_or_file) + "/" + filename;
420
420
  }
421
421
 
422
+ if (command == "verify") {
423
+ verify_checksum = true;
424
+ }
425
+
422
426
  ROCKSDB_NAMESPACE::SstFileDumper dumper(
423
427
  options, filename, Temperature::kUnknown, readahead_size,
424
428
  verify_checksum, output_hex, decode_blob_index);
@@ -0,0 +1,73 @@
1
+ Adding release notes
2
+ --------------------
3
+
4
+ When adding release notes for the next release, add a file to one of these
5
+ directories:
6
+
7
+ unreleased_history/new_features
8
+ unreleased_history/behavior_changes
9
+ unreleased_history/public_api_changes
10
+ unreleased_history/bug_fixes
11
+
12
+ with a unique name that makes sense for your change, preferably using the .md
13
+ extension for syntax highlighting.
14
+
15
+ There is a script to help, as in
16
+
17
+ $ unreleased_history/add.sh unreleased_history/bug_fixes/crash_in_feature.md
18
+
19
+ or simply
20
+
21
+ $ unreleased_history/add.sh
22
+
23
+ will take you through some prompts.
24
+
25
+ The file should usually contain one line of markdown, and "* " is not
26
+ required, as it will automatically be inserted later if not included at the
27
+ start of the first line in the file. Extra newlines or missing trailing
28
+ newlines will also be corrected.
29
+
30
+ The only times release notes should be added directly to HISTORY are if
31
+ * A release is being amended or corrected after it is already "cut" but not
32
+ tagged, which should be rare.
33
+ * A single commit contains a noteworthy change and a patch release version bump
34
+
35
+
36
+ Ordering of entries
37
+ -------------------
38
+
39
+ Within each group, entries will be included using ls sort order, so important
40
+ entries could start their file name with a small three digit number like
41
+ 100pretty_important.md.
42
+
43
+ The ordering of groups such as new_features vs. public_api_changes is
44
+ hard-coded in unreleased_history/release.sh
45
+
46
+
47
+ Updating HISTORY.md with release notes
48
+ --------------------------------------
49
+
50
+ The script unreleased_history/release.sh does this. Run the script before
51
+ updating version.h to the next develpment release, so that the script will pick
52
+ up the version being released. You might want to start with
53
+
54
+ $ DRY_RUN=1 unreleased_history/release.sh | less
55
+
56
+ to check for problems and preview the output. Then run
57
+
58
+ $ unreleased_history/release.sh
59
+
60
+ which will git rm some files and modify HISTORY.md. You still need to commit the
61
+ changes, or revert with the command reported in the output.
62
+
63
+
64
+ Why not update HISTORY.md directly?
65
+ -----------------------------------
66
+
67
+ First, it was common to hit unnecessary merge conflicts when adding entries to
68
+ HISTORY.md, which slowed development. Second, when a PR was opened before a
69
+ release cut and landed after the release cut, it was easy to add the HISTORY
70
+ entry to the wrong version's history. This new setup completely fixes both of
71
+ those issues, with perhaps slighly more initial work to create each entry.
72
+ There is also now an extra step in using `git blame` to map a release note
73
+ to its source code implementation, but that is a relatively rare operation.
@@ -0,0 +1,27 @@
1
+ #! /usr/bin/env bash
2
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
3
+
4
+ set -e
5
+ set -o pipefail
6
+
7
+ if [ "$1" ]; then
8
+ # Target file specified on command line
9
+ TARGET="$1"
10
+ else
11
+ # Interactively choose a group and file name
12
+ DIRS="`find unreleased_history/ -mindepth 1 -maxdepth 1 -type d`"
13
+ echo "Choose a group for new release note:"
14
+ echo "$DIRS" | grep -nEo '[^/]+$'
15
+ echo -n "Enter a number: "
16
+ while [ ! "$DIRNUM" ]; do read -r DIRNUM; done
17
+ DIR="$(echo "$DIRS" | head -n "$DIRNUM" | tail -1)"
18
+ echo "Choose a file name for new release note (e.g. improved_whatever.md):"
19
+ while [ ! "$FNAME" ]; do read -re FNAME; done
20
+ # Replace spaces with underscores
21
+ TARGET="$(echo "$DIR/$FNAME" | tr ' ' '_')"
22
+ fi
23
+
24
+ # Edit/create the file
25
+ ${EDITOR:-nano} "$TARGET"
26
+ # Add to version control (easy to forget!)
27
+ git add "$TARGET"
@@ -0,0 +1,104 @@
1
+ #! /usr/bin/env bash
2
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
3
+
4
+ set -e
5
+
6
+ if [ ! -d unreleased_history ]; then
7
+ echo "Can't find unreleased_history/ directory"
8
+ exit 1
9
+ fi
10
+
11
+ GIT_PATHS="unreleased_history/ HISTORY.md"
12
+ if [ ! "$DRY_RUN" ]; then
13
+ # Check for uncommitted changes
14
+ UNCOMMITTED="$(git diff -- $GIT_PATHS)"
15
+ if [ "$UNCOMMITTED" ]; then
16
+ echo 'Uncommitted changes to files to be modified. Please commit first to'
17
+ echo 'ensure a clean revert path. You can always `git commit -a --amend`'
18
+ echo 'to add more changes to your commit.'
19
+ exit 2
20
+ fi
21
+ fi
22
+
23
+ # Add first part of existing HISTORY file to new version
24
+ awk '{ print } /NOTE/ { exit(0) }' < HISTORY.md > HISTORY.new
25
+
26
+ # And a blank line separator
27
+ echo >> HISTORY.new
28
+
29
+ # Add new version header
30
+ awk '/#define ROCKSDB_MAJOR/ { major = $3 }
31
+ /#define ROCKSDB_MINOR/ { minor = $3 }
32
+ /#define ROCKSDB_PATCH/ { patch = $3 }
33
+ END { printf "## " major "." minor "." patch }' < include/rocksdb/version.h >> HISTORY.new
34
+ echo " (`git log -n1 --date=format:"%m/%d/%Y" --format="%ad"`)" >> HISTORY.new
35
+
36
+ function process_file () {
37
+ # use awk to correct
38
+ # * extra or missing newlines
39
+ # * leading or trailing whitespace
40
+ # * missing '* ' on first line
41
+ awk '/./ { gsub(/^[ \t]+/, ""); gsub(/[ \t]+$/, "");
42
+ if (notfirstline || $1 == "*") print;
43
+ else print "* " $0;
44
+ notfirstline=1; }' < $1 >> HISTORY.new
45
+ echo git rm $1
46
+ if [ ! "$DRY_RUN" ]; then
47
+ git rm $1
48
+ fi
49
+ }
50
+
51
+ PROCESSED_DIRECTORIES=""
52
+
53
+ function process_dir () {
54
+ PROCESSED_DIRECTORIES="$PROCESSED_DIRECTORIES $1"
55
+ # ls will sort the files, including the permanent header file
56
+ FILES="$(ls unreleased_history/$1/)"
57
+ if [ "$FILES" ]; then
58
+ echo "### $2" >> HISTORY.new
59
+ for FILE in $FILES; do
60
+ process_file "unreleased_history/$1/$FILE"
61
+ done
62
+ echo >> HISTORY.new
63
+ echo "Saved entries from $1"
64
+ else
65
+ echo "Nothing new in $1"
66
+ fi
67
+ }
68
+
69
+ # Process dirs and files
70
+ process_dir new_features "New Features"
71
+ process_dir public_api_changes "Public API Changes"
72
+ process_dir behavior_changes "Behavior Changes"
73
+ process_dir bug_fixes "Bug Fixes"
74
+ process_dir performance_improvements "Performance Improvements"
75
+
76
+ # Check for unexpected files or dirs at top level. process_dir/process_file
77
+ # will deal with contents of these directories
78
+ EXPECTED_REGEX="[^/]*[.]sh|README[.]txt|$(echo $PROCESSED_DIRECTORIES | tr ' ' '|')"
79
+ platform=`uname`
80
+ if [ $platform = 'Darwin' ]; then
81
+ UNEXPECTED="$(find -E unreleased_history -mindepth 1 -maxdepth 1 -not -regex "[^/]*/($EXPECTED_REGEX)")"
82
+ else
83
+ UNEXPECTED="$(find unreleased_history/ -mindepth 1 -maxdepth 1 -regextype egrep -not -regex "[^/]*/($EXPECTED_REGEX)")"
84
+ fi
85
+ if [ "$UNEXPECTED" ]; then
86
+ echo "Unexpected files I don't know how to process:"
87
+ echo "$UNEXPECTED"
88
+ rm HISTORY.new
89
+ exit 3
90
+ fi
91
+
92
+ # Add rest of existing HISTORY file to new version (collapsing newlines)
93
+ awk '/./ { if (note) pr=1 }
94
+ /NOTE/ { note=1 }
95
+ { if (pr) print }' < HISTORY.md >> HISTORY.new
96
+
97
+ if [ "$DRY_RUN" ]; then
98
+ echo '==========================================='
99
+ diff -U3 HISTORY.md HISTORY.new || true
100
+ rm HISTORY.new
101
+ else
102
+ mv HISTORY.new HISTORY.md
103
+ echo "Done. Revert command: git checkout HEAD -- $GIT_PATHS"
104
+ fi
@@ -26,6 +26,11 @@ bool AsyncFileReader::MultiReadAsyncImpl(ReadAwaiter* awaiter) {
26
26
  FSReadRequest* read_req = static_cast<FSReadRequest*>(cb_arg);
27
27
  read_req->status = req.status;
28
28
  read_req->result = req.result;
29
+ if (req.fs_scratch != nullptr) {
30
+ // TODO akanksha: Revisit to remove the const in the callback.
31
+ FSReadRequest& req_tmp = const_cast<FSReadRequest&>(req);
32
+ read_req->fs_scratch = std::move(req_tmp.fs_scratch);
33
+ }
29
34
  },
30
35
  &awaiter->read_reqs_[i], &awaiter->io_handle_[i], &awaiter->del_fn_[i],
31
36
  /*aligned_buf=*/nullptr);
@@ -199,7 +199,7 @@ class FastLocalBloomImpl {
199
199
 
200
200
  static inline void AddHash(uint32_t h1, uint32_t h2, uint32_t len_bytes,
201
201
  int num_probes, char *data) {
202
- uint32_t bytes_to_cache_line = FastRange32(len_bytes >> 6, h1) << 6;
202
+ uint32_t bytes_to_cache_line = FastRange32(h1, len_bytes >> 6) << 6;
203
203
  AddHashPrepared(h2, num_probes, data + bytes_to_cache_line);
204
204
  }
205
205
 
@@ -216,7 +216,7 @@ class FastLocalBloomImpl {
216
216
  static inline void PrepareHash(uint32_t h1, uint32_t len_bytes,
217
217
  const char *data,
218
218
  uint32_t /*out*/ *byte_offset) {
219
- uint32_t bytes_to_cache_line = FastRange32(len_bytes >> 6, h1) << 6;
219
+ uint32_t bytes_to_cache_line = FastRange32(h1, len_bytes >> 6) << 6;
220
220
  PREFETCH(data + bytes_to_cache_line, 0 /* rw */, 1 /* locality */);
221
221
  PREFETCH(data + bytes_to_cache_line + 63, 0 /* rw */, 1 /* locality */);
222
222
  *byte_offset = bytes_to_cache_line;
@@ -224,7 +224,7 @@ class FastLocalBloomImpl {
224
224
 
225
225
  static inline bool HashMayMatch(uint32_t h1, uint32_t h2, uint32_t len_bytes,
226
226
  int num_probes, const char *data) {
227
- uint32_t bytes_to_cache_line = FastRange32(len_bytes >> 6, h1) << 6;
227
+ uint32_t bytes_to_cache_line = FastRange32(h1, len_bytes >> 6) << 6;
228
228
  return HashMayMatchPrepared(h2, num_probes, data + bytes_to_cache_line);
229
229
  }
230
230
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  #pragma once
7
7
 
8
+ #include <memory>
8
9
  #include <type_traits>
9
10
 
10
11
  #include "rocksdb/rocksdb_namespace.h"
@@ -23,6 +24,19 @@ inline DestClass* static_cast_with_check(SrcClass* x) {
23
24
  return ret;
24
25
  }
25
26
 
27
+ template <class DestClass, class SrcClass>
28
+ inline std::shared_ptr<DestClass> static_cast_with_check(
29
+ std::shared_ptr<SrcClass>&& x) {
30
+ #if defined(ROCKSDB_USE_RTTI) && !defined(NDEBUG)
31
+ auto orig_raw = x.get();
32
+ #endif
33
+ auto ret = std::static_pointer_cast<DestClass>(std::move(x));
34
+ #if defined(ROCKSDB_USE_RTTI) && !defined(NDEBUG)
35
+ assert(ret.get() == dynamic_cast<DestClass*>(orig_raw));
36
+ #endif
37
+ return ret;
38
+ }
39
+
26
40
  // A wrapper around static_cast for lossless conversion between integral
27
41
  // types, including enum types. For example, this can be used for converting
28
42
  // between signed/unsigned or enum type and underlying type without fear of
@@ -12,6 +12,7 @@ void CompactionJobStats::Reset() {
12
12
  elapsed_micros = 0;
13
13
  cpu_micros = 0;
14
14
 
15
+ has_num_input_records = true;
15
16
  num_input_records = 0;
16
17
  num_blobs_read = 0;
17
18
  num_input_files = 0;
@@ -55,6 +56,7 @@ void CompactionJobStats::Add(const CompactionJobStats& stats) {
55
56
  elapsed_micros += stats.elapsed_micros;
56
57
  cpu_micros += stats.cpu_micros;
57
58
 
59
+ has_num_input_records &= stats.has_num_input_records;
58
60
  num_input_records += stats.num_input_records;
59
61
  num_blobs_read += stats.num_blobs_read;
60
62
  num_input_files += stats.num_input_files;
@@ -250,6 +250,12 @@ class ComparatorWithU64TsImpl : public Comparator {
250
250
 
251
251
  const char* Name() const override { return kClassName(); }
252
252
 
253
+ // The comparator that compares the user key without timestamp part is treated
254
+ // as the root comparator.
255
+ const Comparator* GetRootComparator() const override {
256
+ return &cmp_without_ts_;
257
+ }
258
+
253
259
  void FindShortSuccessor(std::string*) const override {}
254
260
  void FindShortestSeparator(std::string*, const Slice&) const override {}
255
261
  int Compare(const Slice& a, const Slice& b) const override {
@@ -316,24 +322,37 @@ const Comparator* BytewiseComparatorWithU64Ts() {
316
322
  return &comp_with_u64_ts;
317
323
  }
318
324
 
325
+ const Comparator* ReverseBytewiseComparatorWithU64Ts() {
326
+ STATIC_AVOID_DESTRUCTION(
327
+ ComparatorWithU64TsImpl<ReverseBytewiseComparatorImpl>, comp_with_u64_ts);
328
+ return &comp_with_u64_ts;
329
+ }
330
+
319
331
  static int RegisterBuiltinComparators(ObjectLibrary& library,
320
332
  const std::string& /*arg*/) {
321
333
  library.AddFactory<const Comparator>(
322
334
  BytewiseComparatorImpl::kClassName(),
323
335
  [](const std::string& /*uri*/,
324
- std::unique_ptr<const Comparator>* /*guard */,
325
- std::string* /* errmsg */) { return BytewiseComparator(); });
336
+ std::unique_ptr<const Comparator>* /*guard*/,
337
+ std::string* /*errmsg*/) { return BytewiseComparator(); });
326
338
  library.AddFactory<const Comparator>(
327
339
  ReverseBytewiseComparatorImpl::kClassName(),
328
340
  [](const std::string& /*uri*/,
329
- std::unique_ptr<const Comparator>* /*guard */,
330
- std::string* /* errmsg */) { return ReverseBytewiseComparator(); });
341
+ std::unique_ptr<const Comparator>* /*guard*/,
342
+ std::string* /*errmsg*/) { return ReverseBytewiseComparator(); });
331
343
  library.AddFactory<const Comparator>(
332
344
  ComparatorWithU64TsImpl<BytewiseComparatorImpl>::kClassName(),
333
345
  [](const std::string& /*uri*/,
334
- std::unique_ptr<const Comparator>* /*guard */,
335
- std::string* /* errmsg */) { return BytewiseComparatorWithU64Ts(); });
336
- return 3;
346
+ std::unique_ptr<const Comparator>* /*guard*/,
347
+ std::string* /*errmsg*/) { return BytewiseComparatorWithU64Ts(); });
348
+ library.AddFactory<const Comparator>(
349
+ ComparatorWithU64TsImpl<ReverseBytewiseComparatorImpl>::kClassName(),
350
+ [](const std::string& /*uri*/,
351
+ std::unique_ptr<const Comparator>* /*guard*/,
352
+ std::string* /*errmsg*/) {
353
+ return ReverseBytewiseComparatorWithU64Ts();
354
+ });
355
+ return 4;
337
356
  }
338
357
 
339
358
  Status Comparator::CreateFromString(const ConfigOptions& config_options,
@@ -357,6 +376,9 @@ Status Comparator::CreateFromString(const ConfigOptions& config_options,
357
376
  } else if (id ==
358
377
  ComparatorWithU64TsImpl<BytewiseComparatorImpl>::kClassName()) {
359
378
  *result = BytewiseComparatorWithU64Ts();
379
+ } else if (id == ComparatorWithU64TsImpl<
380
+ ReverseBytewiseComparatorImpl>::kClassName()) {
381
+ *result = ReverseBytewiseComparatorWithU64Ts();
360
382
  } else if (value.empty()) {
361
383
  // No Id and no options. Clear the object
362
384
  *result = nullptr;
@@ -48,7 +48,7 @@ int ZSTDStreamingCompress::Compress(const char* input, size_t input_size,
48
48
  if (input_size == 0) {
49
49
  return 0;
50
50
  }
51
- #ifndef ZSTD_STREAMING
51
+ #ifndef ZSTD_ADVANCED
52
52
  (void)input;
53
53
  (void)input_size;
54
54
  (void)output;
@@ -77,7 +77,7 @@ int ZSTDStreamingCompress::Compress(const char* input, size_t input_size,
77
77
  }
78
78
 
79
79
  void ZSTDStreamingCompress::Reset() {
80
- #ifdef ZSTD_STREAMING
80
+ #ifdef ZSTD_ADVANCED
81
81
  ZSTD_CCtx_reset(cctx_, ZSTD_ResetDirective::ZSTD_reset_session_only);
82
82
  input_buffer_ = {/*src=*/nullptr, /*size=*/0, /*pos=*/0};
83
83
  #endif
@@ -91,7 +91,7 @@ int ZSTDStreamingUncompress::Uncompress(const char* input, size_t input_size,
91
91
  if (input_size == 0) {
92
92
  return 0;
93
93
  }
94
- #ifdef ZSTD_STREAMING
94
+ #ifdef ZSTD_ADVANCED
95
95
  if (input) {
96
96
  // New input
97
97
  input_buffer_ = {input, input_size, /*pos=*/0};
@@ -113,7 +113,7 @@ int ZSTDStreamingUncompress::Uncompress(const char* input, size_t input_size,
113
113
  }
114
114
 
115
115
  void ZSTDStreamingUncompress::Reset() {
116
- #ifdef ZSTD_STREAMING
116
+ #ifdef ZSTD_ADVANCED
117
117
  ZSTD_DCtx_reset(dctx_, ZSTD_ResetDirective::ZSTD_reset_session_only);
118
118
  input_buffer_ = {/*src=*/nullptr, /*size=*/0, /*pos=*/0};
119
119
  #endif