rocksdb-native 2.6.2 → 2.6.4

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 (956) hide show
  1. package/CMakeLists.txt +29 -17
  2. package/binding.js +1 -1
  3. package/package.json +7 -4
  4. package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
  5. package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
  6. package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
  7. package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
  8. package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
  9. package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
  10. package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
  11. package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
  12. package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
  13. package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
  14. package/prebuilds/linux-x64/rocksdb-native.node +0 -0
  15. package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
  16. package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
  17. package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
  18. package/prebuilds/win32-x64/rocksdb-native.node +0 -0
  19. package/vendor/librocksdb/CMakeLists.txt +0 -94
  20. package/vendor/librocksdb/LICENSE +0 -201
  21. package/vendor/librocksdb/NOTICE +0 -13
  22. package/vendor/librocksdb/README.md +0 -11
  23. package/vendor/librocksdb/include/rocksdb.h +0 -294
  24. package/vendor/librocksdb/src/rocksdb.cc +0 -714
  25. package/vendor/librocksdb/vendor/rocksdb/CMakeLists.txt +0 -1642
  26. package/vendor/librocksdb/vendor/rocksdb/cache/cache.cc +0 -193
  27. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench.cc +0 -20
  28. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench_tool.cc +0 -1177
  29. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.cc +0 -104
  30. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.h +0 -20
  31. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_stats.h +0 -182
  32. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.cc +0 -41
  33. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.h +0 -139
  34. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.cc +0 -364
  35. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.h +0 -143
  36. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.cc +0 -184
  37. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.h +0 -318
  38. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.cc +0 -111
  39. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.h +0 -61
  40. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.cc +0 -3657
  41. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.h +0 -1165
  42. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.cc +0 -414
  43. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.h +0 -151
  44. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.cc +0 -726
  45. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.h +0 -467
  46. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache.cc +0 -12
  47. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.cc +0 -743
  48. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.h +0 -103
  49. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.cc +0 -147
  50. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.h +0 -322
  51. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.cc +0 -125
  52. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.h +0 -158
  53. package/vendor/librocksdb/vendor/rocksdb/cache/typed_cache.h +0 -380
  54. package/vendor/librocksdb/vendor/rocksdb/cmake/RocksDBConfig.cmake.in +0 -54
  55. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.cc +0 -182
  56. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.h +0 -128
  57. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.cc +0 -20
  58. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.h +0 -83
  59. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_constants.h +0 -16
  60. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.cc +0 -42
  61. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.h +0 -60
  62. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_counting_iterator.h +0 -150
  63. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.cc +0 -34
  64. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.h +0 -37
  65. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.cc +0 -156
  66. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.h +0 -67
  67. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.cc +0 -429
  68. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.h +0 -113
  69. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.cc +0 -101
  70. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.h +0 -56
  71. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_completion_callback.h +0 -84
  72. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.cc +0 -134
  73. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.h +0 -57
  74. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.cc +0 -62
  75. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.h +0 -170
  76. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.cc +0 -622
  77. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.h +0 -111
  78. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.cc +0 -100
  79. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.h +0 -102
  80. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_index.h +0 -187
  81. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.cc +0 -143
  82. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.h +0 -164
  83. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.cc +0 -133
  84. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.h +0 -83
  85. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.cc +0 -207
  86. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.h +0 -87
  87. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_read_request.h +0 -58
  88. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.cc +0 -459
  89. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.h +0 -161
  90. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.cc +0 -23
  91. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.h +0 -38
  92. package/vendor/librocksdb/vendor/rocksdb/db/builder.cc +0 -517
  93. package/vendor/librocksdb/vendor/rocksdb/db/builder.h +0 -76
  94. package/vendor/librocksdb/vendor/rocksdb/db/c.cc +0 -7133
  95. package/vendor/librocksdb/vendor/rocksdb/db/c_test.c +0 -4052
  96. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.cc +0 -47
  97. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.h +0 -79
  98. package/vendor/librocksdb/vendor/rocksdb/db/column_family.cc +0 -1859
  99. package/vendor/librocksdb/vendor/rocksdb/db/column_family.h +0 -918
  100. package/vendor/librocksdb/vendor/rocksdb/db/compaction/clipping_iterator.h +0 -281
  101. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.cc +0 -995
  102. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.h +0 -602
  103. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iteration_stats.h +0 -56
  104. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.cc +0 -1523
  105. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.h +0 -557
  106. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.cc +0 -2155
  107. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.h +0 -520
  108. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.cc +0 -802
  109. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.h +0 -411
  110. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.cc +0 -1245
  111. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.h +0 -322
  112. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.cc +0 -478
  113. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.h +0 -61
  114. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.cc +0 -977
  115. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.h +0 -32
  116. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +0 -1578
  117. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.h +0 -29
  118. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_service_job.cc +0 -835
  119. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.cc +0 -46
  120. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.h +0 -42
  121. package/vendor/librocksdb/vendor/rocksdb/db/compaction/file_pri.h +0 -94
  122. package/vendor/librocksdb/vendor/rocksdb/db/compaction/sst_partitioner.cc +0 -83
  123. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.cc +0 -106
  124. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.h +0 -220
  125. package/vendor/librocksdb/vendor/rocksdb/db/convenience.cc +0 -101
  126. package/vendor/librocksdb/vendor/rocksdb/db/convenience_impl.h +0 -15
  127. package/vendor/librocksdb/vendor/rocksdb/db/db_filesnapshot.cc +0 -506
  128. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.cc +0 -275
  129. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.h +0 -147
  130. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.cc +0 -6767
  131. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.h +0 -3056
  132. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +0 -4390
  133. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_debug.cc +0 -327
  134. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_experimental.cc +0 -164
  135. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_files.cc +0 -1032
  136. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.cc +0 -348
  137. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.h +0 -54
  138. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_open.cc +0 -2325
  139. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.cc +0 -376
  140. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.h +0 -179
  141. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +0 -1025
  142. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.h +0 -322
  143. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_write.cc +0 -2624
  144. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.cc +0 -165
  145. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.h +0 -15
  146. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.cc +0 -1774
  147. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.h +0 -444
  148. package/vendor/librocksdb/vendor/rocksdb/db/db_test2.cc +0 -7839
  149. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.cc +0 -1800
  150. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.h +0 -1427
  151. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.cc +0 -96
  152. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.h +0 -126
  153. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.cc +0 -282
  154. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.h +0 -1101
  155. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.cc +0 -806
  156. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.h +0 -149
  157. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.cc +0 -332
  158. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.h +0 -78
  159. package/vendor/librocksdb/vendor/rocksdb/db/experimental.cc +0 -1212
  160. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +0 -1249
  161. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.h +0 -268
  162. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.cc +0 -216
  163. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.h +0 -140
  164. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.cc +0 -1217
  165. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.h +0 -240
  166. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.cc +0 -86
  167. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.h +0 -55
  168. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.cc +0 -1082
  169. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.h +0 -166
  170. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator_bench.cc +0 -378
  171. package/vendor/librocksdb/vendor/rocksdb/db/history_trimming_iterator.h +0 -95
  172. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.cc +0 -463
  173. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.h +0 -91
  174. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.cc +0 -2198
  175. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.h +0 -896
  176. package/vendor/librocksdb/vendor/rocksdb/db/job_context.h +0 -254
  177. package/vendor/librocksdb/vendor/rocksdb/db/kv_checksum.h +0 -484
  178. package/vendor/librocksdb/vendor/rocksdb/db/log_format.h +0 -55
  179. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.cc +0 -958
  180. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.h +0 -245
  181. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.cc +0 -355
  182. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.h +0 -151
  183. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.cc +0 -67
  184. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.h +0 -62
  185. package/vendor/librocksdb/vendor/rocksdb/db/lookup_key.h +0 -68
  186. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.cc +0 -52
  187. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.h +0 -22
  188. package/vendor/librocksdb/vendor/rocksdb/db/memtable.cc +0 -1684
  189. package/vendor/librocksdb/vendor/rocksdb/db/memtable.h +0 -712
  190. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.cc +0 -1028
  191. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.h +0 -514
  192. package/vendor/librocksdb/vendor/rocksdb/db/merge_context.h +0 -150
  193. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.cc +0 -699
  194. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.h +0 -318
  195. package/vendor/librocksdb/vendor/rocksdb/db/merge_operator.cc +0 -167
  196. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator_impl.h +0 -296
  197. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.cc +0 -29
  198. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.h +0 -45
  199. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.cc +0 -110
  200. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.h +0 -108
  201. package/vendor/librocksdb/vendor/rocksdb/db/pinned_iterators_manager.h +0 -92
  202. package/vendor/librocksdb/vendor/rocksdb/db/post_memtable_callback.h +0 -25
  203. package/vendor/librocksdb/vendor/rocksdb/db/pre_release_callback.h +0 -37
  204. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.cc +0 -553
  205. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.h +0 -481
  206. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator_bench.cc +0 -280
  207. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.cc +0 -515
  208. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.h +0 -361
  209. package/vendor/librocksdb/vendor/rocksdb/db/read_callback.h +0 -54
  210. package/vendor/librocksdb/vendor/rocksdb/db/repair.cc +0 -864
  211. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.cc +0 -573
  212. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.h +0 -307
  213. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_checker.h +0 -58
  214. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.cc +0 -25
  215. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.h +0 -239
  216. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.cc +0 -745
  217. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.h +0 -298
  218. package/vendor/librocksdb/vendor/rocksdb/db/table_cache_sync_and_async.h +0 -135
  219. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.cc +0 -74
  220. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.h +0 -185
  221. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.cc +0 -296
  222. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.h +0 -128
  223. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.cc +0 -54
  224. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.h +0 -46
  225. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.cc +0 -1431
  226. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.h +0 -93
  227. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.cc +0 -1119
  228. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.h +0 -769
  229. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.cc +0 -1264
  230. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.h +0 -390
  231. package/vendor/librocksdb/vendor/rocksdb/db/version_set.cc +0 -7562
  232. package/vendor/librocksdb/vendor/rocksdb/db/version_set.h +0 -1799
  233. package/vendor/librocksdb/vendor/rocksdb/db/version_set_sync_and_async.h +0 -169
  234. package/vendor/librocksdb/vendor/rocksdb/db/version_util.h +0 -77
  235. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.cc +0 -211
  236. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.h +0 -177
  237. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.cc +0 -539
  238. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.h +0 -138
  239. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.cc +0 -166
  240. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.h +0 -57
  241. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns.cc +0 -22
  242. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.cc +0 -52
  243. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.h +0 -40
  244. package/vendor/librocksdb/vendor/rocksdb/db/write_batch.cc +0 -3394
  245. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_base.cc +0 -94
  246. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_internal.h +0 -408
  247. package/vendor/librocksdb/vendor/rocksdb/db/write_callback.h +0 -27
  248. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.cc +0 -121
  249. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.h +0 -148
  250. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.cc +0 -179
  251. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.h +0 -47
  252. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.cc +0 -931
  253. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.h +0 -498
  254. package/vendor/librocksdb/vendor/rocksdb/env/composite_env.cc +0 -534
  255. package/vendor/librocksdb/vendor/rocksdb/env/composite_env_wrapper.h +0 -399
  256. package/vendor/librocksdb/vendor/rocksdb/env/emulated_clock.h +0 -114
  257. package/vendor/librocksdb/vendor/rocksdb/env/env.cc +0 -1253
  258. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.cc +0 -149
  259. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.h +0 -55
  260. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption.cc +0 -1192
  261. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption_ctr.h +0 -97
  262. package/vendor/librocksdb/vendor/rocksdb/env/env_posix.cc +0 -530
  263. package/vendor/librocksdb/vendor/rocksdb/env/file_system.cc +0 -278
  264. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.cc +0 -564
  265. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.h +0 -461
  266. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.cc +0 -331
  267. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.h +0 -139
  268. package/vendor/librocksdb/vendor/rocksdb/env/fs_posix.cc +0 -1285
  269. package/vendor/librocksdb/vendor/rocksdb/env/fs_readonly.h +0 -105
  270. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.cc +0 -341
  271. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.h +0 -137
  272. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.cc +0 -1738
  273. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.h +0 -517
  274. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.cc +0 -1058
  275. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.h +0 -144
  276. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.cc +0 -243
  277. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.h +0 -119
  278. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.cc +0 -513
  279. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.h +0 -200
  280. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.cc +0 -992
  281. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.h +0 -629
  282. package/vendor/librocksdb/vendor/rocksdb/file/file_util.cc +0 -308
  283. package/vendor/librocksdb/vendor/rocksdb/file/file_util.h +0 -123
  284. package/vendor/librocksdb/vendor/rocksdb/file/filename.cc +0 -538
  285. package/vendor/librocksdb/vendor/rocksdb/file/filename.h +0 -186
  286. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.cc +0 -73
  287. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.h +0 -60
  288. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.cc +0 -639
  289. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.h +0 -197
  290. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.cc +0 -33
  291. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.h +0 -31
  292. package/vendor/librocksdb/vendor/rocksdb/file/readahead_file_info.h +0 -33
  293. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.cc +0 -169
  294. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.h +0 -29
  295. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.cc +0 -324
  296. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.h +0 -127
  297. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.cc +0 -525
  298. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.h +0 -220
  299. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.cc +0 -1007
  300. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.h +0 -370
  301. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_cache.h +0 -665
  302. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_options.h +0 -1101
  303. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/attribute_groups.h +0 -114
  304. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/block_cache_trace_writer.h +0 -149
  305. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/c.h +0 -3122
  306. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache.h +0 -579
  307. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache_bench_tool.h +0 -14
  308. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cleanable.h +0 -128
  309. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_filter.h +0 -374
  310. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_job_stats.h +0 -112
  311. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/comparator.h +0 -231
  312. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compression_type.h +0 -186
  313. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/concurrent_task_limiter.h +0 -51
  314. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/configurable.h +0 -390
  315. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/convenience.h +0 -466
  316. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/customizable.h +0 -229
  317. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/data_structure.h +0 -186
  318. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db.h +0 -2174
  319. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_bench_tool.h +0 -11
  320. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_dump_tool.h +0 -43
  321. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_stress_tool.h +0 -11
  322. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env.h +0 -1920
  323. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env_encryption.h +0 -363
  324. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/experimental.h +0 -492
  325. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_checksum.h +0 -146
  326. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_system.h +0 -1961
  327. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/filter_policy.h +0 -211
  328. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/flush_block_policy.h +0 -75
  329. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/functor_wrapper.h +0 -56
  330. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/io_status.h +0 -244
  331. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iostats_context.h +0 -98
  332. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator.h +0 -104
  333. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator_base.h +0 -90
  334. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/ldb_tool.h +0 -42
  335. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/listener.h +0 -869
  336. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memory_allocator.h +0 -87
  337. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memtablerep.h +0 -421
  338. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/merge_operator.h +0 -337
  339. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/metadata.h +0 -258
  340. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/options.h +0 -2339
  341. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_context.h +0 -319
  342. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_level.h +0 -39
  343. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/persistent_cache.h +0 -74
  344. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/port_defs.h +0 -26
  345. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rate_limiter.h +0 -172
  346. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rocksdb_namespace.h +0 -16
  347. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/secondary_cache.h +0 -220
  348. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice.h +0 -264
  349. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice_transform.h +0 -135
  350. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/snapshot.h +0 -53
  351. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_dump_tool.h +0 -17
  352. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_manager.h +0 -139
  353. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_reader.h +0 -61
  354. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_writer.h +0 -203
  355. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_partitioner.h +0 -142
  356. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/statistics.h +0 -794
  357. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/stats_history.h +0 -70
  358. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/status.h +0 -609
  359. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/system_clock.h +0 -129
  360. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table.h +0 -938
  361. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_properties.h +0 -380
  362. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_reader_caller.h +0 -41
  363. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/thread_status.h +0 -197
  364. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/threadpool.h +0 -67
  365. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_reader_writer.h +0 -52
  366. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record.h +0 -248
  367. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record_result.h +0 -187
  368. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/transaction_log.h +0 -128
  369. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/types.h +0 -113
  370. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/unique_id.h +0 -55
  371. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/universal_compaction.h +0 -127
  372. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/user_write_callback.h +0 -29
  373. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/agg_merge.h +0 -138
  374. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/backup_engine.h +0 -689
  375. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +0 -144
  376. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +0 -65
  377. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/convenience.h +0 -10
  378. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -321
  379. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/db_ttl.h +0 -70
  380. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/debug.h +0 -46
  381. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -179
  382. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/info_log_finder.h +0 -19
  383. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +0 -338
  384. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +0 -75
  385. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/leveldb_options.h +0 -145
  386. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  387. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
  388. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/memory_util.h +0 -48
  389. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/object_registry.h +0 -583
  390. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +0 -129
  391. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +0 -24
  392. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_type.h +0 -1222
  393. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_util.h +0 -105
  394. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/replayer.h +0 -85
  395. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/sim_cache.h +0 -92
  396. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +0 -593
  397. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +0 -133
  398. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction.h +0 -765
  399. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +0 -510
  400. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -89
  401. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/types_util.h +0 -36
  402. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -402
  403. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/version.h +0 -43
  404. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wal_filter.h +0 -111
  405. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wide_columns.h +0 -303
  406. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch.h +0 -518
  407. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch_base.h +0 -165
  408. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_buffer_manager.h +0 -183
  409. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.cc +0 -366
  410. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.h +0 -165
  411. package/vendor/librocksdb/vendor/rocksdb/logging/env_logger.h +0 -195
  412. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.cc +0 -68
  413. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.h +0 -202
  414. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.cc +0 -91
  415. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.h +0 -57
  416. package/vendor/librocksdb/vendor/rocksdb/logging/logging.h +0 -62
  417. package/vendor/librocksdb/vendor/rocksdb/memory/allocator.h +0 -58
  418. package/vendor/librocksdb/vendor/rocksdb/memory/arena.cc +0 -170
  419. package/vendor/librocksdb/vendor/rocksdb/memory/arena.h +0 -146
  420. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.cc +0 -45
  421. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.h +0 -215
  422. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.cc +0 -304
  423. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.h +0 -99
  424. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.cc +0 -44
  425. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.h +0 -43
  426. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator.cc +0 -81
  427. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator_impl.h +0 -47
  428. package/vendor/librocksdb/vendor/rocksdb/memory/memory_usage.h +0 -38
  429. package/vendor/librocksdb/vendor/rocksdb/memtable/alloc_tracker.cc +0 -63
  430. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_linklist_rep.cc +0 -925
  431. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_skiplist_rep.cc +0 -392
  432. package/vendor/librocksdb/vendor/rocksdb/memtable/inlineskiplist.h +0 -1051
  433. package/vendor/librocksdb/vendor/rocksdb/memtable/memtablerep_bench.cc +0 -687
  434. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplist.h +0 -498
  435. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplistrep.cc +0 -368
  436. package/vendor/librocksdb/vendor/rocksdb/memtable/stl_wrappers.h +0 -33
  437. package/vendor/librocksdb/vendor/rocksdb/memtable/vectorrep.cc +0 -307
  438. package/vendor/librocksdb/vendor/rocksdb/memtable/write_buffer_manager.cc +0 -185
  439. package/vendor/librocksdb/vendor/rocksdb/monitoring/file_read_sample.h +0 -23
  440. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.cc +0 -280
  441. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.h +0 -143
  442. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.cc +0 -198
  443. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.h +0 -84
  444. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.cc +0 -50
  445. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.h +0 -74
  446. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.cc +0 -90
  447. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.h +0 -126
  448. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context.cc +0 -78
  449. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context_imp.h +0 -62
  450. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context.cc +0 -317
  451. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context_imp.h +0 -103
  452. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level.cc +0 -23
  453. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level_imp.h +0 -14
  454. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_step_timer.h +0 -77
  455. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.cc +0 -173
  456. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.h +0 -83
  457. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics.cc +0 -561
  458. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics_impl.h +0 -143
  459. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_impl.cc +0 -163
  460. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.cc +0 -328
  461. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.h +0 -226
  462. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater_debug.cc +0 -43
  463. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.cc +0 -214
  464. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.h +0 -139
  465. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util_debug.cc +0 -60
  466. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.cc +0 -1218
  467. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.h +0 -352
  468. package/vendor/librocksdb/vendor/rocksdb/options/configurable.cc +0 -720
  469. package/vendor/librocksdb/vendor/rocksdb/options/configurable_helper.h +0 -185
  470. package/vendor/librocksdb/vendor/rocksdb/options/configurable_test.h +0 -116
  471. package/vendor/librocksdb/vendor/rocksdb/options/customizable.cc +0 -133
  472. package/vendor/librocksdb/vendor/rocksdb/options/db_options.cc +0 -1113
  473. package/vendor/librocksdb/vendor/rocksdb/options/db_options.h +0 -160
  474. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.cc +0 -59
  475. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.h +0 -37
  476. package/vendor/librocksdb/vendor/rocksdb/options/options.cc +0 -717
  477. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.cc +0 -1438
  478. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.h +0 -115
  479. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.cc +0 -745
  480. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.h +0 -151
  481. package/vendor/librocksdb/vendor/rocksdb/port/jemalloc_helper.h +0 -107
  482. package/vendor/librocksdb/vendor/rocksdb/port/lang.h +0 -97
  483. package/vendor/librocksdb/vendor/rocksdb/port/likely.h +0 -18
  484. package/vendor/librocksdb/vendor/rocksdb/port/malloc.h +0 -17
  485. package/vendor/librocksdb/vendor/rocksdb/port/mmap.cc +0 -98
  486. package/vendor/librocksdb/vendor/rocksdb/port/mmap.h +0 -90
  487. package/vendor/librocksdb/vendor/rocksdb/port/port.h +0 -21
  488. package/vendor/librocksdb/vendor/rocksdb/port/port_dirent.h +0 -44
  489. package/vendor/librocksdb/vendor/rocksdb/port/port_example.h +0 -101
  490. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.cc +0 -300
  491. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.h +0 -246
  492. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.cc +0 -418
  493. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.h +0 -31
  494. package/vendor/librocksdb/vendor/rocksdb/port/sys_time.h +0 -63
  495. package/vendor/librocksdb/vendor/rocksdb/port/util_logger.h +0 -18
  496. package/vendor/librocksdb/vendor/rocksdb/port/win/env_default.cc +0 -45
  497. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.cc +0 -1436
  498. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.h +0 -305
  499. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.cc +0 -1101
  500. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.h +0 -504
  501. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.cc +0 -305
  502. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.h +0 -382
  503. package/vendor/librocksdb/vendor/rocksdb/port/win/win_jemalloc.cc +0 -80
  504. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.cc +0 -192
  505. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.h +0 -64
  506. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.cc +0 -170
  507. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.h +0 -117
  508. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.cc +0 -210
  509. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.h +0 -26
  510. package/vendor/librocksdb/vendor/rocksdb/port/xpress.h +0 -17
  511. package/vendor/librocksdb/vendor/rocksdb/rocksdb.pc.in +0 -10
  512. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.cc +0 -119
  513. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.h +0 -56
  514. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +0 -73
  515. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.h +0 -48
  516. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.cc +0 -1341
  517. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.h +0 -969
  518. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.cc +0 -2148
  519. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.h +0 -208
  520. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.cc +0 -980
  521. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.h +0 -102
  522. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +0 -893
  523. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.h +0 -445
  524. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.cc +0 -3296
  525. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.h +0 -785
  526. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -205
  527. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +0 -819
  528. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.cc +0 -266
  529. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.h +0 -128
  530. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.cc +0 -108
  531. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.h +0 -190
  532. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.cc +0 -158
  533. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.h +0 -74
  534. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.cc +0 -226
  535. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.h +0 -70
  536. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_type.h +0 -34
  537. package/vendor/librocksdb/vendor/rocksdb/table/block_based/cachable_entry.h +0 -249
  538. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.cc +0 -59
  539. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.h +0 -25
  540. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.cc +0 -94
  541. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.h +0 -137
  542. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block.h +0 -189
  543. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +0 -169
  544. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.h +0 -79
  545. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy.cc +0 -1989
  546. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy_internal.h +0 -341
  547. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy.cc +0 -132
  548. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy_impl.h +0 -40
  549. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.cc +0 -297
  550. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.h +0 -142
  551. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.cc +0 -146
  552. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.h +0 -49
  553. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.cc +0 -305
  554. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.h +0 -534
  555. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.cc +0 -62
  556. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.h +0 -94
  557. package/vendor/librocksdb/vendor/rocksdb/table/block_based/mock_block_based_table.h +0 -62
  558. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.cc +0 -23
  559. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.h +0 -47
  560. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +0 -610
  561. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.h +0 -188
  562. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.cc +0 -164
  563. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.h +0 -160
  564. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +0 -264
  565. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.h +0 -58
  566. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.cc +0 -64
  567. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.h +0 -36
  568. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +0 -118
  569. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +0 -60
  570. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.cc +0 -458
  571. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.h +0 -168
  572. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.cc +0 -370
  573. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.h +0 -45
  574. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.cc +0 -555
  575. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -136
  576. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.cc +0 -100
  577. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.h +0 -80
  578. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.cc +0 -416
  579. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.h +0 -100
  580. package/vendor/librocksdb/vendor/rocksdb/table/format.cc +0 -708
  581. package/vendor/librocksdb/vendor/rocksdb/table/format.h +0 -439
  582. package/vendor/librocksdb/vendor/rocksdb/table/get_context.cc +0 -622
  583. package/vendor/librocksdb/vendor/rocksdb/table/get_context.h +0 -259
  584. package/vendor/librocksdb/vendor/rocksdb/table/internal_iterator.h +0 -242
  585. package/vendor/librocksdb/vendor/rocksdb/table/iter_heap.h +0 -44
  586. package/vendor/librocksdb/vendor/rocksdb/table/iterator.cc +0 -134
  587. package/vendor/librocksdb/vendor/rocksdb/table/iterator_wrapper.h +0 -225
  588. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.cc +0 -1755
  589. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.h +0 -100
  590. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.cc +0 -590
  591. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.h +0 -181
  592. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.cc +0 -355
  593. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.h +0 -92
  594. package/vendor/librocksdb/vendor/rocksdb/table/multiget_context.h +0 -405
  595. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.cc +0 -110
  596. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.h +0 -46
  597. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_options.h +0 -34
  598. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.cc +0 -78
  599. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.h +0 -132
  600. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.cc +0 -348
  601. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.h +0 -151
  602. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.cc +0 -295
  603. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.h +0 -180
  604. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.cc +0 -211
  605. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.h +0 -246
  606. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.cc +0 -508
  607. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.h +0 -199
  608. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.cc +0 -778
  609. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.h +0 -243
  610. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.cc +0 -601
  611. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.h +0 -104
  612. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_reader.cc +0 -166
  613. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer.cc +0 -536
  614. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer_collectors.h +0 -97
  615. package/vendor/librocksdb/vendor/rocksdb/table/table_builder.h +0 -239
  616. package/vendor/librocksdb/vendor/rocksdb/table/table_factory.cc +0 -52
  617. package/vendor/librocksdb/vendor/rocksdb/table/table_iterator.h +0 -69
  618. package/vendor/librocksdb/vendor/rocksdb/table/table_properties.cc +0 -357
  619. package/vendor/librocksdb/vendor/rocksdb/table/table_properties_internal.h +0 -14
  620. package/vendor/librocksdb/vendor/rocksdb/table/table_reader.h +0 -202
  621. package/vendor/librocksdb/vendor/rocksdb/table/table_reader_bench.cc +0 -341
  622. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.cc +0 -222
  623. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.h +0 -43
  624. package/vendor/librocksdb/vendor/rocksdb/table/unique_id.cc +0 -223
  625. package/vendor/librocksdb/vendor/rocksdb/table/unique_id_impl.h +0 -93
  626. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.cc +0 -38
  627. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.h +0 -109
  628. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.cc +0 -93
  629. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.h +0 -131
  630. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.cc +0 -82
  631. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.h +0 -182
  632. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.cc +0 -152
  633. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.h +0 -96
  634. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.cc +0 -105
  635. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.h +0 -124
  636. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.cc +0 -776
  637. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.h +0 -908
  638. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.cc +0 -400
  639. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.h +0 -147
  640. package/vendor/librocksdb/vendor/rocksdb/tools/CMakeLists.txt +0 -30
  641. package/vendor/librocksdb/vendor/rocksdb/tools/blob_dump.cc +0 -103
  642. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +0 -2331
  643. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +0 -398
  644. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +0 -17
  645. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench.cc +0 -21
  646. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench_tool.cc +0 -8743
  647. package/vendor/librocksdb/vendor/rocksdb/tools/db_repl_stress.cc +0 -132
  648. package/vendor/librocksdb/vendor/rocksdb/tools/dump/db_dump_tool.cc +0 -264
  649. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_dump.cc +0 -60
  650. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_undump.cc +0 -59
  651. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser.cc +0 -17
  652. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.cc +0 -142
  653. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.h +0 -38
  654. package/vendor/librocksdb/vendor/rocksdb/tools/ldb.cc +0 -13
  655. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd.cc +0 -5044
  656. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd_impl.h +0 -814
  657. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_tool.cc +0 -192
  658. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.cc +0 -244
  659. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.h +0 -124
  660. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump.cc +0 -12
  661. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump_tool.cc +0 -588
  662. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer.cc +0 -17
  663. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.cc +0 -1935
  664. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.h +0 -329
  665. package/vendor/librocksdb/vendor/rocksdb/tools/write_stress.cc +0 -305
  666. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.cc +0 -509
  667. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.h +0 -239
  668. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.cc +0 -303
  669. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.h +0 -185
  670. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record.cc +0 -206
  671. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.cc +0 -190
  672. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.h +0 -46
  673. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_result.cc +0 -146
  674. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.cc +0 -632
  675. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.h +0 -184
  676. package/vendor/librocksdb/vendor/rocksdb/util/aligned_buffer.h +0 -235
  677. package/vendor/librocksdb/vendor/rocksdb/util/aligned_storage.h +0 -24
  678. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.cc +0 -84
  679. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.h +0 -144
  680. package/vendor/librocksdb/vendor/rocksdb/util/atomic.h +0 -111
  681. package/vendor/librocksdb/vendor/rocksdb/util/autovector.h +0 -397
  682. package/vendor/librocksdb/vendor/rocksdb/util/bloom_impl.h +0 -489
  683. package/vendor/librocksdb/vendor/rocksdb/util/build_version.cc.in +0 -79
  684. package/vendor/librocksdb/vendor/rocksdb/util/cast_util.h +0 -88
  685. package/vendor/librocksdb/vendor/rocksdb/util/channel.h +0 -69
  686. package/vendor/librocksdb/vendor/rocksdb/util/cleanable.cc +0 -181
  687. package/vendor/librocksdb/vendor/rocksdb/util/coding.cc +0 -90
  688. package/vendor/librocksdb/vendor/rocksdb/util/coding.h +0 -385
  689. package/vendor/librocksdb/vendor/rocksdb/util/coding_lean.h +0 -101
  690. package/vendor/librocksdb/vendor/rocksdb/util/compaction_job_stats_impl.cc +0 -94
  691. package/vendor/librocksdb/vendor/rocksdb/util/comparator.cc +0 -443
  692. package/vendor/librocksdb/vendor/rocksdb/util/compression.cc +0 -122
  693. package/vendor/librocksdb/vendor/rocksdb/util/compression.h +0 -1879
  694. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.cc +0 -106
  695. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.h +0 -47
  696. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.cc +0 -64
  697. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.h +0 -67
  698. package/vendor/librocksdb/vendor/rocksdb/util/core_local.h +0 -85
  699. package/vendor/librocksdb/vendor/rocksdb/util/coro_utils.h +0 -112
  700. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.cc +0 -1295
  701. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.h +0 -56
  702. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.cc +0 -213
  703. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.h +0 -51
  704. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.c +0 -94
  705. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.h +0 -21
  706. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_asm.S +0 -756
  707. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_constants.h +0 -900
  708. package/vendor/librocksdb/vendor/rocksdb/util/data_structure.cc +0 -16
  709. package/vendor/librocksdb/vendor/rocksdb/util/defer.h +0 -82
  710. package/vendor/librocksdb/vendor/rocksdb/util/distributed_mutex.h +0 -50
  711. package/vendor/librocksdb/vendor/rocksdb/util/duplicate_detector.h +0 -69
  712. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.cc +0 -70
  713. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.h +0 -214
  714. package/vendor/librocksdb/vendor/rocksdb/util/fastrange.h +0 -114
  715. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.cc +0 -170
  716. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.h +0 -101
  717. package/vendor/librocksdb/vendor/rocksdb/util/filter_bench.cc +0 -840
  718. package/vendor/librocksdb/vendor/rocksdb/util/gflags_compat.h +0 -29
  719. package/vendor/librocksdb/vendor/rocksdb/util/hash.cc +0 -201
  720. package/vendor/librocksdb/vendor/rocksdb/util/hash.h +0 -141
  721. package/vendor/librocksdb/vendor/rocksdb/util/hash128.h +0 -26
  722. package/vendor/librocksdb/vendor/rocksdb/util/hash_containers.h +0 -51
  723. package/vendor/librocksdb/vendor/rocksdb/util/hash_map.h +0 -67
  724. package/vendor/librocksdb/vendor/rocksdb/util/heap.h +0 -174
  725. package/vendor/librocksdb/vendor/rocksdb/util/kv_map.h +0 -33
  726. package/vendor/librocksdb/vendor/rocksdb/util/log_write_bench.cc +0 -88
  727. package/vendor/librocksdb/vendor/rocksdb/util/math.h +0 -351
  728. package/vendor/librocksdb/vendor/rocksdb/util/math128.h +0 -338
  729. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.cc +0 -196
  730. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.h +0 -43
  731. package/vendor/librocksdb/vendor/rocksdb/util/mutexlock.h +0 -189
  732. package/vendor/librocksdb/vendor/rocksdb/util/overload.h +0 -23
  733. package/vendor/librocksdb/vendor/rocksdb/util/ppc-opcode.h +0 -27
  734. package/vendor/librocksdb/vendor/rocksdb/util/random.cc +0 -63
  735. package/vendor/librocksdb/vendor/rocksdb/util/random.h +0 -190
  736. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter.cc +0 -391
  737. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter_impl.h +0 -156
  738. package/vendor/librocksdb/vendor/rocksdb/util/repeatable_thread.h +0 -149
  739. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_alg.h +0 -1225
  740. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.cc +0 -498
  741. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.h +0 -182
  742. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_impl.h +0 -1137
  743. package/vendor/librocksdb/vendor/rocksdb/util/set_comparator.h +0 -24
  744. package/vendor/librocksdb/vendor/rocksdb/util/single_thread_executor.h +0 -57
  745. package/vendor/librocksdb/vendor/rocksdb/util/slice.cc +0 -366
  746. package/vendor/librocksdb/vendor/rocksdb/util/status.cc +0 -163
  747. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.cc +0 -62
  748. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.h +0 -41
  749. package/vendor/librocksdb/vendor/rocksdb/util/stop_watch.h +0 -136
  750. package/vendor/librocksdb/vendor/rocksdb/util/string_util.cc +0 -554
  751. package/vendor/librocksdb/vendor/rocksdb/util/string_util.h +0 -185
  752. package/vendor/librocksdb/vendor/rocksdb/util/thread_guard.h +0 -41
  753. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.cc +0 -521
  754. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.h +0 -100
  755. package/vendor/librocksdb/vendor/rocksdb/util/thread_operation.h +0 -122
  756. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.cc +0 -550
  757. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.h +0 -120
  758. package/vendor/librocksdb/vendor/rocksdb/util/timer.h +0 -340
  759. package/vendor/librocksdb/vendor/rocksdb/util/timer_queue.h +0 -231
  760. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.cc +0 -418
  761. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.h +0 -275
  762. package/vendor/librocksdb/vendor/rocksdb/util/user_comparator_wrapper.h +0 -64
  763. package/vendor/librocksdb/vendor/rocksdb/util/vector_iterator.h +0 -114
  764. package/vendor/librocksdb/vendor/rocksdb/util/work_queue.h +0 -150
  765. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.cc +0 -25
  766. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.h +0 -90
  767. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.cc +0 -48
  768. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.h +0 -6364
  769. package/vendor/librocksdb/vendor/rocksdb/util/xxph3.h +0 -1760
  770. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge.cc +0 -237
  771. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge_impl.h +0 -49
  772. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.cc +0 -103
  773. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.h +0 -47
  774. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine.cc +0 -3357
  775. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine_impl.h +0 -34
  776. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -490
  777. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.h +0 -202
  778. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.cc +0 -109
  779. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.h +0 -231
  780. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -54
  781. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.cc +0 -2269
  782. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +0 -514
  783. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -127
  784. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_iterator.h +0 -148
  785. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_listener.h +0 -71
  786. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.cc +0 -276
  787. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -56
  788. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.cc +0 -311
  789. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.h +0 -245
  790. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load.cc +0 -67
  791. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.cc +0 -389
  792. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.h +0 -368
  793. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +0 -104
  794. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +0 -57
  795. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_options.h +0 -41
  796. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.cc +0 -365
  797. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.h +0 -183
  798. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.cc +0 -76
  799. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.h +0 -43
  800. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/serialize.h +0 -81
  801. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.cc +0 -67
  802. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.h +0 -42
  803. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.cc +0 -472
  804. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.h +0 -64
  805. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +0 -41
  806. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -24
  807. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -26
  808. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters.cc +0 -52
  809. package/vendor/librocksdb/vendor/rocksdb/utilities/convenience/info_log_finder.cc +0 -26
  810. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.cc +0 -379
  811. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.h +0 -158
  812. package/vendor/librocksdb/vendor/rocksdb/utilities/debug.cc +0 -134
  813. package/vendor/librocksdb/vendor/rocksdb/utilities/env_mirror.cc +0 -280
  814. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.cc +0 -181
  815. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.h +0 -95
  816. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.cc +0 -555
  817. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.h +0 -252
  818. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.cc +0 -1507
  819. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.h +0 -760
  820. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.cc +0 -138
  821. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.h +0 -115
  822. package/vendor/librocksdb/vendor/rocksdb/utilities/leveldb_options/leveldb_options.cc +0 -57
  823. package/vendor/librocksdb/vendor/rocksdb/utilities/memory/memory_util.cc +0 -50
  824. package/vendor/librocksdb/vendor/rocksdb/utilities/memory_allocators.h +0 -103
  825. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.cc +0 -57
  826. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.h +0 -39
  827. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max.cc +0 -64
  828. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max_operator.h +0 -35
  829. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put.cc +0 -74
  830. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put_operator.h +0 -56
  831. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.cc +0 -97
  832. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.h +0 -42
  833. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.cc +0 -76
  834. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.h +0 -32
  835. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +0 -129
  836. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.h +0 -51
  837. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.cc +0 -56
  838. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.h +0 -35
  839. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.cc +0 -115
  840. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.h +0 -36
  841. package/vendor/librocksdb/vendor/rocksdb/utilities/object_registry.cc +0 -381
  842. package/vendor/librocksdb/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +0 -169
  843. package/vendor/librocksdb/vendor/rocksdb/utilities/options/options_util.cc +0 -117
  844. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -420
  845. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -154
  846. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +0 -607
  847. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -291
  848. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +0 -127
  849. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -84
  850. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -122
  851. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table.h +0 -237
  852. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_bench.cc +0 -310
  853. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -166
  854. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/lrulist.h +0 -172
  855. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +0 -355
  856. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -284
  857. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -165
  858. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -340
  859. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_util.h +0 -67
  860. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -138
  861. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -139
  862. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.cc +0 -287
  863. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.h +0 -231
  864. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/sim_cache.cc +0 -375
  865. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +0 -144
  866. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +0 -45
  867. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +0 -233
  868. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +0 -65
  869. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.cc +0 -132
  870. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.h +0 -48
  871. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.cc +0 -313
  872. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.h +0 -84
  873. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -27
  874. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.h +0 -80
  875. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_tracker.h +0 -207
  876. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +0 -718
  877. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +0 -222
  878. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +0 -324
  879. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -255
  880. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +0 -97
  881. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +0 -34
  882. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +0 -81
  883. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +0 -138
  884. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +0 -102
  885. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +0 -137
  886. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +0 -174
  887. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +0 -220
  888. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +0 -141
  889. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +0 -525
  890. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +0 -255
  891. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +0 -1021
  892. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +0 -580
  893. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +0 -525
  894. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +0 -263
  895. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +0 -178
  896. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +0 -518
  897. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +0 -302
  898. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +0 -118
  899. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +0 -92
  900. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +0 -211
  901. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +0 -124
  902. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +0 -215
  903. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +0 -43
  904. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +0 -130
  905. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +0 -87
  906. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +0 -286
  907. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +0 -87
  908. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +0 -520
  909. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +0 -179
  910. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +0 -197
  911. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +0 -31
  912. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +0 -139
  913. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +0 -165
  914. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +0 -98
  915. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +0 -144
  916. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +0 -199
  917. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +0 -141
  918. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +0 -794
  919. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +0 -1295
  920. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +0 -165
  921. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +0 -76
  922. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +0 -501
  923. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +0 -135
  924. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +0 -156
  925. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +0 -146
  926. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -208
  927. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.h +0 -99
  928. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +0 -111
  929. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +0 -110
  930. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +0 -1278
  931. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -345
  932. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +0 -845
  933. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +0 -345
  934. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/snapshot_checker.cc +0 -37
  935. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.cc +0 -912
  936. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.h +0 -455
  937. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -133
  938. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -24
  939. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_test.h +0 -589
  940. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.cc +0 -207
  941. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.h +0 -86
  942. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +0 -548
  943. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.h +0 -118
  944. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1100
  945. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +0 -1149
  946. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +0 -1089
  947. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.h +0 -333
  948. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -486
  949. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.h +0 -105
  950. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.cc +0 -638
  951. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.h +0 -239
  952. package/vendor/librocksdb/vendor/rocksdb/utilities/types_util.cc +0 -88
  953. package/vendor/librocksdb/vendor/rocksdb/utilities/wal_filter.cc +0 -22
  954. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +0 -1134
  955. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +0 -934
  956. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +0 -468
