rocksdb-native 2.6.3 → 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 (955) hide show
  1. package/CMakeLists.txt +10 -1
  2. package/package.json +3 -3
  3. package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
  4. package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
  5. package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
  6. package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
  7. package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
  8. package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
  9. package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
  10. package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
  11. package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
  12. package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
  13. package/prebuilds/linux-x64/rocksdb-native.node +0 -0
  14. package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
  15. package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
  16. package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
  17. package/prebuilds/win32-x64/rocksdb-native.node +0 -0
  18. package/vendor/librocksdb/CMakeLists.txt +0 -96
  19. package/vendor/librocksdb/LICENSE +0 -201
  20. package/vendor/librocksdb/NOTICE +0 -13
  21. package/vendor/librocksdb/README.md +0 -11
  22. package/vendor/librocksdb/include/rocksdb.h +0 -294
  23. package/vendor/librocksdb/src/rocksdb.cc +0 -714
  24. package/vendor/librocksdb/vendor/rocksdb/CMakeLists.txt +0 -1642
  25. package/vendor/librocksdb/vendor/rocksdb/cache/cache.cc +0 -193
  26. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench.cc +0 -20
  27. package/vendor/librocksdb/vendor/rocksdb/cache/cache_bench_tool.cc +0 -1177
  28. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.cc +0 -104
  29. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_roles.h +0 -20
  30. package/vendor/librocksdb/vendor/rocksdb/cache/cache_entry_stats.h +0 -182
  31. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.cc +0 -41
  32. package/vendor/librocksdb/vendor/rocksdb/cache/cache_helpers.h +0 -139
  33. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.cc +0 -364
  34. package/vendor/librocksdb/vendor/rocksdb/cache/cache_key.h +0 -143
  35. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.cc +0 -184
  36. package/vendor/librocksdb/vendor/rocksdb/cache/cache_reservation_manager.h +0 -318
  37. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.cc +0 -111
  38. package/vendor/librocksdb/vendor/rocksdb/cache/charged_cache.h +0 -61
  39. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.cc +0 -3657
  40. package/vendor/librocksdb/vendor/rocksdb/cache/clock_cache.h +0 -1165
  41. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.cc +0 -414
  42. package/vendor/librocksdb/vendor/rocksdb/cache/compressed_secondary_cache.h +0 -151
  43. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.cc +0 -726
  44. package/vendor/librocksdb/vendor/rocksdb/cache/lru_cache.h +0 -467
  45. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache.cc +0 -12
  46. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.cc +0 -743
  47. package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.h +0 -103
  48. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.cc +0 -147
  49. package/vendor/librocksdb/vendor/rocksdb/cache/sharded_cache.h +0 -322
  50. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.cc +0 -125
  51. package/vendor/librocksdb/vendor/rocksdb/cache/tiered_secondary_cache.h +0 -158
  52. package/vendor/librocksdb/vendor/rocksdb/cache/typed_cache.h +0 -380
  53. package/vendor/librocksdb/vendor/rocksdb/cmake/RocksDBConfig.cmake.in +0 -54
  54. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.cc +0 -182
  55. package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.h +0 -128
  56. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.cc +0 -20
  57. package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.h +0 -83
  58. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_constants.h +0 -16
  59. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.cc +0 -42
  60. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_contents.h +0 -60
  61. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_counting_iterator.h +0 -150
  62. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.cc +0 -34
  63. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_fetcher.h +0 -37
  64. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.cc +0 -156
  65. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_addition.h +0 -67
  66. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.cc +0 -429
  67. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_builder.h +0 -113
  68. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.cc +0 -101
  69. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_cache.h +0 -56
  70. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_completion_callback.h +0 -84
  71. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.cc +0 -134
  72. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_garbage.h +0 -57
  73. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.cc +0 -62
  74. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_meta.h +0 -170
  75. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.cc +0 -622
  76. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_file_reader.h +0 -111
  77. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.cc +0 -100
  78. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_garbage_meter.h +0 -102
  79. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_index.h +0 -187
  80. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.cc +0 -143
  81. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_format.h +0 -164
  82. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.cc +0 -133
  83. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_sequential_reader.h +0 -83
  84. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.cc +0 -207
  85. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_log_writer.h +0 -87
  86. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_read_request.h +0 -58
  87. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.cc +0 -459
  88. package/vendor/librocksdb/vendor/rocksdb/db/blob/blob_source.h +0 -161
  89. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.cc +0 -23
  90. package/vendor/librocksdb/vendor/rocksdb/db/blob/prefetch_buffer_collection.h +0 -38
  91. package/vendor/librocksdb/vendor/rocksdb/db/builder.cc +0 -517
  92. package/vendor/librocksdb/vendor/rocksdb/db/builder.h +0 -76
  93. package/vendor/librocksdb/vendor/rocksdb/db/c.cc +0 -7133
  94. package/vendor/librocksdb/vendor/rocksdb/db/c_test.c +0 -4052
  95. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.cc +0 -47
  96. package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.h +0 -79
  97. package/vendor/librocksdb/vendor/rocksdb/db/column_family.cc +0 -1859
  98. package/vendor/librocksdb/vendor/rocksdb/db/column_family.h +0 -918
  99. package/vendor/librocksdb/vendor/rocksdb/db/compaction/clipping_iterator.h +0 -281
  100. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.cc +0 -995
  101. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.h +0 -602
  102. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iteration_stats.h +0 -56
  103. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.cc +0 -1523
  104. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.h +0 -557
  105. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.cc +0 -2155
  106. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.h +0 -520
  107. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.cc +0 -802
  108. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.h +0 -411
  109. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.cc +0 -1245
  110. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.h +0 -322
  111. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.cc +0 -478
  112. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_fifo.h +0 -61
  113. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.cc +0 -977
  114. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.h +0 -32
  115. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +0 -1578
  116. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.h +0 -29
  117. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_service_job.cc +0 -835
  118. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.cc +0 -46
  119. package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_state.h +0 -42
  120. package/vendor/librocksdb/vendor/rocksdb/db/compaction/file_pri.h +0 -94
  121. package/vendor/librocksdb/vendor/rocksdb/db/compaction/sst_partitioner.cc +0 -83
  122. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.cc +0 -106
  123. package/vendor/librocksdb/vendor/rocksdb/db/compaction/subcompaction_state.h +0 -220
  124. package/vendor/librocksdb/vendor/rocksdb/db/convenience.cc +0 -101
  125. package/vendor/librocksdb/vendor/rocksdb/db/convenience_impl.h +0 -15
  126. package/vendor/librocksdb/vendor/rocksdb/db/db_filesnapshot.cc +0 -506
  127. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.cc +0 -275
  128. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/compacted_db_impl.h +0 -147
  129. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.cc +0 -6767
  130. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.h +0 -3056
  131. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +0 -4390
  132. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_debug.cc +0 -327
  133. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_experimental.cc +0 -164
  134. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_files.cc +0 -1032
  135. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.cc +0 -348
  136. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.h +0 -54
  137. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_open.cc +0 -2325
  138. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.cc +0 -376
  139. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_readonly.h +0 -179
  140. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +0 -1025
  141. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.h +0 -322
  142. package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_write.cc +0 -2624
  143. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.cc +0 -165
  144. package/vendor/librocksdb/vendor/rocksdb/db/db_info_dumper.h +0 -15
  145. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.cc +0 -1774
  146. package/vendor/librocksdb/vendor/rocksdb/db/db_iter.h +0 -444
  147. package/vendor/librocksdb/vendor/rocksdb/db/db_test2.cc +0 -7839
  148. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.cc +0 -1800
  149. package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.h +0 -1427
  150. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.cc +0 -96
  151. package/vendor/librocksdb/vendor/rocksdb/db/db_with_timestamp_test_util.h +0 -126
  152. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.cc +0 -282
  153. package/vendor/librocksdb/vendor/rocksdb/db/dbformat.h +0 -1101
  154. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.cc +0 -806
  155. package/vendor/librocksdb/vendor/rocksdb/db/error_handler.h +0 -149
  156. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.cc +0 -332
  157. package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.h +0 -78
  158. package/vendor/librocksdb/vendor/rocksdb/db/experimental.cc +0 -1212
  159. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +0 -1249
  160. package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.h +0 -268
  161. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.cc +0 -216
  162. package/vendor/librocksdb/vendor/rocksdb/db/file_indexer.h +0 -140
  163. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.cc +0 -1217
  164. package/vendor/librocksdb/vendor/rocksdb/db/flush_job.h +0 -240
  165. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.cc +0 -86
  166. package/vendor/librocksdb/vendor/rocksdb/db/flush_scheduler.h +0 -55
  167. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.cc +0 -1082
  168. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator.h +0 -166
  169. package/vendor/librocksdb/vendor/rocksdb/db/forward_iterator_bench.cc +0 -378
  170. package/vendor/librocksdb/vendor/rocksdb/db/history_trimming_iterator.h +0 -95
  171. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.cc +0 -463
  172. package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.h +0 -91
  173. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.cc +0 -2198
  174. package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.h +0 -896
  175. package/vendor/librocksdb/vendor/rocksdb/db/job_context.h +0 -254
  176. package/vendor/librocksdb/vendor/rocksdb/db/kv_checksum.h +0 -484
  177. package/vendor/librocksdb/vendor/rocksdb/db/log_format.h +0 -55
  178. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.cc +0 -958
  179. package/vendor/librocksdb/vendor/rocksdb/db/log_reader.h +0 -245
  180. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.cc +0 -355
  181. package/vendor/librocksdb/vendor/rocksdb/db/log_writer.h +0 -151
  182. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.cc +0 -67
  183. package/vendor/librocksdb/vendor/rocksdb/db/logs_with_prep_tracker.h +0 -62
  184. package/vendor/librocksdb/vendor/rocksdb/db/lookup_key.h +0 -68
  185. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.cc +0 -52
  186. package/vendor/librocksdb/vendor/rocksdb/db/malloc_stats.h +0 -22
  187. package/vendor/librocksdb/vendor/rocksdb/db/memtable.cc +0 -1684
  188. package/vendor/librocksdb/vendor/rocksdb/db/memtable.h +0 -712
  189. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.cc +0 -1028
  190. package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.h +0 -514
  191. package/vendor/librocksdb/vendor/rocksdb/db/merge_context.h +0 -150
  192. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.cc +0 -699
  193. package/vendor/librocksdb/vendor/rocksdb/db/merge_helper.h +0 -318
  194. package/vendor/librocksdb/vendor/rocksdb/db/merge_operator.cc +0 -167
  195. package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator_impl.h +0 -296
  196. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.cc +0 -29
  197. package/vendor/librocksdb/vendor/rocksdb/db/output_validator.h +0 -45
  198. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.cc +0 -110
  199. package/vendor/librocksdb/vendor/rocksdb/db/periodic_task_scheduler.h +0 -108
  200. package/vendor/librocksdb/vendor/rocksdb/db/pinned_iterators_manager.h +0 -92
  201. package/vendor/librocksdb/vendor/rocksdb/db/post_memtable_callback.h +0 -25
  202. package/vendor/librocksdb/vendor/rocksdb/db/pre_release_callback.h +0 -37
  203. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.cc +0 -553
  204. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator.h +0 -481
  205. package/vendor/librocksdb/vendor/rocksdb/db/range_del_aggregator_bench.cc +0 -280
  206. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.cc +0 -515
  207. package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.h +0 -361
  208. package/vendor/librocksdb/vendor/rocksdb/db/read_callback.h +0 -54
  209. package/vendor/librocksdb/vendor/rocksdb/db/repair.cc +0 -864
  210. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.cc +0 -573
  211. package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.h +0 -307
  212. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_checker.h +0 -58
  213. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.cc +0 -25
  214. package/vendor/librocksdb/vendor/rocksdb/db/snapshot_impl.h +0 -239
  215. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.cc +0 -745
  216. package/vendor/librocksdb/vendor/rocksdb/db/table_cache.h +0 -298
  217. package/vendor/librocksdb/vendor/rocksdb/db/table_cache_sync_and_async.h +0 -135
  218. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.cc +0 -74
  219. package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.h +0 -185
  220. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.cc +0 -296
  221. package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.h +0 -128
  222. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.cc +0 -54
  223. package/vendor/librocksdb/vendor/rocksdb/db/trim_history_scheduler.h +0 -46
  224. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.cc +0 -1431
  225. package/vendor/librocksdb/vendor/rocksdb/db/version_builder.h +0 -93
  226. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.cc +0 -1119
  227. package/vendor/librocksdb/vendor/rocksdb/db/version_edit.h +0 -769
  228. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.cc +0 -1264
  229. package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.h +0 -390
  230. package/vendor/librocksdb/vendor/rocksdb/db/version_set.cc +0 -7562
  231. package/vendor/librocksdb/vendor/rocksdb/db/version_set.h +0 -1799
  232. package/vendor/librocksdb/vendor/rocksdb/db/version_set_sync_and_async.h +0 -169
  233. package/vendor/librocksdb/vendor/rocksdb/db/version_util.h +0 -77
  234. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.cc +0 -211
  235. package/vendor/librocksdb/vendor/rocksdb/db/wal_edit.h +0 -177
  236. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.cc +0 -539
  237. package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.h +0 -138
  238. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.cc +0 -166
  239. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_column_serialization.h +0 -57
  240. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns.cc +0 -22
  241. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.cc +0 -52
  242. package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.h +0 -40
  243. package/vendor/librocksdb/vendor/rocksdb/db/write_batch.cc +0 -3394
  244. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_base.cc +0 -94
  245. package/vendor/librocksdb/vendor/rocksdb/db/write_batch_internal.h +0 -408
  246. package/vendor/librocksdb/vendor/rocksdb/db/write_callback.h +0 -27
  247. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.cc +0 -121
  248. package/vendor/librocksdb/vendor/rocksdb/db/write_controller.h +0 -148
  249. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.cc +0 -179
  250. package/vendor/librocksdb/vendor/rocksdb/db/write_stall_stats.h +0 -47
  251. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.cc +0 -931
  252. package/vendor/librocksdb/vendor/rocksdb/db/write_thread.h +0 -498
  253. package/vendor/librocksdb/vendor/rocksdb/env/composite_env.cc +0 -534
  254. package/vendor/librocksdb/vendor/rocksdb/env/composite_env_wrapper.h +0 -399
  255. package/vendor/librocksdb/vendor/rocksdb/env/emulated_clock.h +0 -114
  256. package/vendor/librocksdb/vendor/rocksdb/env/env.cc +0 -1253
  257. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.cc +0 -149
  258. package/vendor/librocksdb/vendor/rocksdb/env/env_chroot.h +0 -55
  259. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption.cc +0 -1192
  260. package/vendor/librocksdb/vendor/rocksdb/env/env_encryption_ctr.h +0 -97
  261. package/vendor/librocksdb/vendor/rocksdb/env/env_posix.cc +0 -530
  262. package/vendor/librocksdb/vendor/rocksdb/env/file_system.cc +0 -278
  263. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.cc +0 -564
  264. package/vendor/librocksdb/vendor/rocksdb/env/file_system_tracer.h +0 -461
  265. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.cc +0 -331
  266. package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.h +0 -139
  267. package/vendor/librocksdb/vendor/rocksdb/env/fs_posix.cc +0 -1285
  268. package/vendor/librocksdb/vendor/rocksdb/env/fs_readonly.h +0 -105
  269. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.cc +0 -341
  270. package/vendor/librocksdb/vendor/rocksdb/env/fs_remap.h +0 -137
  271. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.cc +0 -1738
  272. package/vendor/librocksdb/vendor/rocksdb/env/io_posix.h +0 -517
  273. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.cc +0 -1058
  274. package/vendor/librocksdb/vendor/rocksdb/env/mock_env.h +0 -144
  275. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.cc +0 -243
  276. package/vendor/librocksdb/vendor/rocksdb/env/unique_id_gen.h +0 -119
  277. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.cc +0 -513
  278. package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.h +0 -200
  279. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.cc +0 -992
  280. package/vendor/librocksdb/vendor/rocksdb/file/file_prefetch_buffer.h +0 -629
  281. package/vendor/librocksdb/vendor/rocksdb/file/file_util.cc +0 -308
  282. package/vendor/librocksdb/vendor/rocksdb/file/file_util.h +0 -123
  283. package/vendor/librocksdb/vendor/rocksdb/file/filename.cc +0 -538
  284. package/vendor/librocksdb/vendor/rocksdb/file/filename.h +0 -186
  285. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.cc +0 -73
  286. package/vendor/librocksdb/vendor/rocksdb/file/line_file_reader.h +0 -60
  287. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.cc +0 -639
  288. package/vendor/librocksdb/vendor/rocksdb/file/random_access_file_reader.h +0 -197
  289. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.cc +0 -33
  290. package/vendor/librocksdb/vendor/rocksdb/file/read_write_util.h +0 -31
  291. package/vendor/librocksdb/vendor/rocksdb/file/readahead_file_info.h +0 -33
  292. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.cc +0 -169
  293. package/vendor/librocksdb/vendor/rocksdb/file/readahead_raf.h +0 -29
  294. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.cc +0 -324
  295. package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.h +0 -127
  296. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.cc +0 -525
  297. package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.h +0 -220
  298. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.cc +0 -1007
  299. package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.h +0 -370
  300. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_cache.h +0 -665
  301. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_options.h +0 -1101
  302. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/attribute_groups.h +0 -114
  303. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/block_cache_trace_writer.h +0 -149
  304. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/c.h +0 -3122
  305. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache.h +0 -579
  306. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache_bench_tool.h +0 -14
  307. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cleanable.h +0 -128
  308. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_filter.h +0 -374
  309. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compaction_job_stats.h +0 -112
  310. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/comparator.h +0 -231
  311. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/compression_type.h +0 -186
  312. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/concurrent_task_limiter.h +0 -51
  313. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/configurable.h +0 -390
  314. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/convenience.h +0 -466
  315. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/customizable.h +0 -229
  316. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/data_structure.h +0 -186
  317. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db.h +0 -2174
  318. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_bench_tool.h +0 -11
  319. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_dump_tool.h +0 -43
  320. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db_stress_tool.h +0 -11
  321. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env.h +0 -1920
  322. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env_encryption.h +0 -363
  323. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/experimental.h +0 -492
  324. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_checksum.h +0 -146
  325. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_system.h +0 -1961
  326. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/filter_policy.h +0 -211
  327. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/flush_block_policy.h +0 -75
  328. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/functor_wrapper.h +0 -56
  329. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/io_status.h +0 -244
  330. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iostats_context.h +0 -98
  331. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator.h +0 -104
  332. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator_base.h +0 -90
  333. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/ldb_tool.h +0 -42
  334. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/listener.h +0 -869
  335. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memory_allocator.h +0 -87
  336. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/memtablerep.h +0 -421
  337. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/merge_operator.h +0 -337
  338. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/metadata.h +0 -258
  339. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/options.h +0 -2339
  340. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_context.h +0 -319
  341. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_level.h +0 -39
  342. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/persistent_cache.h +0 -74
  343. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/port_defs.h +0 -26
  344. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rate_limiter.h +0 -172
  345. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/rocksdb_namespace.h +0 -16
  346. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/secondary_cache.h +0 -220
  347. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice.h +0 -264
  348. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/slice_transform.h +0 -135
  349. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/snapshot.h +0 -53
  350. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_dump_tool.h +0 -17
  351. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_manager.h +0 -139
  352. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_reader.h +0 -61
  353. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_writer.h +0 -203
  354. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_partitioner.h +0 -142
  355. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/statistics.h +0 -794
  356. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/stats_history.h +0 -70
  357. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/status.h +0 -609
  358. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/system_clock.h +0 -129
  359. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table.h +0 -938
  360. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_properties.h +0 -380
  361. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_reader_caller.h +0 -41
  362. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/thread_status.h +0 -197
  363. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/threadpool.h +0 -67
  364. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_reader_writer.h +0 -52
  365. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record.h +0 -248
  366. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/trace_record_result.h +0 -187
  367. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/transaction_log.h +0 -128
  368. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/types.h +0 -113
  369. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/unique_id.h +0 -55
  370. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/universal_compaction.h +0 -127
  371. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/user_write_callback.h +0 -29
  372. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/agg_merge.h +0 -138
  373. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/backup_engine.h +0 -689
  374. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +0 -144
  375. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +0 -65
  376. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/convenience.h +0 -10
  377. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -321
  378. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/db_ttl.h +0 -70
  379. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/debug.h +0 -46
  380. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +0 -179
  381. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/info_log_finder.h +0 -19
  382. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +0 -338
  383. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +0 -75
  384. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/leveldb_options.h +0 -145
  385. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
  386. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
  387. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/memory_util.h +0 -48
  388. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/object_registry.h +0 -583
  389. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +0 -129
  390. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +0 -24
  391. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_type.h +0 -1222
  392. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/options_util.h +0 -105
  393. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/replayer.h +0 -85
  394. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/sim_cache.h +0 -92
  395. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +0 -593
  396. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +0 -133
  397. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction.h +0 -765
  398. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +0 -510
  399. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +0 -89
  400. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/types_util.h +0 -36
  401. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -402
  402. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/version.h +0 -43
  403. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wal_filter.h +0 -111
  404. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wide_columns.h +0 -303
  405. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch.h +0 -518
  406. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch_base.h +0 -165
  407. package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_buffer_manager.h +0 -183
  408. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.cc +0 -366
  409. package/vendor/librocksdb/vendor/rocksdb/logging/auto_roll_logger.h +0 -165
  410. package/vendor/librocksdb/vendor/rocksdb/logging/env_logger.h +0 -195
  411. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.cc +0 -68
  412. package/vendor/librocksdb/vendor/rocksdb/logging/event_logger.h +0 -202
  413. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.cc +0 -91
  414. package/vendor/librocksdb/vendor/rocksdb/logging/log_buffer.h +0 -57
  415. package/vendor/librocksdb/vendor/rocksdb/logging/logging.h +0 -62
  416. package/vendor/librocksdb/vendor/rocksdb/memory/allocator.h +0 -58
  417. package/vendor/librocksdb/vendor/rocksdb/memory/arena.cc +0 -170
  418. package/vendor/librocksdb/vendor/rocksdb/memory/arena.h +0 -146
  419. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.cc +0 -45
  420. package/vendor/librocksdb/vendor/rocksdb/memory/concurrent_arena.h +0 -215
  421. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.cc +0 -304
  422. package/vendor/librocksdb/vendor/rocksdb/memory/jemalloc_nodump_allocator.h +0 -99
  423. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.cc +0 -44
  424. package/vendor/librocksdb/vendor/rocksdb/memory/memkind_kmem_allocator.h +0 -43
  425. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator.cc +0 -81
  426. package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator_impl.h +0 -47
  427. package/vendor/librocksdb/vendor/rocksdb/memory/memory_usage.h +0 -38
  428. package/vendor/librocksdb/vendor/rocksdb/memtable/alloc_tracker.cc +0 -63
  429. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_linklist_rep.cc +0 -925
  430. package/vendor/librocksdb/vendor/rocksdb/memtable/hash_skiplist_rep.cc +0 -392
  431. package/vendor/librocksdb/vendor/rocksdb/memtable/inlineskiplist.h +0 -1051
  432. package/vendor/librocksdb/vendor/rocksdb/memtable/memtablerep_bench.cc +0 -687
  433. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplist.h +0 -498
  434. package/vendor/librocksdb/vendor/rocksdb/memtable/skiplistrep.cc +0 -368
  435. package/vendor/librocksdb/vendor/rocksdb/memtable/stl_wrappers.h +0 -33
  436. package/vendor/librocksdb/vendor/rocksdb/memtable/vectorrep.cc +0 -307
  437. package/vendor/librocksdb/vendor/rocksdb/memtable/write_buffer_manager.cc +0 -185
  438. package/vendor/librocksdb/vendor/rocksdb/monitoring/file_read_sample.h +0 -23
  439. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.cc +0 -280
  440. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram.h +0 -143
  441. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.cc +0 -198
  442. package/vendor/librocksdb/vendor/rocksdb/monitoring/histogram_windowing.h +0 -84
  443. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.cc +0 -50
  444. package/vendor/librocksdb/vendor/rocksdb/monitoring/in_memory_stats_history.h +0 -74
  445. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.cc +0 -90
  446. package/vendor/librocksdb/vendor/rocksdb/monitoring/instrumented_mutex.h +0 -126
  447. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context.cc +0 -78
  448. package/vendor/librocksdb/vendor/rocksdb/monitoring/iostats_context_imp.h +0 -62
  449. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context.cc +0 -317
  450. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_context_imp.h +0 -103
  451. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level.cc +0 -23
  452. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_level_imp.h +0 -14
  453. package/vendor/librocksdb/vendor/rocksdb/monitoring/perf_step_timer.h +0 -77
  454. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.cc +0 -173
  455. package/vendor/librocksdb/vendor/rocksdb/monitoring/persistent_stats_history.h +0 -83
  456. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics.cc +0 -561
  457. package/vendor/librocksdb/vendor/rocksdb/monitoring/statistics_impl.h +0 -143
  458. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_impl.cc +0 -163
  459. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.cc +0 -328
  460. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater.h +0 -226
  461. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_updater_debug.cc +0 -43
  462. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.cc +0 -214
  463. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util.h +0 -139
  464. package/vendor/librocksdb/vendor/rocksdb/monitoring/thread_status_util_debug.cc +0 -60
  465. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.cc +0 -1218
  466. package/vendor/librocksdb/vendor/rocksdb/options/cf_options.h +0 -352
  467. package/vendor/librocksdb/vendor/rocksdb/options/configurable.cc +0 -720
  468. package/vendor/librocksdb/vendor/rocksdb/options/configurable_helper.h +0 -185
  469. package/vendor/librocksdb/vendor/rocksdb/options/configurable_test.h +0 -116
  470. package/vendor/librocksdb/vendor/rocksdb/options/customizable.cc +0 -133
  471. package/vendor/librocksdb/vendor/rocksdb/options/db_options.cc +0 -1113
  472. package/vendor/librocksdb/vendor/rocksdb/options/db_options.h +0 -160
  473. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.cc +0 -59
  474. package/vendor/librocksdb/vendor/rocksdb/options/offpeak_time_info.h +0 -37
  475. package/vendor/librocksdb/vendor/rocksdb/options/options.cc +0 -717
  476. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.cc +0 -1438
  477. package/vendor/librocksdb/vendor/rocksdb/options/options_helper.h +0 -115
  478. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.cc +0 -745
  479. package/vendor/librocksdb/vendor/rocksdb/options/options_parser.h +0 -151
  480. package/vendor/librocksdb/vendor/rocksdb/port/jemalloc_helper.h +0 -107
  481. package/vendor/librocksdb/vendor/rocksdb/port/lang.h +0 -97
  482. package/vendor/librocksdb/vendor/rocksdb/port/likely.h +0 -18
  483. package/vendor/librocksdb/vendor/rocksdb/port/malloc.h +0 -17
  484. package/vendor/librocksdb/vendor/rocksdb/port/mmap.cc +0 -98
  485. package/vendor/librocksdb/vendor/rocksdb/port/mmap.h +0 -90
  486. package/vendor/librocksdb/vendor/rocksdb/port/port.h +0 -21
  487. package/vendor/librocksdb/vendor/rocksdb/port/port_dirent.h +0 -44
  488. package/vendor/librocksdb/vendor/rocksdb/port/port_example.h +0 -101
  489. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.cc +0 -300
  490. package/vendor/librocksdb/vendor/rocksdb/port/port_posix.h +0 -246
  491. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.cc +0 -418
  492. package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.h +0 -31
  493. package/vendor/librocksdb/vendor/rocksdb/port/sys_time.h +0 -63
  494. package/vendor/librocksdb/vendor/rocksdb/port/util_logger.h +0 -18
  495. package/vendor/librocksdb/vendor/rocksdb/port/win/env_default.cc +0 -45
  496. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.cc +0 -1436
  497. package/vendor/librocksdb/vendor/rocksdb/port/win/env_win.h +0 -305
  498. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.cc +0 -1101
  499. package/vendor/librocksdb/vendor/rocksdb/port/win/io_win.h +0 -504
  500. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.cc +0 -305
  501. package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.h +0 -382
  502. package/vendor/librocksdb/vendor/rocksdb/port/win/win_jemalloc.cc +0 -80
  503. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.cc +0 -192
  504. package/vendor/librocksdb/vendor/rocksdb/port/win/win_logger.h +0 -64
  505. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.cc +0 -170
  506. package/vendor/librocksdb/vendor/rocksdb/port/win/win_thread.h +0 -117
  507. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.cc +0 -210
  508. package/vendor/librocksdb/vendor/rocksdb/port/win/xpress_win.h +0 -26
  509. package/vendor/librocksdb/vendor/rocksdb/port/xpress.h +0 -17
  510. package/vendor/librocksdb/vendor/rocksdb/rocksdb.pc.in +0 -10
  511. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.cc +0 -119
  512. package/vendor/librocksdb/vendor/rocksdb/table/adaptive/adaptive_table_factory.h +0 -56
  513. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +0 -73
  514. package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.h +0 -48
  515. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.cc +0 -1341
  516. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block.h +0 -969
  517. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.cc +0 -2148
  518. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.h +0 -208
  519. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.cc +0 -980
  520. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.h +0 -102
  521. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +0 -893
  522. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.h +0 -445
  523. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.cc +0 -3296
  524. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.h +0 -785
  525. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +0 -205
  526. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +0 -819
  527. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.cc +0 -266
  528. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_builder.h +0 -128
  529. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.cc +0 -108
  530. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.h +0 -190
  531. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.cc +0 -158
  532. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.h +0 -74
  533. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.cc +0 -226
  534. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefix_index.h +0 -70
  535. package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_type.h +0 -34
  536. package/vendor/librocksdb/vendor/rocksdb/table/block_based/cachable_entry.h +0 -249
  537. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.cc +0 -59
  538. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_footer.h +0 -25
  539. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.cc +0 -94
  540. package/vendor/librocksdb/vendor/rocksdb/table/block_based/data_block_hash_index.h +0 -137
  541. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block.h +0 -189
  542. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +0 -169
  543. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.h +0 -79
  544. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy.cc +0 -1989
  545. package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy_internal.h +0 -341
  546. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy.cc +0 -132
  547. package/vendor/librocksdb/vendor/rocksdb/table/block_based/flush_block_policy_impl.h +0 -40
  548. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.cc +0 -297
  549. package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.h +0 -142
  550. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.cc +0 -146
  551. package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.h +0 -49
  552. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.cc +0 -305
  553. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.h +0 -534
  554. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.cc +0 -62
  555. package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.h +0 -94
  556. package/vendor/librocksdb/vendor/rocksdb/table/block_based/mock_block_based_table.h +0 -62
  557. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.cc +0 -23
  558. package/vendor/librocksdb/vendor/rocksdb/table/block_based/parsed_full_filter_block.h +0 -47
  559. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +0 -610
  560. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.h +0 -188
  561. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.cc +0 -164
  562. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_iterator.h +0 -160
  563. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +0 -264
  564. package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.h +0 -58
  565. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.cc +0 -64
  566. package/vendor/librocksdb/vendor/rocksdb/table/block_based/reader_common.h +0 -36
  567. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +0 -118
  568. package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +0 -60
  569. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.cc +0 -458
  570. package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.h +0 -168
  571. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.cc +0 -370
  572. package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.h +0 -45
  573. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.cc +0 -555
  574. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.h +0 -136
  575. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.cc +0 -100
  576. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.h +0 -80
  577. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.cc +0 -416
  578. package/vendor/librocksdb/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.h +0 -100
  579. package/vendor/librocksdb/vendor/rocksdb/table/format.cc +0 -708
  580. package/vendor/librocksdb/vendor/rocksdb/table/format.h +0 -439
  581. package/vendor/librocksdb/vendor/rocksdb/table/get_context.cc +0 -622
  582. package/vendor/librocksdb/vendor/rocksdb/table/get_context.h +0 -259
  583. package/vendor/librocksdb/vendor/rocksdb/table/internal_iterator.h +0 -242
  584. package/vendor/librocksdb/vendor/rocksdb/table/iter_heap.h +0 -44
  585. package/vendor/librocksdb/vendor/rocksdb/table/iterator.cc +0 -134
  586. package/vendor/librocksdb/vendor/rocksdb/table/iterator_wrapper.h +0 -225
  587. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.cc +0 -1755
  588. package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.h +0 -100
  589. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.cc +0 -590
  590. package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.h +0 -181
  591. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.cc +0 -355
  592. package/vendor/librocksdb/vendor/rocksdb/table/mock_table.h +0 -92
  593. package/vendor/librocksdb/vendor/rocksdb/table/multiget_context.h +0 -405
  594. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.cc +0 -110
  595. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_helper.h +0 -46
  596. package/vendor/librocksdb/vendor/rocksdb/table/persistent_cache_options.h +0 -34
  597. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.cc +0 -78
  598. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_bloom.h +0 -132
  599. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.cc +0 -348
  600. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.h +0 -151
  601. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.cc +0 -295
  602. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_factory.h +0 -180
  603. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.cc +0 -211
  604. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_index.h +0 -246
  605. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.cc +0 -508
  606. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_key_coding.h +0 -199
  607. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.cc +0 -778
  608. package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_reader.h +0 -243
  609. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.cc +0 -601
  610. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.h +0 -104
  611. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_reader.cc +0 -166
  612. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer.cc +0 -536
  613. package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer_collectors.h +0 -97
  614. package/vendor/librocksdb/vendor/rocksdb/table/table_builder.h +0 -239
  615. package/vendor/librocksdb/vendor/rocksdb/table/table_factory.cc +0 -52
  616. package/vendor/librocksdb/vendor/rocksdb/table/table_iterator.h +0 -69
  617. package/vendor/librocksdb/vendor/rocksdb/table/table_properties.cc +0 -357
  618. package/vendor/librocksdb/vendor/rocksdb/table/table_properties_internal.h +0 -14
  619. package/vendor/librocksdb/vendor/rocksdb/table/table_reader.h +0 -202
  620. package/vendor/librocksdb/vendor/rocksdb/table/table_reader_bench.cc +0 -341
  621. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.cc +0 -222
  622. package/vendor/librocksdb/vendor/rocksdb/table/two_level_iterator.h +0 -43
  623. package/vendor/librocksdb/vendor/rocksdb/table/unique_id.cc +0 -223
  624. package/vendor/librocksdb/vendor/rocksdb/table/unique_id_impl.h +0 -93
  625. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.cc +0 -38
  626. package/vendor/librocksdb/vendor/rocksdb/test_util/mock_time_env.h +0 -109
  627. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.cc +0 -93
  628. package/vendor/librocksdb/vendor/rocksdb/test_util/secondary_cache_test_util.h +0 -131
  629. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.cc +0 -82
  630. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point.h +0 -182
  631. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.cc +0 -152
  632. package/vendor/librocksdb/vendor/rocksdb/test_util/sync_point_impl.h +0 -96
  633. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.cc +0 -105
  634. package/vendor/librocksdb/vendor/rocksdb/test_util/testharness.h +0 -124
  635. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.cc +0 -776
  636. package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.h +0 -908
  637. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.cc +0 -400
  638. package/vendor/librocksdb/vendor/rocksdb/test_util/transaction_test_util.h +0 -147
  639. package/vendor/librocksdb/vendor/rocksdb/tools/CMakeLists.txt +0 -30
  640. package/vendor/librocksdb/vendor/rocksdb/tools/blob_dump.cc +0 -103
  641. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +0 -2331
  642. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +0 -398
  643. package/vendor/librocksdb/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +0 -17
  644. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench.cc +0 -21
  645. package/vendor/librocksdb/vendor/rocksdb/tools/db_bench_tool.cc +0 -8743
  646. package/vendor/librocksdb/vendor/rocksdb/tools/db_repl_stress.cc +0 -132
  647. package/vendor/librocksdb/vendor/rocksdb/tools/dump/db_dump_tool.cc +0 -264
  648. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_dump.cc +0 -60
  649. package/vendor/librocksdb/vendor/rocksdb/tools/dump/rocksdb_undump.cc +0 -59
  650. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser.cc +0 -17
  651. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.cc +0 -142
  652. package/vendor/librocksdb/vendor/rocksdb/tools/io_tracer_parser_tool.h +0 -38
  653. package/vendor/librocksdb/vendor/rocksdb/tools/ldb.cc +0 -13
  654. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd.cc +0 -5044
  655. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd_impl.h +0 -814
  656. package/vendor/librocksdb/vendor/rocksdb/tools/ldb_tool.cc +0 -192
  657. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.cc +0 -244
  658. package/vendor/librocksdb/vendor/rocksdb/tools/simulated_hybrid_file_system.h +0 -124
  659. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump.cc +0 -12
  660. package/vendor/librocksdb/vendor/rocksdb/tools/sst_dump_tool.cc +0 -588
  661. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer.cc +0 -17
  662. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.cc +0 -1935
  663. package/vendor/librocksdb/vendor/rocksdb/tools/trace_analyzer_tool.h +0 -329
  664. package/vendor/librocksdb/vendor/rocksdb/tools/write_stress.cc +0 -305
  665. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.cc +0 -509
  666. package/vendor/librocksdb/vendor/rocksdb/trace_replay/block_cache_tracer.h +0 -239
  667. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.cc +0 -303
  668. package/vendor/librocksdb/vendor/rocksdb/trace_replay/io_tracer.h +0 -185
  669. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record.cc +0 -206
  670. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.cc +0 -190
  671. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_handler.h +0 -46
  672. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_record_result.cc +0 -146
  673. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.cc +0 -632
  674. package/vendor/librocksdb/vendor/rocksdb/trace_replay/trace_replay.h +0 -184
  675. package/vendor/librocksdb/vendor/rocksdb/util/aligned_buffer.h +0 -235
  676. package/vendor/librocksdb/vendor/rocksdb/util/aligned_storage.h +0 -24
  677. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.cc +0 -84
  678. package/vendor/librocksdb/vendor/rocksdb/util/async_file_reader.h +0 -144
  679. package/vendor/librocksdb/vendor/rocksdb/util/atomic.h +0 -111
  680. package/vendor/librocksdb/vendor/rocksdb/util/autovector.h +0 -397
  681. package/vendor/librocksdb/vendor/rocksdb/util/bloom_impl.h +0 -489
  682. package/vendor/librocksdb/vendor/rocksdb/util/build_version.cc.in +0 -79
  683. package/vendor/librocksdb/vendor/rocksdb/util/cast_util.h +0 -88
  684. package/vendor/librocksdb/vendor/rocksdb/util/channel.h +0 -69
  685. package/vendor/librocksdb/vendor/rocksdb/util/cleanable.cc +0 -181
  686. package/vendor/librocksdb/vendor/rocksdb/util/coding.cc +0 -90
  687. package/vendor/librocksdb/vendor/rocksdb/util/coding.h +0 -385
  688. package/vendor/librocksdb/vendor/rocksdb/util/coding_lean.h +0 -101
  689. package/vendor/librocksdb/vendor/rocksdb/util/compaction_job_stats_impl.cc +0 -94
  690. package/vendor/librocksdb/vendor/rocksdb/util/comparator.cc +0 -443
  691. package/vendor/librocksdb/vendor/rocksdb/util/compression.cc +0 -122
  692. package/vendor/librocksdb/vendor/rocksdb/util/compression.h +0 -1879
  693. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.cc +0 -106
  694. package/vendor/librocksdb/vendor/rocksdb/util/compression_context_cache.h +0 -47
  695. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.cc +0 -64
  696. package/vendor/librocksdb/vendor/rocksdb/util/concurrent_task_limiter_impl.h +0 -67
  697. package/vendor/librocksdb/vendor/rocksdb/util/core_local.h +0 -85
  698. package/vendor/librocksdb/vendor/rocksdb/util/coro_utils.h +0 -112
  699. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.cc +0 -1295
  700. package/vendor/librocksdb/vendor/rocksdb/util/crc32c.h +0 -56
  701. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.cc +0 -213
  702. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_arm64.h +0 -51
  703. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.c +0 -94
  704. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc.h +0 -21
  705. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_asm.S +0 -756
  706. package/vendor/librocksdb/vendor/rocksdb/util/crc32c_ppc_constants.h +0 -900
  707. package/vendor/librocksdb/vendor/rocksdb/util/data_structure.cc +0 -16
  708. package/vendor/librocksdb/vendor/rocksdb/util/defer.h +0 -82
  709. package/vendor/librocksdb/vendor/rocksdb/util/distributed_mutex.h +0 -50
  710. package/vendor/librocksdb/vendor/rocksdb/util/duplicate_detector.h +0 -69
  711. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.cc +0 -70
  712. package/vendor/librocksdb/vendor/rocksdb/util/dynamic_bloom.h +0 -214
  713. package/vendor/librocksdb/vendor/rocksdb/util/fastrange.h +0 -114
  714. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.cc +0 -170
  715. package/vendor/librocksdb/vendor/rocksdb/util/file_checksum_helper.h +0 -101
  716. package/vendor/librocksdb/vendor/rocksdb/util/filter_bench.cc +0 -840
  717. package/vendor/librocksdb/vendor/rocksdb/util/gflags_compat.h +0 -29
  718. package/vendor/librocksdb/vendor/rocksdb/util/hash.cc +0 -201
  719. package/vendor/librocksdb/vendor/rocksdb/util/hash.h +0 -141
  720. package/vendor/librocksdb/vendor/rocksdb/util/hash128.h +0 -26
  721. package/vendor/librocksdb/vendor/rocksdb/util/hash_containers.h +0 -51
  722. package/vendor/librocksdb/vendor/rocksdb/util/hash_map.h +0 -67
  723. package/vendor/librocksdb/vendor/rocksdb/util/heap.h +0 -174
  724. package/vendor/librocksdb/vendor/rocksdb/util/kv_map.h +0 -33
  725. package/vendor/librocksdb/vendor/rocksdb/util/log_write_bench.cc +0 -88
  726. package/vendor/librocksdb/vendor/rocksdb/util/math.h +0 -351
  727. package/vendor/librocksdb/vendor/rocksdb/util/math128.h +0 -338
  728. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.cc +0 -196
  729. package/vendor/librocksdb/vendor/rocksdb/util/murmurhash.h +0 -43
  730. package/vendor/librocksdb/vendor/rocksdb/util/mutexlock.h +0 -189
  731. package/vendor/librocksdb/vendor/rocksdb/util/overload.h +0 -23
  732. package/vendor/librocksdb/vendor/rocksdb/util/ppc-opcode.h +0 -27
  733. package/vendor/librocksdb/vendor/rocksdb/util/random.cc +0 -63
  734. package/vendor/librocksdb/vendor/rocksdb/util/random.h +0 -190
  735. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter.cc +0 -391
  736. package/vendor/librocksdb/vendor/rocksdb/util/rate_limiter_impl.h +0 -156
  737. package/vendor/librocksdb/vendor/rocksdb/util/repeatable_thread.h +0 -149
  738. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_alg.h +0 -1225
  739. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.cc +0 -498
  740. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_config.h +0 -182
  741. package/vendor/librocksdb/vendor/rocksdb/util/ribbon_impl.h +0 -1137
  742. package/vendor/librocksdb/vendor/rocksdb/util/set_comparator.h +0 -24
  743. package/vendor/librocksdb/vendor/rocksdb/util/single_thread_executor.h +0 -57
  744. package/vendor/librocksdb/vendor/rocksdb/util/slice.cc +0 -366
  745. package/vendor/librocksdb/vendor/rocksdb/util/status.cc +0 -163
  746. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.cc +0 -62
  747. package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.h +0 -41
  748. package/vendor/librocksdb/vendor/rocksdb/util/stop_watch.h +0 -136
  749. package/vendor/librocksdb/vendor/rocksdb/util/string_util.cc +0 -554
  750. package/vendor/librocksdb/vendor/rocksdb/util/string_util.h +0 -185
  751. package/vendor/librocksdb/vendor/rocksdb/util/thread_guard.h +0 -41
  752. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.cc +0 -521
  753. package/vendor/librocksdb/vendor/rocksdb/util/thread_local.h +0 -100
  754. package/vendor/librocksdb/vendor/rocksdb/util/thread_operation.h +0 -122
  755. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.cc +0 -550
  756. package/vendor/librocksdb/vendor/rocksdb/util/threadpool_imp.h +0 -120
  757. package/vendor/librocksdb/vendor/rocksdb/util/timer.h +0 -340
  758. package/vendor/librocksdb/vendor/rocksdb/util/timer_queue.h +0 -231
  759. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.cc +0 -418
  760. package/vendor/librocksdb/vendor/rocksdb/util/udt_util.h +0 -275
  761. package/vendor/librocksdb/vendor/rocksdb/util/user_comparator_wrapper.h +0 -64
  762. package/vendor/librocksdb/vendor/rocksdb/util/vector_iterator.h +0 -114
  763. package/vendor/librocksdb/vendor/rocksdb/util/work_queue.h +0 -150
  764. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.cc +0 -25
  765. package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.h +0 -90
  766. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.cc +0 -48
  767. package/vendor/librocksdb/vendor/rocksdb/util/xxhash.h +0 -6364
  768. package/vendor/librocksdb/vendor/rocksdb/util/xxph3.h +0 -1760
  769. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge.cc +0 -237
  770. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/agg_merge_impl.h +0 -49
  771. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.cc +0 -103
  772. package/vendor/librocksdb/vendor/rocksdb/utilities/agg_merge/test_agg_merge.h +0 -47
  773. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine.cc +0 -3357
  774. package/vendor/librocksdb/vendor/rocksdb/utilities/backup/backup_engine_impl.h +0 -34
  775. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.cc +0 -490
  776. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.h +0 -202
  777. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.cc +0 -109
  778. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db.h +0 -231
  779. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_gc_stats.h +0 -54
  780. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.cc +0 -2269
  781. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +0 -514
  782. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +0 -127
  783. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_iterator.h +0 -148
  784. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_listener.h +0 -71
  785. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.cc +0 -276
  786. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_dump_tool.h +0 -56
  787. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.cc +0 -311
  788. package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_file.h +0 -245
  789. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load.cc +0 -67
  790. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.cc +0 -389
  791. package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.h +0 -368
  792. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +0 -104
  793. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +0 -57
  794. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/cassandra_options.h +0 -41
  795. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.cc +0 -365
  796. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/format.h +0 -183
  797. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.cc +0 -76
  798. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/merge_operator.h +0 -43
  799. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/serialize.h +0 -81
  800. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.cc +0 -67
  801. package/vendor/librocksdb/vendor/rocksdb/utilities/cassandra/test_utils.h +0 -42
  802. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.cc +0 -472
  803. package/vendor/librocksdb/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.h +0 -64
  804. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +0 -41
  805. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -24
  806. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +0 -26
  807. package/vendor/librocksdb/vendor/rocksdb/utilities/compaction_filters.cc +0 -52
  808. package/vendor/librocksdb/vendor/rocksdb/utilities/convenience/info_log_finder.cc +0 -26
  809. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.cc +0 -379
  810. package/vendor/librocksdb/vendor/rocksdb/utilities/counted_fs.h +0 -158
  811. package/vendor/librocksdb/vendor/rocksdb/utilities/debug.cc +0 -134
  812. package/vendor/librocksdb/vendor/rocksdb/utilities/env_mirror.cc +0 -280
  813. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.cc +0 -181
  814. package/vendor/librocksdb/vendor/rocksdb/utilities/env_timed.h +0 -95
  815. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.cc +0 -555
  816. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_env.h +0 -252
  817. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.cc +0 -1507
  818. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.h +0 -760
  819. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.cc +0 -138
  820. package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_secondary_cache.h +0 -115
  821. package/vendor/librocksdb/vendor/rocksdb/utilities/leveldb_options/leveldb_options.cc +0 -57
  822. package/vendor/librocksdb/vendor/rocksdb/utilities/memory/memory_util.cc +0 -50
  823. package/vendor/librocksdb/vendor/rocksdb/utilities/memory_allocators.h +0 -103
  824. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.cc +0 -57
  825. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/bytesxor.h +0 -39
  826. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max.cc +0 -64
  827. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/max_operator.h +0 -35
  828. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put.cc +0 -74
  829. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/put_operator.h +0 -56
  830. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.cc +0 -97
  831. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/sortlist.h +0 -42
  832. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.cc +0 -76
  833. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.h +0 -32
  834. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +0 -129
  835. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.h +0 -51
  836. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.cc +0 -56
  837. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators/uint64add.h +0 -35
  838. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.cc +0 -115
  839. package/vendor/librocksdb/vendor/rocksdb/utilities/merge_operators.h +0 -36
  840. package/vendor/librocksdb/vendor/rocksdb/utilities/object_registry.cc +0 -381
  841. package/vendor/librocksdb/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +0 -169
  842. package/vendor/librocksdb/vendor/rocksdb/utilities/options/options_util.cc +0 -117
  843. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.cc +0 -420
  844. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.h +0 -154
  845. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +0 -607
  846. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +0 -291
  847. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +0 -127
  848. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +0 -84
  849. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +0 -122
  850. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table.h +0 -237
  851. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_bench.cc +0 -310
  852. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/hash_table_evictable.h +0 -166
  853. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/lrulist.h +0 -172
  854. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +0 -355
  855. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.h +0 -284
  856. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +0 -165
  857. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +0 -340
  858. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/persistent_cache_util.h +0 -67
  859. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +0 -138
  860. package/vendor/librocksdb/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +0 -139
  861. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.cc +0 -287
  862. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/cache_simulator.h +0 -231
  863. package/vendor/librocksdb/vendor/rocksdb/utilities/simulator_cache/sim_cache.cc +0 -375
  864. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +0 -144
  865. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +0 -45
  866. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +0 -233
  867. package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +0 -65
  868. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.cc +0 -132
  869. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/file_trace_reader_writer.h +0 -48
  870. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.cc +0 -313
  871. package/vendor/librocksdb/vendor/rocksdb/utilities/trace/replayer_impl.h +0 -84
  872. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.cc +0 -27
  873. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_manager.h +0 -80
  874. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/lock_tracker.h +0 -207
  875. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +0 -718
  876. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +0 -222
  877. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +0 -324
  878. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +0 -255
  879. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +0 -97
  880. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +0 -34
  881. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +0 -81
  882. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +0 -138
  883. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +0 -102
  884. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +0 -137
  885. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +0 -174
  886. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +0 -220
  887. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +0 -141
  888. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +0 -525
  889. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +0 -255
  890. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +0 -1021
  891. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +0 -580
  892. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +0 -525
  893. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +0 -263
  894. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +0 -178
  895. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +0 -518
  896. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +0 -302
  897. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +0 -118
  898. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +0 -92
  899. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +0 -211
  900. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +0 -124
  901. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +0 -215
  902. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +0 -43
  903. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +0 -130
  904. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +0 -87
  905. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +0 -286
  906. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +0 -87
  907. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +0 -520
  908. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +0 -179
  909. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +0 -197
  910. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +0 -31
  911. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +0 -139
  912. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +0 -165
  913. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +0 -98
  914. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +0 -144
  915. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +0 -199
  916. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +0 -141
  917. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +0 -794
  918. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +0 -1295
  919. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +0 -165
  920. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +0 -76
  921. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +0 -501
  922. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +0 -135
  923. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +0 -156
  924. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +0 -146
  925. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.cc +0 -208
  926. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction.h +0 -99
  927. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +0 -111
  928. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +0 -110
  929. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +0 -1278
  930. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -345
  931. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +0 -845
  932. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +0 -345
  933. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/snapshot_checker.cc +0 -37
  934. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.cc +0 -912
  935. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.h +0 -455
  936. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +0 -133
  937. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +0 -24
  938. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_test.h +0 -589
  939. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.cc +0 -207
  940. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.h +0 -86
  941. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +0 -548
  942. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.h +0 -118
  943. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +0 -1100
  944. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +0 -1149
  945. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +0 -1089
  946. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.h +0 -333
  947. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +0 -486
  948. package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.h +0 -105
  949. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.cc +0 -638
  950. package/vendor/librocksdb/vendor/rocksdb/utilities/ttl/db_ttl_impl.h +0 -239
  951. package/vendor/librocksdb/vendor/rocksdb/utilities/types_util.cc +0 -88
  952. package/vendor/librocksdb/vendor/rocksdb/utilities/wal_filter.cc +0 -22
  953. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +0 -1134
  954. package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +0 -934
  955. 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