@@ -1,1684 +0,0 @@
1
- // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2
- // This source code is licensed under both the GPLv2 (found in the
3
- // COPYING file in the root directory) and Apache 2.0 License
4
- // (found in the LICENSE.Apache file in the root directory).
5
- //
6
- // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
7
- // Use of this source code is governed by a BSD-style license that can be
8
- // found in the LICENSE file. See the AUTHORS file for names of contributors.
9
-
10
- #include "db/memtable.h"
11
-
12
- #include <algorithm>
13
- #include <array>
14
- #include <limits>
15
- #include <memory>
16
- #include <optional>
17
-
18
- #include "db/dbformat.h"
19
- #include "db/kv_checksum.h"
20
- #include "db/merge_context.h"
21
- #include "db/merge_helper.h"
22
- #include "db/pinned_iterators_manager.h"
23
- #include "db/range_tombstone_fragmenter.h"
24
- #include "db/read_callback.h"
25
- #include "db/wide/wide_column_serialization.h"
26
- #include "logging/logging.h"
27
- #include "memory/arena.h"
28
- #include "memory/memory_usage.h"
29
- #include "monitoring/perf_context_imp.h"
30
- #include "monitoring/statistics_impl.h"
31
- #include "port/lang.h"
32
- #include "port/port.h"
33
- #include "rocksdb/comparator.h"
34
- #include "rocksdb/env.h"
35
- #include "rocksdb/iterator.h"
36
- #include "rocksdb/merge_operator.h"
37
- #include "rocksdb/slice_transform.h"
38
- #include "rocksdb/types.h"
39
- #include "rocksdb/write_buffer_manager.h"
40
- #include "table/internal_iterator.h"
41
- #include "table/iterator_wrapper.h"
42
- #include "table/merging_iterator.h"
43
- #include "util/autovector.h"
44
- #include "util/coding.h"
45
- #include "util/mutexlock.h"
46
-
47
- namespace ROCKSDB_NAMESPACE {
48
-
49
- ImmutableMemTableOptions::ImmutableMemTableOptions(
50
- const ImmutableOptions& ioptions,
51
- const MutableCFOptions& mutable_cf_options)
52
- : arena_block_size(mutable_cf_options.arena_block_size),
53
- memtable_prefix_bloom_bits(
54
- static_cast<uint32_t>(
55
- static_cast<double>(mutable_cf_options.write_buffer_size) *
56
- mutable_cf_options.memtable_prefix_bloom_size_ratio) *
57
- 8u),
58
- memtable_huge_page_size(mutable_cf_options.memtable_huge_page_size),
59
- memtable_whole_key_filtering(
60
- mutable_cf_options.memtable_whole_key_filtering),
61
- inplace_update_support(ioptions.inplace_update_support),
62
- inplace_update_num_locks(mutable_cf_options.inplace_update_num_locks),
63
- inplace_callback(ioptions.inplace_callback),
64
- max_successive_merges(mutable_cf_options.max_successive_merges),
65
- strict_max_successive_merges(
66
- mutable_cf_options.strict_max_successive_merges),
67
- statistics(ioptions.stats),
68
- merge_operator(ioptions.merge_operator.get()),
69
- info_log(ioptions.logger),
70
- allow_data_in_errors(ioptions.allow_data_in_errors),
71
- protection_bytes_per_key(
72
- mutable_cf_options.memtable_protection_bytes_per_key) {}
73
-
74
- MemTable::MemTable(const InternalKeyComparator& cmp,
75
- const ImmutableOptions& ioptions,
76
- const MutableCFOptions& mutable_cf_options,
77
- WriteBufferManager* write_buffer_manager,
78
- SequenceNumber latest_seq, uint32_t column_family_id)
79
- : comparator_(cmp),
80
- moptions_(ioptions, mutable_cf_options),
81
- refs_(0),
82
- kArenaBlockSize(Arena::OptimizeBlockSize(moptions_.arena_block_size)),
83
- mem_tracker_(write_buffer_manager),
84
- arena_(moptions_.arena_block_size,
85
- (write_buffer_manager != nullptr &&
86
- (write_buffer_manager->enabled() ||
87
- write_buffer_manager->cost_to_cache()))
88
- ? &mem_tracker_
89
- : nullptr,
90
- mutable_cf_options.memtable_huge_page_size),
91
- table_(ioptions.memtable_factory->CreateMemTableRep(
92
- comparator_, &arena_, mutable_cf_options.prefix_extractor.get(),
93
- ioptions.logger, column_family_id)),
94
- range_del_table_(SkipListFactory().CreateMemTableRep(
95
- comparator_, &arena_, nullptr /* transform */, ioptions.logger,
96
- column_family_id)),
97
- is_range_del_table_empty_(true),
98
- data_size_(0),
99
- num_entries_(0),
100
- num_deletes_(0),
101
- num_range_deletes_(0),
102
- write_buffer_size_(mutable_cf_options.write_buffer_size),
103
- flush_in_progress_(false),
104
- flush_completed_(false),
105
- file_number_(0),
106
- first_seqno_(0),
107
- earliest_seqno_(latest_seq),
108
- creation_seq_(latest_seq),
109
- mem_next_logfile_number_(0),
110
- min_prep_log_referenced_(0),
111
- locks_(moptions_.inplace_update_support
112
- ? moptions_.inplace_update_num_locks
113
- : 0),
114
- prefix_extractor_(mutable_cf_options.prefix_extractor.get()),
115
- flush_state_(FLUSH_NOT_REQUESTED),
116
- clock_(ioptions.clock),
117
- insert_with_hint_prefix_extractor_(
118
- ioptions.memtable_insert_with_hint_prefix_extractor.get()),
119
- oldest_key_time_(std::numeric_limits<uint64_t>::max()),
120
- atomic_flush_seqno_(kMaxSequenceNumber),
121
- approximate_memory_usage_(0),
122
- memtable_max_range_deletions_(
123
- mutable_cf_options.memtable_max_range_deletions) {
124
- UpdateFlushState();
125
- // something went wrong if we need to flush before inserting anything
126
- assert(!ShouldScheduleFlush());
127
-
128
- // use bloom_filter_ for both whole key and prefix bloom filter
129
- if ((prefix_extractor_ || moptions_.memtable_whole_key_filtering) &&
130
- moptions_.memtable_prefix_bloom_bits > 0) {
131
- bloom_filter_.reset(
132
- new DynamicBloom(&arena_, moptions_.memtable_prefix_bloom_bits,
133
- 6 /* hard coded 6 probes */,
134
- moptions_.memtable_huge_page_size, ioptions.logger));
135
- }
136
- // Initialize cached_range_tombstone_ here since it could
137
- // be read before it is constructed in MemTable::Add(), which could also lead
138
- // to a data race on the global mutex table backing atomic shared_ptr.
139
- auto new_cache = std::make_shared<FragmentedRangeTombstoneListCache>();
140
- size_t size = cached_range_tombstone_.Size();
141
- for (size_t i = 0; i < size; ++i) {
142
- std::shared_ptr<FragmentedRangeTombstoneListCache>* local_cache_ref_ptr =
143
- cached_range_tombstone_.AccessAtCore(i);
144
- auto new_local_cache_ref = std::make_shared<
145
- const std::shared_ptr<FragmentedRangeTombstoneListCache>>(new_cache);
146
- std::atomic_store_explicit(
147
- local_cache_ref_ptr,
148
- std::shared_ptr<FragmentedRangeTombstoneListCache>(new_local_cache_ref,
149
- new_cache.get()),
150
- std::memory_order_relaxed);
151
- }
152
- const Comparator* ucmp = cmp.user_comparator();
153
- assert(ucmp);
154
- ts_sz_ = ucmp->timestamp_size();
155
- persist_user_defined_timestamps_ = ioptions.persist_user_defined_timestamps;
156
- }
157
-
158
- MemTable::~MemTable() {
159
- mem_tracker_.FreeMem();
160
- assert(refs_ == 0);
161
- }
162
-
163
- size_t MemTable::ApproximateMemoryUsage() {
164
- autovector<size_t> usages = {
165
- arena_.ApproximateMemoryUsage(), table_->ApproximateMemoryUsage(),
166
- range_del_table_->ApproximateMemoryUsage(),
167
- ROCKSDB_NAMESPACE::ApproximateMemoryUsage(insert_hints_)};
168
- size_t total_usage = 0;
169
- for (size_t usage : usages) {
170
- // If usage + total_usage >= kMaxSizet, return kMaxSizet.
171
- // the following variation is to avoid numeric overflow.
172
- if (usage >= std::numeric_limits<size_t>::max() - total_usage) {
173
- return std::numeric_limits<size_t>::max();
174
- }
175
- total_usage += usage;
176
- }
177
- approximate_memory_usage_.store(total_usage, std::memory_order_relaxed);
178
- // otherwise, return the actual usage
179
- return total_usage;
180
- }
181
-
182
- bool MemTable::ShouldFlushNow() {
183
- // This is set if memtable_max_range_deletions is > 0,
184
- // and that many range deletions are done
185
- if (memtable_max_range_deletions_ > 0 &&
186
- num_range_deletes_.load(std::memory_order_relaxed) >=
187
- static_cast<uint64_t>(memtable_max_range_deletions_)) {
188
- return true;
189
- }
190
-
191
- size_t write_buffer_size = write_buffer_size_.load(std::memory_order_relaxed);
192
- // In a lot of times, we cannot allocate arena blocks that exactly matches the
193
- // buffer size. Thus we have to decide if we should over-allocate or
194
- // under-allocate.
195
- // This constant variable can be interpreted as: if we still have more than
196
- // "kAllowOverAllocationRatio * kArenaBlockSize" space left, we'd try to over
197
- // allocate one more block.
198
- const double kAllowOverAllocationRatio = 0.6;
199
-
200
- // If arena still have room for new block allocation, we can safely say it
201
- // shouldn't flush.
202
- auto allocated_memory = table_->ApproximateMemoryUsage() +
203
- range_del_table_->ApproximateMemoryUsage() +
204
- arena_.MemoryAllocatedBytes();
205
-
206
- approximate_memory_usage_.store(allocated_memory, std::memory_order_relaxed);
207
-
208
- // if we can still allocate one more block without exceeding the
209
- // over-allocation ratio, then we should not flush.
210
- if (allocated_memory + kArenaBlockSize <
211
- write_buffer_size + kArenaBlockSize * kAllowOverAllocationRatio) {
212
- return false;
213
- }
214
-
215
- // if user keeps adding entries that exceeds write_buffer_size, we need to
216
- // flush earlier even though we still have much available memory left.
217
- if (allocated_memory >
218
- write_buffer_size + kArenaBlockSize * kAllowOverAllocationRatio) {
219
- return true;
220
- }
221
-
222
- // In this code path, Arena has already allocated its "last block", which
223
- // means the total allocatedmemory size is either:
224
- // (1) "moderately" over allocated the memory (no more than `0.6 * arena
225
- // block size`. Or,
226
- // (2) the allocated memory is less than write buffer size, but we'll stop
227
- // here since if we allocate a new arena block, we'll over allocate too much
228
- // more (half of the arena block size) memory.
229
- //
230
- // In either case, to avoid over-allocate, the last block will stop allocation
231
- // when its usage reaches a certain ratio, which we carefully choose "0.75
232
- // full" as the stop condition because it addresses the following issue with
233
- // great simplicity: What if the next inserted entry's size is
234
- // bigger than AllocatedAndUnused()?
235
- //
236
- // The answer is: if the entry size is also bigger than 0.25 *
237
- // kArenaBlockSize, a dedicated block will be allocated for it; otherwise
238
- // arena will anyway skip the AllocatedAndUnused() and allocate a new, empty
239
- // and regular block. In either case, we *overly* over-allocated.
240
- //
241
- // Therefore, setting the last block to be at most "0.75 full" avoids both
242
- // cases.
243
- //
244
- // NOTE: the average percentage of waste space of this approach can be counted
245
- // as: "arena block size * 0.25 / write buffer size". User who specify a small
246
- // write buffer size and/or big arena block size may suffer.
247
- return arena_.AllocatedAndUnused() < kArenaBlockSize / 4;
248
- }
249
-
250
- void MemTable::UpdateFlushState() {
251
- auto state = flush_state_.load(std::memory_order_relaxed);
252
- if (state == FLUSH_NOT_REQUESTED && ShouldFlushNow()) {
253
- // ignore CAS failure, because that means somebody else requested
254
- // a flush
255
- flush_state_.compare_exchange_strong(state, FLUSH_REQUESTED,
256
- std::memory_order_relaxed,
257
- std::memory_order_relaxed);
258
- }
259
- }
260
-
261
- void MemTable::UpdateOldestKeyTime() {
262
- uint64_t oldest_key_time = oldest_key_time_.load(std::memory_order_relaxed);
263
- if (oldest_key_time == std::numeric_limits<uint64_t>::max()) {
264
- int64_t current_time = 0;
265
- auto s = clock_->GetCurrentTime(&current_time);
266
- if (s.ok()) {
267
- assert(current_time >= 0);
268
- // If fail, the timestamp is already set.
269
- oldest_key_time_.compare_exchange_strong(
270
- oldest_key_time, static_cast<uint64_t>(current_time),
271
- std::memory_order_relaxed, std::memory_order_relaxed);
272
- }
273
- }
274
- }
275
-
276
- Status MemTable::VerifyEntryChecksum(const char* entry,
277
- uint32_t protection_bytes_per_key,
278
- bool allow_data_in_errors) {
279
- if (protection_bytes_per_key == 0) {
280
- return Status::OK();
281
- }
282
- uint32_t key_length;
283
- const char* key_ptr = GetVarint32Ptr(entry, entry + 5, &key_length);
284
- if (key_ptr == nullptr) {
285
- return Status::Corruption("Unable to parse internal key length");
286
- }
287
- if (key_length < 8) {
288
- return Status::Corruption("Memtable entry internal key length too short.");
289
- }
290
- Slice user_key = Slice(key_ptr, key_length - 8);
291
-
292
- const uint64_t tag = DecodeFixed64(key_ptr + key_length - 8);
293
- ValueType type;
294
- SequenceNumber seq;
295
- UnPackSequenceAndType(tag, &seq, &type);
296
-
297
- uint32_t value_length = 0;
298
- const char* value_ptr = GetVarint32Ptr(
299
- key_ptr + key_length, key_ptr + key_length + 5, &value_length);
300
- if (value_ptr == nullptr) {
301
- return Status::Corruption("Unable to parse internal key value");
302
- }
303
- Slice value = Slice(value_ptr, value_length);
304
-
305
- const char* checksum_ptr = value_ptr + value_length;
306
- bool match =
307
- ProtectionInfo64()
308
- .ProtectKVO(user_key, value, type)
309
- .ProtectS(seq)
310
- .Verify(static_cast<uint8_t>(protection_bytes_per_key), checksum_ptr);
311
- if (!match) {
312
- std::string msg(
313
- "Corrupted memtable entry, per key-value checksum verification "
314
- "failed.");
315
- if (allow_data_in_errors) {
316
- msg.append("Unrecognized value type: " +
317
- std::to_string(static_cast<int>(type)) + ". ");
318
- msg.append("User key: " + user_key.ToString(/*hex=*/true) + ". ");
319
- msg.append("seq: " + std::to_string(seq) + ".");
320
- }
321
- return Status::Corruption(msg.c_str());
322
- }
323
- return Status::OK();
324
- }
325
-
326
- int MemTable::KeyComparator::operator()(const char* prefix_len_key1,
327
- const char* prefix_len_key2) const {
328
- // Internal keys are encoded as length-prefixed strings.
329
- Slice k1 = GetLengthPrefixedSlice(prefix_len_key1);
330
- Slice k2 = GetLengthPrefixedSlice(prefix_len_key2);
331
- return comparator.CompareKeySeq(k1, k2);
332
- }
333
-
334
- int MemTable::KeyComparator::operator()(
335
- const char* prefix_len_key, const KeyComparator::DecodedType& key) const {
336
- // Internal keys are encoded as length-prefixed strings.
337
- Slice a = GetLengthPrefixedSlice(prefix_len_key);
338
- return comparator.CompareKeySeq(a, key);
339
- }
340
-
341
- void MemTableRep::InsertConcurrently(KeyHandle /*handle*/) {
342
- throw std::runtime_error("concurrent insert not supported");
343
- }
344
-
345
- Slice MemTableRep::UserKey(const char* key) const {
346
- Slice slice = GetLengthPrefixedSlice(key);
347
- return Slice(slice.data(), slice.size() - 8);
348
- }
349
-
350
- KeyHandle MemTableRep::Allocate(const size_t len, char** buf) {
351
- *buf = allocator_->Allocate(len);
352
- return static_cast<KeyHandle>(*buf);
353
- }
354
-
355
- // Encode a suitable internal key target for "target" and return it.
356
- // Uses *scratch as scratch space, and the returned pointer will point
357
- // into this scratch space.
358
- const char* EncodeKey(std::string* scratch, const Slice& target) {
359
- scratch->clear();
360
- PutVarint32(scratch, static_cast<uint32_t>(target.size()));
361
- scratch->append(target.data(), target.size());
362
- return scratch->data();
363
- }
364
-
365
- class MemTableIterator : public InternalIterator {
366
- public:
367
- MemTableIterator(const MemTable& mem, const ReadOptions& read_options,
368
- UnownedPtr<const SeqnoToTimeMapping> seqno_to_time_mapping,
369
- Arena* arena, bool use_range_del_table = false)
370
- : bloom_(nullptr),
371
- prefix_extractor_(mem.prefix_extractor_),
372
- comparator_(mem.comparator_),
373
- valid_(false),
374
- seqno_to_time_mapping_(seqno_to_time_mapping),
375
- arena_mode_(arena != nullptr),
376
- value_pinned_(
377
- !mem.GetImmutableMemTableOptions()->inplace_update_support),
378
- protection_bytes_per_key_(mem.moptions_.protection_bytes_per_key),
379
- status_(Status::OK()),
380
- logger_(mem.moptions_.info_log),
381
- ts_sz_(mem.ts_sz_) {
382
- if (use_range_del_table) {
383
- iter_ = mem.range_del_table_->GetIterator(arena);
384
- } else if (prefix_extractor_ != nullptr && !read_options.total_order_seek &&
385
- !read_options.auto_prefix_mode) {
386
- // Auto prefix mode is not implemented in memtable yet.
387
- bloom_ = mem.bloom_filter_.get();
388
- iter_ = mem.table_->GetDynamicPrefixIterator(arena);
389
- } else {
390
- iter_ = mem.table_->GetIterator(arena);
391
- }
392
- status_.PermitUncheckedError();
393
- }
394
- // No copying allowed
395
- MemTableIterator(const MemTableIterator&) = delete;
396
- void operator=(const MemTableIterator&) = delete;
397
-
398
- ~MemTableIterator() override {
399
- #ifndef NDEBUG
400
- // Assert that the MemTableIterator is never deleted while
401
- // Pinning is Enabled.
402
- assert(!pinned_iters_mgr_ || !pinned_iters_mgr_->PinningEnabled());
403
- #endif
404
- if (arena_mode_) {
405
- iter_->~Iterator();
406
- } else {
407
- delete iter_;
408
- }
409
- }
410
-
411
- #ifndef NDEBUG
412
- void SetPinnedItersMgr(PinnedIteratorsManager* pinned_iters_mgr) override {
413
- pinned_iters_mgr_ = pinned_iters_mgr;
414
- }
415
- PinnedIteratorsManager* pinned_iters_mgr_ = nullptr;
416
- #endif
417
-
418
- bool Valid() const override { return valid_ && status_.ok(); }
419
- void Seek(const Slice& k) override {
420
- PERF_TIMER_GUARD(seek_on_memtable_time);
421
- PERF_COUNTER_ADD(seek_on_memtable_count, 1);
422
- if (bloom_) {
423
- // iterator should only use prefix bloom filter
424
- Slice user_k_without_ts(ExtractUserKeyAndStripTimestamp(k, ts_sz_));
425
- if (prefix_extractor_->InDomain(user_k_without_ts)) {
426
- if (!bloom_->MayContain(
427
- prefix_extractor_->Transform(user_k_without_ts))) {
428
- PERF_COUNTER_ADD(bloom_memtable_miss_count, 1);
429
- valid_ = false;
430
- return;
431
- } else {
432
- PERF_COUNTER_ADD(bloom_memtable_hit_count, 1);
433
- }
434
- }
435
- }
436
- iter_->Seek(k, nullptr);
437
- valid_ = iter_->Valid();
438
- VerifyEntryChecksum();
439
- }
440
- void SeekForPrev(const Slice& k) override {
441
- PERF_TIMER_GUARD(seek_on_memtable_time);
442
- PERF_COUNTER_ADD(seek_on_memtable_count, 1);
443
- if (bloom_) {
444
- Slice user_k_without_ts(ExtractUserKeyAndStripTimestamp(k, ts_sz_));
445
- if (prefix_extractor_->InDomain(user_k_without_ts)) {
446
- if (!bloom_->MayContain(
447
- prefix_extractor_->Transform(user_k_without_ts))) {
448
- PERF_COUNTER_ADD(bloom_memtable_miss_count, 1);
449
- valid_ = false;
450
- return;
451
- } else {
452
- PERF_COUNTER_ADD(bloom_memtable_hit_count, 1);
453
- }
454
- }
455
- }
456
- iter_->Seek(k, nullptr);
457
- valid_ = iter_->Valid();
458
- VerifyEntryChecksum();
459
- if (!Valid() && status().ok()) {
460
- SeekToLast();
461
- }
462
- while (Valid() && comparator_.comparator.Compare(k, key()) < 0) {
463
- Prev();
464
- }
465
- }
466
- void SeekToFirst() override {
467
- iter_->SeekToFirst();
468
- valid_ = iter_->Valid();
469
- VerifyEntryChecksum();
470
- }
471
- void SeekToLast() override {
472
- iter_->SeekToLast();
473
- valid_ = iter_->Valid();
474
- VerifyEntryChecksum();
475
- }
476
- void Next() override {
477
- PERF_COUNTER_ADD(next_on_memtable_count, 1);
478
- assert(Valid());
479
- iter_->Next();
480
- TEST_SYNC_POINT_CALLBACK("MemTableIterator::Next:0", iter_);
481
- valid_ = iter_->Valid();
482
- VerifyEntryChecksum();
483
- }
484
- bool NextAndGetResult(IterateResult* result) override {
485
- Next();
486
- bool is_valid = Valid();
487
- if (is_valid) {
488
- result->key = key();
489
- result->bound_check_result = IterBoundCheck::kUnknown;
490
- result->value_prepared = true;
491
- }
492
- return is_valid;
493
- }
494
- void Prev() override {
495
- PERF_COUNTER_ADD(prev_on_memtable_count, 1);
496
- assert(Valid());
497
- iter_->Prev();
498
- valid_ = iter_->Valid();
499
- VerifyEntryChecksum();
500
- }
501
- Slice key() const override {
502
- assert(Valid());
503
- return GetLengthPrefixedSlice(iter_->key());
504
- }
505
-
506
- uint64_t write_unix_time() const override {
507
- assert(Valid());
508
- ParsedInternalKey pikey;
509
- Status s = ParseInternalKey(key(), &pikey, /*log_err_key=*/false);
510
- if (!s.ok()) {
511
- return std::numeric_limits<uint64_t>::max();
512
- } else if (kTypeValuePreferredSeqno == pikey.type) {
513
- return ParsePackedValueForWriteTime(value());
514
- } else if (!seqno_to_time_mapping_ || seqno_to_time_mapping_->Empty()) {
515
- return std::numeric_limits<uint64_t>::max();
516
- }
517
- return seqno_to_time_mapping_->GetProximalTimeBeforeSeqno(pikey.sequence);
518
- }
519
-
520
- Slice value() const override {
521
- assert(Valid());
522
- Slice key_slice = GetLengthPrefixedSlice(iter_->key());
523
- return GetLengthPrefixedSlice(key_slice.data() + key_slice.size());
524
- }
525
-
526
- Status status() const override { return status_; }
527
-
528
- bool IsKeyPinned() const override {
529
- // memtable data is always pinned
530
- return true;
531
- }
532
-
533
- bool IsValuePinned() const override {
534
- // memtable value is always pinned, except if we allow inplace update.
535
- return value_pinned_;
536
- }
537
-
538
- private:
539
- DynamicBloom* bloom_;
540
- const SliceTransform* const prefix_extractor_;
541
- const MemTable::KeyComparator comparator_;
542
- MemTableRep::Iterator* iter_;
543
- bool valid_;
544
- // The seqno to time mapping is owned by the SuperVersion.
545
- UnownedPtr<const SeqnoToTimeMapping> seqno_to_time_mapping_;
546
- bool arena_mode_;
547
- bool value_pinned_;
548
- uint32_t protection_bytes_per_key_;
549
- Status status_;
550
- Logger* logger_;
551
- size_t ts_sz_;
552
-
553
- void VerifyEntryChecksum() {
554
- if (protection_bytes_per_key_ > 0 && Valid()) {
555
- status_ = MemTable::VerifyEntryChecksum(iter_->key(),
556
- protection_bytes_per_key_);
557
- if (!status_.ok()) {
558
- ROCKS_LOG_ERROR(logger_, "In MemtableIterator: %s", status_.getState());
559
- }
560
- }
561
- }
562
- };
563
-
564
- InternalIterator* MemTable::NewIterator(
565
- const ReadOptions& read_options,
566
- UnownedPtr<const SeqnoToTimeMapping> seqno_to_time_mapping, Arena* arena) {
567
- assert(arena != nullptr);
568
- auto mem = arena->AllocateAligned(sizeof(MemTableIterator));
569
- return new (mem)
570
- MemTableIterator(*this, read_options, seqno_to_time_mapping, arena);
571
- }
572
-
573
- FragmentedRangeTombstoneIterator* MemTable::NewRangeTombstoneIterator(
574
- const ReadOptions& read_options, SequenceNumber read_seq,
575
- bool immutable_memtable) {
576
- if (read_options.ignore_range_deletions ||
577
- is_range_del_table_empty_.load(std::memory_order_relaxed)) {
578
- return nullptr;
579
- }
580
- return NewRangeTombstoneIteratorInternal(read_options, read_seq,
581
- immutable_memtable);
582
- }
583
-
584
- FragmentedRangeTombstoneIterator* MemTable::NewRangeTombstoneIteratorInternal(
585
- const ReadOptions& read_options, SequenceNumber read_seq,
586
- bool immutable_memtable) {
587
- if (immutable_memtable) {
588
- // Note that caller should already have verified that
589
- // !is_range_del_table_empty_
590
- assert(IsFragmentedRangeTombstonesConstructed());
591
- return new FragmentedRangeTombstoneIterator(
592
- fragmented_range_tombstone_list_.get(), comparator_.comparator,
593
- read_seq, read_options.timestamp);
594
- }
595
-
596
- // takes current cache
597
- std::shared_ptr<FragmentedRangeTombstoneListCache> cache =
598
- std::atomic_load_explicit(cached_range_tombstone_.Access(),
599
- std::memory_order_relaxed);
600
- // construct fragmented tombstone list if necessary
601
- if (!cache->initialized.load(std::memory_order_acquire)) {
602
- cache->reader_mutex.lock();
603
- if (!cache->tombstones) {
604
- auto* unfragmented_iter = new MemTableIterator(
605
- *this, read_options, nullptr /* seqno_to_time_mapping= */,
606
- nullptr /* arena */, true /* use_range_del_table */);
607
- cache->tombstones.reset(new FragmentedRangeTombstoneList(
608
- std::unique_ptr<InternalIterator>(unfragmented_iter),
609
- comparator_.comparator));
610
- cache->initialized.store(true, std::memory_order_release);
611
- }
612
- cache->reader_mutex.unlock();
613
- }
614
-
615
- auto* fragmented_iter = new FragmentedRangeTombstoneIterator(
616
- cache, comparator_.comparator, read_seq, read_options.timestamp);
617
- return fragmented_iter;
618
- }
619
-
620
- void MemTable::ConstructFragmentedRangeTombstones() {
621
- // There should be no concurrent Construction.
622
- // We could also check fragmented_range_tombstone_list_ to avoid repeate
623
- // constructions. We just construct them here again to be safe.
624
- if (!is_range_del_table_empty_.load(std::memory_order_relaxed)) {
625
- // TODO: plumb Env::IOActivity, Env::IOPriority
626
- auto* unfragmented_iter = new MemTableIterator(
627
- *this, ReadOptions(), nullptr /*seqno_to_time_mapping=*/,
628
- nullptr /* arena */, true /* use_range_del_table */);
629
-
630
- fragmented_range_tombstone_list_ =
631
- std::make_unique<FragmentedRangeTombstoneList>(
632
- std::unique_ptr<InternalIterator>(unfragmented_iter),
633
- comparator_.comparator);
634
- }
635
- }
636
-
637
- port::RWMutex* MemTable::GetLock(const Slice& key) {
638
- return &locks_[GetSliceRangedNPHash(key, locks_.size())];
639
- }
640
-
641
- MemTable::MemTableStats MemTable::ApproximateStats(const Slice& start_ikey,
642
- const Slice& end_ikey) {
643
- uint64_t entry_count = table_->ApproximateNumEntries(start_ikey, end_ikey);
644
- entry_count += range_del_table_->ApproximateNumEntries(start_ikey, end_ikey);
645
- if (entry_count == 0) {
646
- return {0, 0};
647
- }
648
- uint64_t n = num_entries_.load(std::memory_order_relaxed);
649
- if (n == 0) {
650
- return {0, 0};
651
- }
652
- if (entry_count > n) {
653
- // (range_del_)table_->ApproximateNumEntries() is just an estimate so it can
654
- // be larger than actual entries we have. Cap it to entries we have to limit
655
- // the inaccuracy.
656
- entry_count = n;
657
- }
658
- uint64_t data_size = data_size_.load(std::memory_order_relaxed);
659
- return {entry_count * (data_size / n), entry_count};
660
- }
661
-
662
- Status MemTable::VerifyEncodedEntry(Slice encoded,
663
- const ProtectionInfoKVOS64& kv_prot_info) {
664
- uint32_t ikey_len = 0;
665
- if (!GetVarint32(&encoded, &ikey_len)) {
666
- return Status::Corruption("Unable to parse internal key length");
667
- }
668
- if (ikey_len < 8 + ts_sz_) {
669
- return Status::Corruption("Internal key length too short");
670
- }
671
- if (ikey_len > encoded.size()) {
672
- return Status::Corruption("Internal key length too long");
673
- }
674
- uint32_t value_len = 0;
675
- const size_t user_key_len = ikey_len - 8;
676
- Slice key(encoded.data(), user_key_len);
677
- encoded.remove_prefix(user_key_len);
678
-
679
- uint64_t packed = DecodeFixed64(encoded.data());
680
- ValueType value_type = kMaxValue;
681
- SequenceNumber sequence_number = kMaxSequenceNumber;
682
- UnPackSequenceAndType(packed, &sequence_number, &value_type);
683
- encoded.remove_prefix(8);
684
-
685
- if (!GetVarint32(&encoded, &value_len)) {
686
- return Status::Corruption("Unable to parse value length");
687
- }
688
- if (value_len < encoded.size()) {
689
- return Status::Corruption("Value length too short");
690
- }
691
- if (value_len > encoded.size()) {
692
- return Status::Corruption("Value length too long");
693
- }
694
- Slice value(encoded.data(), value_len);
695
-
696
- return kv_prot_info.StripS(sequence_number)
697
- .StripKVO(key, value, value_type)
698
- .GetStatus();
699
- }
700
-
701
- void MemTable::UpdateEntryChecksum(const ProtectionInfoKVOS64* kv_prot_info,
702
- const Slice& key, const Slice& value,
703
- ValueType type, SequenceNumber s,
704
- char* checksum_ptr) {
705
- if (moptions_.protection_bytes_per_key == 0) {
706
- return;
707
- }
708
-
709
- if (kv_prot_info == nullptr) {
710
- ProtectionInfo64()
711
- .ProtectKVO(key, value, type)
712
- .ProtectS(s)
713
- .Encode(static_cast<uint8_t>(moptions_.protection_bytes_per_key),
714
- checksum_ptr);
715
- } else {
716
- kv_prot_info->Encode(
717
- static_cast<uint8_t>(moptions_.protection_bytes_per_key), checksum_ptr);
718
- }
719
- }
720
-
721
- Status MemTable::Add(SequenceNumber s, ValueType type,
722
- const Slice& key, /* user key */
723
- const Slice& value,
724
- const ProtectionInfoKVOS64* kv_prot_info,
725
- bool allow_concurrent,
726
- MemTablePostProcessInfo* post_process_info, void** hint) {
727
- // Format of an entry is concatenation of:
728
- // key_size : varint32 of internal_key.size()
729
- // key bytes : char[internal_key.size()]
730
- // value_size : varint32 of value.size()
731
- // value bytes : char[value.size()]
732
- // checksum : char[moptions_.protection_bytes_per_key]
733
- uint32_t key_size = static_cast<uint32_t>(key.size());
734
- uint32_t val_size = static_cast<uint32_t>(value.size());
735
- uint32_t internal_key_size = key_size + 8;
736
- const uint32_t encoded_len = VarintLength(internal_key_size) +
737
- internal_key_size + VarintLength(val_size) +
738
- val_size + moptions_.protection_bytes_per_key;
739
- char* buf = nullptr;
740
- std::unique_ptr<MemTableRep>& table =
741
- type == kTypeRangeDeletion ? range_del_table_ : table_;
742
- KeyHandle handle = table->Allocate(encoded_len, &buf);
743
-
744
- char* p = EncodeVarint32(buf, internal_key_size);
745
- memcpy(p, key.data(), key_size);
746
- Slice key_slice(p, key_size);
747
- p += key_size;
748
- uint64_t packed = PackSequenceAndType(s, type);
749
- EncodeFixed64(p, packed);
750
- p += 8;
751
- p = EncodeVarint32(p, val_size);
752
- memcpy(p, value.data(), val_size);
753
- assert((unsigned)(p + val_size - buf + moptions_.protection_bytes_per_key) ==
754
- (unsigned)encoded_len);
755
-
756
- UpdateEntryChecksum(kv_prot_info, key, value, type, s,
757
- buf + encoded_len - moptions_.protection_bytes_per_key);
758
- Slice encoded(buf, encoded_len - moptions_.protection_bytes_per_key);
759
- if (kv_prot_info != nullptr) {
760
- TEST_SYNC_POINT_CALLBACK("MemTable::Add:Encoded", &encoded);
761
- Status status = VerifyEncodedEntry(encoded, *kv_prot_info);
762
- if (!status.ok()) {
763
- return status;
764
- }
765
- }
766
-
767
- Slice key_without_ts = StripTimestampFromUserKey(key, ts_sz_);
768
-
769
- if (!allow_concurrent) {
770
- // Extract prefix for insert with hint. Hints are for point key table
771
- // (`table_`) only, not `range_del_table_`.
772
- if (table == table_ && insert_with_hint_prefix_extractor_ != nullptr &&
773
- insert_with_hint_prefix_extractor_->InDomain(key_slice)) {
774
- Slice prefix = insert_with_hint_prefix_extractor_->Transform(key_slice);
775
- bool res = table->InsertKeyWithHint(handle, &insert_hints_[prefix]);
776
- if (UNLIKELY(!res)) {
777
- return Status::TryAgain("key+seq exists");
778
- }
779
- } else {
780
- bool res = table->InsertKey(handle);
781
- if (UNLIKELY(!res)) {
782
- return Status::TryAgain("key+seq exists");
783
- }
784
- }
785
-
786
- // this is a bit ugly, but is the way to avoid locked instructions
787
- // when incrementing an atomic
788
- num_entries_.store(num_entries_.load(std::memory_order_relaxed) + 1,
789
- std::memory_order_relaxed);
790
- data_size_.store(data_size_.load(std::memory_order_relaxed) + encoded_len,
791
- std::memory_order_relaxed);
792
- if (type == kTypeDeletion || type == kTypeSingleDeletion ||
793
- type == kTypeDeletionWithTimestamp) {
794
- num_deletes_.store(num_deletes_.load(std::memory_order_relaxed) + 1,
795
- std::memory_order_relaxed);
796
- } else if (type == kTypeRangeDeletion) {
797
- uint64_t val = num_range_deletes_.load(std::memory_order_relaxed) + 1;
798
- num_range_deletes_.store(val, std::memory_order_relaxed);
799
- }
800
-
801
- if (bloom_filter_ && prefix_extractor_ &&
802
- prefix_extractor_->InDomain(key_without_ts)) {
803
- bloom_filter_->Add(prefix_extractor_->Transform(key_without_ts));
804
- }
805
- if (bloom_filter_ && moptions_.memtable_whole_key_filtering) {
806
- bloom_filter_->Add(key_without_ts);
807
- }
808
-
809
- // The first sequence number inserted into the memtable
810
- assert(first_seqno_ == 0 || s >= first_seqno_);
811
- if (first_seqno_ == 0) {
812
- first_seqno_.store(s, std::memory_order_relaxed);
813
-
814
- if (earliest_seqno_ == kMaxSequenceNumber) {
815
- earliest_seqno_.store(GetFirstSequenceNumber(),
816
- std::memory_order_relaxed);
817
- }
818
- assert(first_seqno_.load() >= earliest_seqno_.load());
819
- }
820
- assert(post_process_info == nullptr);
821
- // TODO(yuzhangyu): support updating newest UDT for when `allow_concurrent`
822
- // is true.
823
- MaybeUpdateNewestUDT(key_slice);
824
- UpdateFlushState();
825
- } else {
826
- bool res = (hint == nullptr)
827
- ? table->InsertKeyConcurrently(handle)
828
- : table->InsertKeyWithHintConcurrently(handle, hint);
829
- if (UNLIKELY(!res)) {
830
- return Status::TryAgain("key+seq exists");
831
- }
832
-
833
- assert(post_process_info != nullptr);
834
- post_process_info->num_entries++;
835
- post_process_info->data_size += encoded_len;
836
- if (type == kTypeDeletion) {
837
- post_process_info->num_deletes++;
838
- }
839
-
840
- if (bloom_filter_ && prefix_extractor_ &&
841
- prefix_extractor_->InDomain(key_without_ts)) {
842
- bloom_filter_->AddConcurrently(
843
- prefix_extractor_->Transform(key_without_ts));
844
- }
845
- if (bloom_filter_ && moptions_.memtable_whole_key_filtering) {
846
- bloom_filter_->AddConcurrently(key_without_ts);
847
- }
848
-
849
- // atomically update first_seqno_ and earliest_seqno_.
850
- uint64_t cur_seq_num = first_seqno_.load(std::memory_order_relaxed);
851
- while ((cur_seq_num == 0 || s < cur_seq_num) &&
852
- !first_seqno_.compare_exchange_weak(cur_seq_num, s)) {
853
- }
854
- uint64_t cur_earliest_seqno =
855
- earliest_seqno_.load(std::memory_order_relaxed);
856
- while (
857
- (cur_earliest_seqno == kMaxSequenceNumber || s < cur_earliest_seqno) &&
858
- !earliest_seqno_.compare_exchange_weak(cur_earliest_seqno, s)) {
859
- }
860
- }
861
- if (type == kTypeRangeDeletion) {
862
- auto new_cache = std::make_shared<FragmentedRangeTombstoneListCache>();
863
- size_t size = cached_range_tombstone_.Size();
864
- if (allow_concurrent) {
865
- post_process_info->num_range_deletes++;
866
- range_del_mutex_.lock();
867
- }
868
- for (size_t i = 0; i < size; ++i) {
869
- std::shared_ptr<FragmentedRangeTombstoneListCache>* local_cache_ref_ptr =
870
- cached_range_tombstone_.AccessAtCore(i);
871
- auto new_local_cache_ref = std::make_shared<
872
- const std::shared_ptr<FragmentedRangeTombstoneListCache>>(new_cache);
873
- // It is okay for some reader to load old cache during invalidation as
874
- // the new sequence number is not published yet.
875
- // Each core will have a shared_ptr to a shared_ptr to the cached
876
- // fragmented range tombstones, so that ref count is maintianed locally
877
- // per-core using the per-core shared_ptr.
878
- std::atomic_store_explicit(
879
- local_cache_ref_ptr,
880
- std::shared_ptr<FragmentedRangeTombstoneListCache>(
881
- new_local_cache_ref, new_cache.get()),
882
- std::memory_order_relaxed);
883
- }
884
-
885
- if (allow_concurrent) {
886
- range_del_mutex_.unlock();
887
- }
888
- is_range_del_table_empty_.store(false, std::memory_order_relaxed);
889
- }
890
- UpdateOldestKeyTime();
891
-
892
- TEST_SYNC_POINT_CALLBACK("MemTable::Add:BeforeReturn:Encoded", &encoded);
893
- return Status::OK();
894
- }
895
-
896
- // Callback from MemTable::Get()
897
- namespace {
898
-
899
- struct Saver {
900
- Status* status;
901
- const LookupKey* key;
902
- bool* found_final_value; // Is value set correctly? Used by KeyMayExist
903
- bool* merge_in_progress;
904
- std::string* value;
905
- PinnableWideColumns* columns;
906
- SequenceNumber seq;
907
- std::string* timestamp;
908
- const MergeOperator* merge_operator;
909
- // the merge operations encountered;
910
- MergeContext* merge_context;
911
- SequenceNumber max_covering_tombstone_seq;
912
- MemTable* mem;
913
- Logger* logger;
914
- Statistics* statistics;
915
- bool inplace_update_support;
916
- bool do_merge;
917
- SystemClock* clock;
918
-
919
- ReadCallback* callback_;
920
- bool* is_blob_index;
921
- bool allow_data_in_errors;
922
- uint32_t protection_bytes_per_key;
923
- bool CheckCallback(SequenceNumber _seq) {
924
- if (callback_) {
925
- return callback_->IsVisible(_seq);
926
- }
927
- return true;
928
- }
929
- };
930
- } // anonymous namespace
931
-
932
- static bool SaveValue(void* arg, const char* entry) {
933
- Saver* s = static_cast<Saver*>(arg);
934
- assert(s != nullptr);
935
- assert(!s->value || !s->columns);
936
-
937
- MergeContext* merge_context = s->merge_context;
938
- SequenceNumber max_covering_tombstone_seq = s->max_covering_tombstone_seq;
939
- const MergeOperator* merge_operator = s->merge_operator;
940
-
941
- assert(merge_context != nullptr);
942
-
943
- // Refer to comments under MemTable::Add() for entry format.
944
- // Check that it belongs to same user key.
945
- uint32_t key_length = 0;
946
- const char* key_ptr = GetVarint32Ptr(entry, entry + 5, &key_length);
947
- assert(key_length >= 8);
948
- Slice user_key_slice = Slice(key_ptr, key_length - 8);
949
- const Comparator* user_comparator =
950
- s->mem->GetInternalKeyComparator().user_comparator();
951
- size_t ts_sz = user_comparator->timestamp_size();
952
- if (ts_sz && s->timestamp && max_covering_tombstone_seq > 0) {
953
- // timestamp should already be set to range tombstone timestamp
954
- assert(s->timestamp->size() == ts_sz);
955
- }
956
- if (user_comparator->EqualWithoutTimestamp(user_key_slice,
957
- s->key->user_key())) {
958
- // Correct user key
959
- TEST_SYNC_POINT_CALLBACK("Memtable::SaveValue:Found:entry", &entry);
960
- std::optional<ReadLock> read_lock;
961
- if (s->inplace_update_support) {
962
- read_lock.emplace(s->mem->GetLock(s->key->user_key()));
963
- }
964
-
965
- if (s->protection_bytes_per_key > 0) {
966
- *(s->status) = MemTable::VerifyEntryChecksum(
967
- entry, s->protection_bytes_per_key, s->allow_data_in_errors);
968
- if (!s->status->ok()) {
969
- ROCKS_LOG_ERROR(s->logger, "In SaveValue: %s", s->status->getState());
970
- // Memtable entry corrupted
971
- return false;
972
- }
973
- }
974
-
975
- const uint64_t tag = DecodeFixed64(key_ptr + key_length - 8);
976
- ValueType type;
977
- SequenceNumber seq;
978
- UnPackSequenceAndType(tag, &seq, &type);
979
- // If the value is not in the snapshot, skip it
980
- if (!s->CheckCallback(seq)) {
981
- return true; // to continue to the next seq
982
- }
983
-
984
- if (s->seq == kMaxSequenceNumber) {
985
- s->seq = seq;
986
- if (s->seq > max_covering_tombstone_seq) {
987
- if (ts_sz && s->timestamp != nullptr) {
988
- // `timestamp` was set to range tombstone's timestamp before
989
- // `SaveValue` is ever called. This key has a higher sequence number
990
- // than range tombstone, and is the key with the highest seqno across
991
- // all keys with this user_key, so we update timestamp here.
992
- Slice ts = ExtractTimestampFromUserKey(user_key_slice, ts_sz);
993
- s->timestamp->assign(ts.data(), ts_sz);
994
- }
995
- } else {
996
- s->seq = max_covering_tombstone_seq;
997
- }
998
- }
999
-
1000
- if (ts_sz > 0 && s->timestamp != nullptr) {
1001
- if (!s->timestamp->empty()) {
1002
- assert(ts_sz == s->timestamp->size());
1003
- }
1004
- // TODO optimize for smaller size ts
1005
- const std::string kMaxTs(ts_sz, '\xff');
1006
- if (s->timestamp->empty() ||
1007
- user_comparator->CompareTimestamp(*(s->timestamp), kMaxTs) == 0) {
1008
- Slice ts = ExtractTimestampFromUserKey(user_key_slice, ts_sz);
1009
- s->timestamp->assign(ts.data(), ts_sz);
1010
- }
1011
- }
1012
-
1013
- if ((type == kTypeValue || type == kTypeMerge || type == kTypeBlobIndex ||
1014
- type == kTypeWideColumnEntity || type == kTypeDeletion ||
1015
- type == kTypeSingleDeletion || type == kTypeDeletionWithTimestamp ||
1016
- type == kTypeValuePreferredSeqno) &&
1017
- max_covering_tombstone_seq > seq) {
1018
- type = kTypeRangeDeletion;
1019
- }
1020
- switch (type) {
1021
- case kTypeBlobIndex: {
1022
- if (!s->do_merge) {
1023
- *(s->status) = Status::NotSupported(
1024
- "GetMergeOperands not supported by stacked BlobDB");
1025
- *(s->found_final_value) = true;
1026
- return false;
1027
- }
1028
-
1029
- if (*(s->merge_in_progress)) {
1030
- *(s->status) = Status::NotSupported(
1031
- "Merge operator not supported by stacked BlobDB");
1032
- *(s->found_final_value) = true;
1033
- return false;
1034
- }
1035
-
1036
- if (s->is_blob_index == nullptr) {
1037
- ROCKS_LOG_ERROR(s->logger, "Encountered unexpected blob index.");
1038
- *(s->status) = Status::NotSupported(
1039
- "Encountered unexpected blob index. Please open DB with "
1040
- "ROCKSDB_NAMESPACE::blob_db::BlobDB.");
1041
- *(s->found_final_value) = true;
1042
- return false;
1043
- }
1044
-
1045
- Slice v = GetLengthPrefixedSlice(key_ptr + key_length);
1046
-
1047
- *(s->status) = Status::OK();
1048
-
1049
- if (s->value) {
1050
- s->value->assign(v.data(), v.size());
1051
- } else if (s->columns) {
1052
- s->columns->SetPlainValue(v);
1053
- }
1054
-
1055
- *(s->found_final_value) = true;
1056
- *(s->is_blob_index) = true;
1057
-
1058
- return false;
1059
- }
1060
- case kTypeValue:
1061
- case kTypeValuePreferredSeqno: {
1062
- Slice v = GetLengthPrefixedSlice(key_ptr + key_length);
1063
-
1064
- if (type == kTypeValuePreferredSeqno) {
1065
- v = ParsePackedValueForValue(v);
1066
- }
1067
-
1068
- *(s->status) = Status::OK();
1069
-
1070
- if (!s->do_merge) {
1071
- // Preserve the value with the goal of returning it as part of
1072
- // raw merge operands to the user
1073
- // TODO(yanqin) update MergeContext so that timestamps information
1074
- // can also be retained.
1075
-
1076
- merge_context->PushOperand(
1077
- v, s->inplace_update_support == false /* operand_pinned */);
1078
- } else if (*(s->merge_in_progress)) {
1079
- assert(s->do_merge);
1080
-
1081
- if (s->value || s->columns) {
1082
- // `op_failure_scope` (an output parameter) is not provided (set to
1083
- // nullptr) since a failure must be propagated regardless of its
1084
- // value.
1085
- *(s->status) = MergeHelper::TimedFullMerge(
1086
- merge_operator, s->key->user_key(),
1087
- MergeHelper::kPlainBaseValue, v, merge_context->GetOperands(),
1088
- s->logger, s->statistics, s->clock,
1089
- /* update_num_ops_stats */ true, /* op_failure_scope */ nullptr,
1090
- s->value, s->columns);
1091
- }
1092
- } else if (s->value) {
1093
- s->value->assign(v.data(), v.size());
1094
- } else if (s->columns) {
1095
- s->columns->SetPlainValue(v);
1096
- }
1097
-
1098
- *(s->found_final_value) = true;
1099
-
1100
- if (s->is_blob_index != nullptr) {
1101
- *(s->is_blob_index) = false;
1102
- }
1103
-
1104
- return false;
1105
- }
1106
- case kTypeWideColumnEntity: {
1107
- Slice v = GetLengthPrefixedSlice(key_ptr + key_length);
1108
-
1109
- *(s->status) = Status::OK();
1110
-
1111
- if (!s->do_merge) {
1112
- // Preserve the value with the goal of returning it as part of
1113
- // raw merge operands to the user
1114
-
1115
- Slice value_of_default;
1116
- *(s->status) = WideColumnSerialization::GetValueOfDefaultColumn(
1117
- v, value_of_default);
1118
-
1119
- if (s->status->ok()) {
1120
- merge_context->PushOperand(
1121
- value_of_default,
1122
- s->inplace_update_support == false /* operand_pinned */);
1123
- }
1124
- } else if (*(s->merge_in_progress)) {
1125
- assert(s->do_merge);
1126
-
1127
- if (s->value || s->columns) {
1128
- // `op_failure_scope` (an output parameter) is not provided (set
1129
- // to nullptr) since a failure must be propagated regardless of
1130
- // its value.
1131
- *(s->status) = MergeHelper::TimedFullMerge(
1132
- merge_operator, s->key->user_key(), MergeHelper::kWideBaseValue,
1133
- v, merge_context->GetOperands(), s->logger, s->statistics,
1134
- s->clock, /* update_num_ops_stats */ true,
1135
- /* op_failure_scope */ nullptr, s->value, s->columns);
1136
- }
1137
- } else if (s->value) {
1138
- Slice value_of_default;
1139
- *(s->status) = WideColumnSerialization::GetValueOfDefaultColumn(
1140
- v, value_of_default);
1141
- if (s->status->ok()) {
1142
- s->value->assign(value_of_default.data(), value_of_default.size());
1143
- }
1144
- } else if (s->columns) {
1145
- *(s->status) = s->columns->SetWideColumnValue(v);
1146
- }
1147
-
1148
- *(s->found_final_value) = true;
1149
-
1150
- if (s->is_blob_index != nullptr) {
1151
- *(s->is_blob_index) = false;
1152
- }
1153
-
1154
- return false;
1155
- }
1156
- case kTypeDeletion:
1157
- case kTypeDeletionWithTimestamp:
1158
- case kTypeSingleDeletion:
1159
- case kTypeRangeDeletion: {
1160
- if (*(s->merge_in_progress)) {
1161
- if (s->value || s->columns) {
1162
- // `op_failure_scope` (an output parameter) is not provided (set to
1163
- // nullptr) since a failure must be propagated regardless of its
1164
- // value.
1165
- *(s->status) = MergeHelper::TimedFullMerge(
1166
- merge_operator, s->key->user_key(), MergeHelper::kNoBaseValue,
1167
- merge_context->GetOperands(), s->logger, s->statistics,
1168
- s->clock, /* update_num_ops_stats */ true,
1169
- /* op_failure_scope */ nullptr, s->value, s->columns);
1170
- } else {
1171
- // We have found a final value (a base deletion) and have newer
1172
- // merge operands that we do not intend to merge. Nothing remains
1173
- // to be done so assign status to OK.
1174
- *(s->status) = Status::OK();
1175
- }
1176
- } else {
1177
- *(s->status) = Status::NotFound();
1178
- }
1179
- *(s->found_final_value) = true;
1180
- return false;
1181
- }
1182
- case kTypeMerge: {
1183
- if (!merge_operator) {
1184
- *(s->status) = Status::InvalidArgument(
1185
- "merge_operator is not properly initialized.");
1186
- // Normally we continue the loop (return true) when we see a merge
1187
- // operand. But in case of an error, we should stop the loop
1188
- // immediately and pretend we have found the value to stop further
1189
- // seek. Otherwise, the later call will override this error status.
1190
- *(s->found_final_value) = true;
1191
- return false;
1192
- }
1193
- Slice v = GetLengthPrefixedSlice(key_ptr + key_length);
1194
- *(s->merge_in_progress) = true;
1195
- merge_context->PushOperand(
1196
- v, s->inplace_update_support == false /* operand_pinned */);
1197
- PERF_COUNTER_ADD(internal_merge_point_lookup_count, 1);
1198
-
1199
- if (s->do_merge && merge_operator->ShouldMerge(
1200
- merge_context->GetOperandsDirectionBackward())) {
1201
- if (s->value || s->columns) {
1202
- // `op_failure_scope` (an output parameter) is not provided (set to
1203
- // nullptr) since a failure must be propagated regardless of its
1204
- // value.
1205
- *(s->status) = MergeHelper::TimedFullMerge(
1206
- merge_operator, s->key->user_key(), MergeHelper::kNoBaseValue,
1207
- merge_context->GetOperands(), s->logger, s->statistics,
1208
- s->clock, /* update_num_ops_stats */ true,
1209
- /* op_failure_scope */ nullptr, s->value, s->columns);
1210
- }
1211
-
1212
- *(s->found_final_value) = true;
1213
- return false;
1214
- }
1215
- if (merge_context->get_merge_operands_options != nullptr &&
1216
- merge_context->get_merge_operands_options->continue_cb != nullptr &&
1217
- !merge_context->get_merge_operands_options->continue_cb(v)) {
1218
- // We were told not to continue.
1219
- *(s->found_final_value) = true;
1220
- return false;
1221
- }
1222
-
1223
- return true;
1224
- }
1225
- default: {
1226
- std::string msg("Corrupted value not expected.");
1227
- if (s->allow_data_in_errors) {
1228
- msg.append("Unrecognized value type: " +
1229
- std::to_string(static_cast<int>(type)) + ". ");
1230
- msg.append("User key: " + user_key_slice.ToString(/*hex=*/true) +
1231
- ". ");
1232
- msg.append("seq: " + std::to_string(seq) + ".");
1233
- }
1234
- *(s->status) = Status::Corruption(msg.c_str());
1235
- return false;
1236
- }
1237
- }
1238
- }
1239
-
1240
- // s->state could be Corrupt, merge or notfound
1241
- return false;
1242
- }
1243
-
1244
- bool MemTable::Get(const LookupKey& key, std::string* value,
1245
- PinnableWideColumns* columns, std::string* timestamp,
1246
- Status* s, MergeContext* merge_context,
1247
- SequenceNumber* max_covering_tombstone_seq,
1248
- SequenceNumber* seq, const ReadOptions& read_opts,
1249
- bool immutable_memtable, ReadCallback* callback,
1250
- bool* is_blob_index, bool do_merge) {
1251
- // The sequence number is updated synchronously in version_set.h
1252
- if (IsEmpty()) {
1253
- // Avoiding recording stats for speed.
1254
- return false;
1255
- }
1256
-
1257
- PERF_TIMER_GUARD(get_from_memtable_time);
1258
-
1259
- std::unique_ptr<FragmentedRangeTombstoneIterator> range_del_iter(
1260
- NewRangeTombstoneIterator(read_opts,
1261
- GetInternalKeySeqno(key.internal_key()),
1262
- immutable_memtable));
1263
- if (range_del_iter != nullptr) {
1264
- SequenceNumber covering_seq =
1265
- range_del_iter->MaxCoveringTombstoneSeqnum(key.user_key());
1266
- if (covering_seq > *max_covering_tombstone_seq) {
1267
- *max_covering_tombstone_seq = covering_seq;
1268
- if (timestamp) {
1269
- // Will be overwritten in SaveValue() if there is a point key with
1270
- // a higher seqno.
1271
- timestamp->assign(range_del_iter->timestamp().data(),
1272
- range_del_iter->timestamp().size());
1273
- }
1274
- }
1275
- }
1276
-
1277
- bool found_final_value = false;
1278
- bool merge_in_progress = s->IsMergeInProgress();
1279
- bool may_contain = true;
1280
- Slice user_key_without_ts = StripTimestampFromUserKey(key.user_key(), ts_sz_);
1281
- bool bloom_checked = false;
1282
- if (bloom_filter_) {
1283
- // when both memtable_whole_key_filtering and prefix_extractor_ are set,
1284
- // only do whole key filtering for Get() to save CPU
1285
- if (moptions_.memtable_whole_key_filtering) {
1286
- may_contain = bloom_filter_->MayContain(user_key_without_ts);
1287
- bloom_checked = true;
1288
- } else {
1289
- assert(prefix_extractor_);
1290
- if (prefix_extractor_->InDomain(user_key_without_ts)) {
1291
- may_contain = bloom_filter_->MayContain(
1292
- prefix_extractor_->Transform(user_key_without_ts));
1293
- bloom_checked = true;
1294
- }
1295
- }
1296
- }
1297
-
1298
- if (bloom_filter_ && !may_contain) {
1299
- // iter is null if prefix bloom says the key does not exist
1300
- PERF_COUNTER_ADD(bloom_memtable_miss_count, 1);
1301
- *seq = kMaxSequenceNumber;
1302
- } else {
1303
- if (bloom_checked) {
1304
- PERF_COUNTER_ADD(bloom_memtable_hit_count, 1);
1305
- }
1306
- GetFromTable(key, *max_covering_tombstone_seq, do_merge, callback,
1307
- is_blob_index, value, columns, timestamp, s, merge_context,
1308
- seq, &found_final_value, &merge_in_progress);
1309
- }
1310
-
1311
- // No change to value, since we have not yet found a Put/Delete
1312
- // Propagate corruption error
1313
- if (!found_final_value && merge_in_progress && !s->IsCorruption()) {
1314
- *s = Status::MergeInProgress();
1315
- }
1316
- PERF_COUNTER_ADD(get_from_memtable_count, 1);
1317
- return found_final_value;
1318
- }
1319
-
1320
- void MemTable::GetFromTable(const LookupKey& key,
1321
- SequenceNumber max_covering_tombstone_seq,
1322
- bool do_merge, ReadCallback* callback,
1323
- bool* is_blob_index, std::string* value,
1324
- PinnableWideColumns* columns,
1325
- std::string* timestamp, Status* s,
1326
- MergeContext* merge_context, SequenceNumber* seq,
1327
- bool* found_final_value, bool* merge_in_progress) {
1328
- Saver saver;
1329
- saver.status = s;
1330
- saver.found_final_value = found_final_value;
1331
- saver.merge_in_progress = merge_in_progress;
1332
- saver.key = &key;
1333
- saver.value = value;
1334
- saver.columns = columns;
1335
- saver.timestamp = timestamp;
1336
- saver.seq = kMaxSequenceNumber;
1337
- saver.mem = this;
1338
- saver.merge_context = merge_context;
1339
- saver.max_covering_tombstone_seq = max_covering_tombstone_seq;
1340
- saver.merge_operator = moptions_.merge_operator;
1341
- saver.logger = moptions_.info_log;
1342
- saver.inplace_update_support = moptions_.inplace_update_support;
1343
- saver.statistics = moptions_.statistics;
1344
- saver.clock = clock_;
1345
- saver.callback_ = callback;
1346
- saver.is_blob_index = is_blob_index;
1347
- saver.do_merge = do_merge;
1348
- saver.allow_data_in_errors = moptions_.allow_data_in_errors;
1349
- saver.protection_bytes_per_key = moptions_.protection_bytes_per_key;
1350
- table_->Get(key, &saver, SaveValue);
1351
- *seq = saver.seq;
1352
- }
1353
-
1354
- void MemTable::MultiGet(const ReadOptions& read_options, MultiGetRange* range,
1355
- ReadCallback* callback, bool immutable_memtable) {
1356
- // The sequence number is updated synchronously in version_set.h
1357
- if (IsEmpty()) {
1358
- // Avoiding recording stats for speed.
1359
- return;
1360
- }
1361
- PERF_TIMER_GUARD(get_from_memtable_time);
1362
-
1363
- // For now, memtable Bloom filter is effectively disabled if there are any
1364
- // range tombstones. This is the simplest way to ensure range tombstones are
1365
- // handled. TODO: allow Bloom checks where max_covering_tombstone_seq==0
1366
- bool no_range_del = read_options.ignore_range_deletions ||
1367
- is_range_del_table_empty_.load(std::memory_order_relaxed);
1368
- MultiGetRange temp_range(*range, range->begin(), range->end());
1369
- if (bloom_filter_ && no_range_del) {
1370
- bool whole_key =
1371
- !prefix_extractor_ || moptions_.memtable_whole_key_filtering;
1372
- std::array<Slice, MultiGetContext::MAX_BATCH_SIZE> bloom_keys;
1373
- std::array<bool, MultiGetContext::MAX_BATCH_SIZE> may_match;
1374
- std::array<size_t, MultiGetContext::MAX_BATCH_SIZE> range_indexes;
1375
- int num_keys = 0;
1376
- for (auto iter = temp_range.begin(); iter != temp_range.end(); ++iter) {
1377
- if (whole_key) {
1378
- bloom_keys[num_keys] = iter->ukey_without_ts;
1379
- range_indexes[num_keys++] = iter.index();
1380
- } else if (prefix_extractor_->InDomain(iter->ukey_without_ts)) {
1381
- bloom_keys[num_keys] =
1382
- prefix_extractor_->Transform(iter->ukey_without_ts);
1383
- range_indexes[num_keys++] = iter.index();
1384
- }
1385
- }
1386
- bloom_filter_->MayContain(num_keys, bloom_keys.data(), may_match.data());
1387
- for (int i = 0; i < num_keys; ++i) {
1388
- if (!may_match[i]) {
1389
- temp_range.SkipIndex(range_indexes[i]);
1390
- PERF_COUNTER_ADD(bloom_memtable_miss_count, 1);
1391
- } else {
1392
- PERF_COUNTER_ADD(bloom_memtable_hit_count, 1);
1393
- }
1394
- }
1395
- }
1396
- for (auto iter = temp_range.begin(); iter != temp_range.end(); ++iter) {
1397
- bool found_final_value{false};
1398
- bool merge_in_progress = iter->s->IsMergeInProgress();
1399
- if (!no_range_del) {
1400
- std::unique_ptr<FragmentedRangeTombstoneIterator> range_del_iter(
1401
- NewRangeTombstoneIteratorInternal(
1402
- read_options, GetInternalKeySeqno(iter->lkey->internal_key()),
1403
- immutable_memtable));
1404
- SequenceNumber covering_seq =
1405
- range_del_iter->MaxCoveringTombstoneSeqnum(iter->lkey->user_key());
1406
- if (covering_seq > iter->max_covering_tombstone_seq) {
1407
- iter->max_covering_tombstone_seq = covering_seq;
1408
- if (iter->timestamp) {
1409
- // Will be overwritten in SaveValue() if there is a point key with
1410
- // a higher seqno.
1411
- iter->timestamp->assign(range_del_iter->timestamp().data(),
1412
- range_del_iter->timestamp().size());
1413
- }
1414
- }
1415
- }
1416
- SequenceNumber dummy_seq;
1417
- GetFromTable(*(iter->lkey), iter->max_covering_tombstone_seq, true,
1418
- callback, &iter->is_blob_index,
1419
- iter->value ? iter->value->GetSelf() : nullptr, iter->columns,
1420
- iter->timestamp, iter->s, &(iter->merge_context), &dummy_seq,
1421
- &found_final_value, &merge_in_progress);
1422
-
1423
- if (!found_final_value && merge_in_progress) {
1424
- *(iter->s) = Status::MergeInProgress();
1425
- }
1426
-
1427
- if (found_final_value) {
1428
- if (iter->value) {
1429
- iter->value->PinSelf();
1430
- range->AddValueSize(iter->value->size());
1431
- } else {
1432
- assert(iter->columns);
1433
- range->AddValueSize(iter->columns->serialized_size());
1434
- }
1435
-
1436
- range->MarkKeyDone(iter);
1437
- RecordTick(moptions_.statistics, MEMTABLE_HIT);
1438
- if (range->GetValueSize() > read_options.value_size_soft_limit) {
1439
- // Set all remaining keys in range to Abort
1440
- for (auto range_iter = range->begin(); range_iter != range->end();
1441
- ++range_iter) {
1442
- range->MarkKeyDone(range_iter);
1443
- *(range_iter->s) = Status::Aborted();
1444
- }
1445
- break;
1446
- }
1447
- }
1448
- }
1449
- PERF_COUNTER_ADD(get_from_memtable_count, 1);
1450
- }
1451
-
1452
- Status MemTable::Update(SequenceNumber seq, ValueType value_type,
1453
- const Slice& key, const Slice& value,
1454
- const ProtectionInfoKVOS64* kv_prot_info) {
1455
- LookupKey lkey(key, seq);
1456
- Slice mem_key = lkey.memtable_key();
1457
-
1458
- std::unique_ptr<MemTableRep::Iterator> iter(
1459
- table_->GetDynamicPrefixIterator());
1460
- iter->Seek(lkey.internal_key(), mem_key.data());
1461
-
1462
- if (iter->Valid()) {
1463
- // Refer to comments under MemTable::Add() for entry format.
1464
- // Check that it belongs to same user key. We do not check the
1465
- // sequence number since the Seek() call above should have skipped
1466
- // all entries with overly large sequence numbers.
1467
- const char* entry = iter->key();
1468
- uint32_t key_length = 0;
1469
- const char* key_ptr = GetVarint32Ptr(entry, entry + 5, &key_length);
1470
- if (comparator_.comparator.user_comparator()->Equal(
1471
- Slice(key_ptr, key_length - 8), lkey.user_key())) {
1472
- // Correct user key
1473
- const uint64_t tag = DecodeFixed64(key_ptr + key_length - 8);
1474
- ValueType type;
1475
- SequenceNumber existing_seq;
1476
- UnPackSequenceAndType(tag, &existing_seq, &type);
1477
- assert(existing_seq != seq);
1478
- if (type == value_type) {
1479
- Slice prev_value = GetLengthPrefixedSlice(key_ptr + key_length);
1480
- uint32_t prev_size = static_cast<uint32_t>(prev_value.size());
1481
- uint32_t new_size = static_cast<uint32_t>(value.size());
1482
-
1483
- // Update value, if new value size <= previous value size
1484
- if (new_size <= prev_size) {
1485
- WriteLock wl(GetLock(lkey.user_key()));
1486
- char* p =
1487
- EncodeVarint32(const_cast<char*>(key_ptr) + key_length, new_size);
1488
- memcpy(p, value.data(), value.size());
1489
- assert((unsigned)((p + value.size()) - entry) ==
1490
- (unsigned)(VarintLength(key_length) + key_length +
1491
- VarintLength(value.size()) + value.size()));
1492
- RecordTick(moptions_.statistics, NUMBER_KEYS_UPDATED);
1493
- if (kv_prot_info != nullptr) {
1494
- ProtectionInfoKVOS64 updated_kv_prot_info(*kv_prot_info);
1495
- // `seq` is swallowed and `existing_seq` prevails.
1496
- updated_kv_prot_info.UpdateS(seq, existing_seq);
1497
- UpdateEntryChecksum(&updated_kv_prot_info, key, value, type,
1498
- existing_seq, p + value.size());
1499
- Slice encoded(entry, p + value.size() - entry);
1500
- return VerifyEncodedEntry(encoded, updated_kv_prot_info);
1501
- } else {
1502
- UpdateEntryChecksum(nullptr, key, value, type, existing_seq,
1503
- p + value.size());
1504
- }
1505
- return Status::OK();
1506
- }
1507
- }
1508
- }
1509
- }
1510
-
1511
- // The latest value is not value_type or key doesn't exist
1512
- return Add(seq, value_type, key, value, kv_prot_info);
1513
- }
1514
-
1515
- Status MemTable::UpdateCallback(SequenceNumber seq, const Slice& key,
1516
- const Slice& delta,
1517
- const ProtectionInfoKVOS64* kv_prot_info) {
1518
- LookupKey lkey(key, seq);
1519
- Slice memkey = lkey.memtable_key();
1520
-
1521
- std::unique_ptr<MemTableRep::Iterator> iter(
1522
- table_->GetDynamicPrefixIterator());
1523
- iter->Seek(lkey.internal_key(), memkey.data());
1524
-
1525
- if (iter->Valid()) {
1526
- // Refer to comments under MemTable::Add() for entry format.
1527
- // Check that it belongs to same user key. We do not check the
1528
- // sequence number since the Seek() call above should have skipped
1529
- // all entries with overly large sequence numbers.
1530
- const char* entry = iter->key();
1531
- uint32_t key_length = 0;
1532
- const char* key_ptr = GetVarint32Ptr(entry, entry + 5, &key_length);
1533
- if (comparator_.comparator.user_comparator()->Equal(
1534
- Slice(key_ptr, key_length - 8), lkey.user_key())) {
1535
- // Correct user key
1536
- const uint64_t tag = DecodeFixed64(key_ptr + key_length - 8);
1537
- ValueType type;
1538
- uint64_t existing_seq;
1539
- UnPackSequenceAndType(tag, &existing_seq, &type);
1540
- if (type == kTypeValue) {
1541
- Slice prev_value = GetLengthPrefixedSlice(key_ptr + key_length);
1542
- uint32_t prev_size = static_cast<uint32_t>(prev_value.size());
1543
-
1544
- char* prev_buffer = const_cast<char*>(prev_value.data());
1545
- uint32_t new_prev_size = prev_size;
1546
-
1547
- std::string str_value;
1548
- WriteLock wl(GetLock(lkey.user_key()));
1549
- auto status = moptions_.inplace_callback(prev_buffer, &new_prev_size,
1550
- delta, &str_value);
1551
- if (status == UpdateStatus::UPDATED_INPLACE) {
1552
- // Value already updated by callback.
1553
- assert(new_prev_size <= prev_size);
1554
- if (new_prev_size < prev_size) {
1555
- // overwrite the new prev_size
1556
- char* p = EncodeVarint32(const_cast<char*>(key_ptr) + key_length,
1557
- new_prev_size);
1558
- if (VarintLength(new_prev_size) < VarintLength(prev_size)) {
1559
- // shift the value buffer as well.
1560
- memcpy(p, prev_buffer, new_prev_size);
1561
- prev_buffer = p;
1562
- }
1563
- }
1564
- RecordTick(moptions_.statistics, NUMBER_KEYS_UPDATED);
1565
- UpdateFlushState();
1566
- Slice new_value(prev_buffer, new_prev_size);
1567
- if (kv_prot_info != nullptr) {
1568
- ProtectionInfoKVOS64 updated_kv_prot_info(*kv_prot_info);
1569
- // `seq` is swallowed and `existing_seq` prevails.
1570
- updated_kv_prot_info.UpdateS(seq, existing_seq);
1571
- updated_kv_prot_info.UpdateV(delta, new_value);
1572
- Slice encoded(entry, prev_buffer + new_prev_size - entry);
1573
- UpdateEntryChecksum(&updated_kv_prot_info, key, new_value, type,
1574
- existing_seq, prev_buffer + new_prev_size);
1575
- return VerifyEncodedEntry(encoded, updated_kv_prot_info);
1576
- } else {
1577
- UpdateEntryChecksum(nullptr, key, new_value, type, existing_seq,
1578
- prev_buffer + new_prev_size);
1579
- }
1580
- return Status::OK();
1581
- } else if (status == UpdateStatus::UPDATED) {
1582
- Status s;
1583
- if (kv_prot_info != nullptr) {
1584
- ProtectionInfoKVOS64 updated_kv_prot_info(*kv_prot_info);
1585
- updated_kv_prot_info.UpdateV(delta, str_value);
1586
- s = Add(seq, kTypeValue, key, Slice(str_value),
1587
- &updated_kv_prot_info);
1588
- } else {
1589
- s = Add(seq, kTypeValue, key, Slice(str_value),
1590
- nullptr /* kv_prot_info */);
1591
- }
1592
- RecordTick(moptions_.statistics, NUMBER_KEYS_WRITTEN);
1593
- UpdateFlushState();
1594
- return s;
1595
- } else if (status == UpdateStatus::UPDATE_FAILED) {
1596
- // `UPDATE_FAILED` is named incorrectly. It indicates no update
1597
- // happened. It does not indicate a failure happened.
1598
- UpdateFlushState();
1599
- return Status::OK();
1600
- }
1601
- }
1602
- }
1603
- }
1604
- // The latest value is not `kTypeValue` or key doesn't exist
1605
- return Status::NotFound();
1606
- }
1607
-
1608
- size_t MemTable::CountSuccessiveMergeEntries(const LookupKey& key,
1609
- size_t limit) {
1610
- Slice memkey = key.memtable_key();
1611
-
1612
- // A total ordered iterator is costly for some memtablerep (prefix aware
1613
- // reps). By passing in the user key, we allow efficient iterator creation.
1614
- // The iterator only needs to be ordered within the same user key.
1615
- std::unique_ptr<MemTableRep::Iterator> iter(
1616
- table_->GetDynamicPrefixIterator());
1617
- iter->Seek(key.internal_key(), memkey.data());
1618
-
1619
- size_t num_successive_merges = 0;
1620
-
1621
- for (; iter->Valid() && num_successive_merges < limit; iter->Next()) {
1622
- const char* entry = iter->key();
1623
- uint32_t key_length = 0;
1624
- const char* iter_key_ptr = GetVarint32Ptr(entry, entry + 5, &key_length);
1625
- if (!comparator_.comparator.user_comparator()->Equal(
1626
- Slice(iter_key_ptr, key_length - 8), key.user_key())) {
1627
- break;
1628
- }
1629
-
1630
- const uint64_t tag = DecodeFixed64(iter_key_ptr + key_length - 8);
1631
- ValueType type;
1632
- uint64_t unused;
1633
- UnPackSequenceAndType(tag, &unused, &type);
1634
- if (type != kTypeMerge) {
1635
- break;
1636
- }
1637
-
1638
- ++num_successive_merges;
1639
- }
1640
-
1641
- return num_successive_merges;
1642
- }
1643
-
1644
- void MemTableRep::Get(const LookupKey& k, void* callback_args,
1645
- bool (*callback_func)(void* arg, const char* entry)) {
1646
- auto iter = GetDynamicPrefixIterator();
1647
- for (iter->Seek(k.internal_key(), k.memtable_key().data());
1648
- iter->Valid() && callback_func(callback_args, iter->key());
1649
- iter->Next()) {
1650
- }
1651
- }
1652
-
1653
- void MemTable::RefLogContainingPrepSection(uint64_t log) {
1654
- assert(log > 0);
1655
- auto cur = min_prep_log_referenced_.load();
1656
- while ((log < cur || cur == 0) &&
1657
- !min_prep_log_referenced_.compare_exchange_strong(cur, log)) {
1658
- cur = min_prep_log_referenced_.load();
1659
- }
1660
- }
1661
-
1662
- uint64_t MemTable::GetMinLogContainingPrepSection() {
1663
- return min_prep_log_referenced_.load();
1664
- }
1665
-
1666
- void MemTable::MaybeUpdateNewestUDT(const Slice& user_key) {
1667
- if (ts_sz_ == 0 || persist_user_defined_timestamps_) {
1668
- return;
1669
- }
1670
- const Comparator* ucmp = GetInternalKeyComparator().user_comparator();
1671
- Slice udt = ExtractTimestampFromUserKey(user_key, ts_sz_);
1672
- if (newest_udt_.empty() || ucmp->CompareTimestamp(udt, newest_udt_) > 0) {
1673
- newest_udt_ = udt;
1674
- }
1675
- }
1676
-
1677
- const Slice& MemTable::GetNewestUDT() const {
1678
- // This path should not be invoked for MemTables that does not enable the UDT
1679
- // in Memtable only feature.
1680
- assert(ts_sz_ > 0 && !persist_user_defined_timestamps_);
1681
- return newest_udt_;
1682
- }
1683
-
1684
- } // namespace ROCKSDB_NAMESPACE