rocksdb-native 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1951) hide show
  1. package/.clang-format +15 -0
  2. package/.github/workflows/test-node.yml +23 -0
  3. package/.gitmodules +4 -0
  4. package/CMakeLists.txt +33 -0
  5. package/LICENSE +201 -0
  6. package/NOTICE +13 -0
  7. package/README.md +15 -0
  8. package/binding.c +470 -0
  9. package/binding.js +1 -0
  10. package/index.js +276 -0
  11. package/package.json +19 -0
  12. package/vendor/rocksdb/.circleci/config.yml +892 -0
  13. package/vendor/rocksdb/.circleci/ubsan_suppression_list.txt +6 -0
  14. package/vendor/rocksdb/.clang-format +5 -0
  15. package/vendor/rocksdb/.github/workflows/sanity_check.yml +47 -0
  16. package/vendor/rocksdb/.lgtm.yml +4 -0
  17. package/vendor/rocksdb/AUTHORS +12 -0
  18. package/vendor/rocksdb/CMakeLists.txt +1591 -0
  19. package/vendor/rocksdb/CODE_OF_CONDUCT.md +77 -0
  20. package/vendor/rocksdb/CONTRIBUTING.md +17 -0
  21. package/vendor/rocksdb/COPYING +339 -0
  22. package/vendor/rocksdb/DEFAULT_OPTIONS_HISTORY.md +24 -0
  23. package/vendor/rocksdb/DUMP_FORMAT.md +16 -0
  24. package/vendor/rocksdb/HISTORY.md +2399 -0
  25. package/vendor/rocksdb/INSTALL.md +220 -0
  26. package/vendor/rocksdb/LANGUAGE-BINDINGS.md +26 -0
  27. package/vendor/rocksdb/LICENSE.Apache +202 -0
  28. package/vendor/rocksdb/LICENSE.leveldb +29 -0
  29. package/vendor/rocksdb/Makefile +2579 -0
  30. package/vendor/rocksdb/PLUGINS.md +8 -0
  31. package/vendor/rocksdb/README.md +29 -0
  32. package/vendor/rocksdb/TARGETS +5599 -0
  33. package/vendor/rocksdb/USERS.md +165 -0
  34. package/vendor/rocksdb/Vagrantfile +39 -0
  35. package/vendor/rocksdb/WINDOWS_PORT.md +228 -0
  36. package/vendor/rocksdb/buckifier/bench-slow.json +6163 -0
  37. package/vendor/rocksdb/buckifier/bench.json +1594 -0
  38. package/vendor/rocksdb/buckifier/buckify_rocksdb.py +333 -0
  39. package/vendor/rocksdb/buckifier/check_buck_targets.sh +32 -0
  40. package/vendor/rocksdb/buckifier/rocks_test_runner.sh +6 -0
  41. package/vendor/rocksdb/buckifier/targets_builder.py +150 -0
  42. package/vendor/rocksdb/buckifier/targets_cfg.py +41 -0
  43. package/vendor/rocksdb/buckifier/util.py +118 -0
  44. package/vendor/rocksdb/build_tools/amalgamate.py +168 -0
  45. package/vendor/rocksdb/build_tools/benchmark_log_tool.py +238 -0
  46. package/vendor/rocksdb/build_tools/build_detect_platform +804 -0
  47. package/vendor/rocksdb/build_tools/check-sources.sh +48 -0
  48. package/vendor/rocksdb/build_tools/dependencies_platform010.sh +22 -0
  49. package/vendor/rocksdb/build_tools/dockerbuild.sh +3 -0
  50. package/vendor/rocksdb/build_tools/error_filter.py +181 -0
  51. package/vendor/rocksdb/build_tools/fb_compile_mongo.sh +55 -0
  52. package/vendor/rocksdb/build_tools/fbcode_config.sh +175 -0
  53. package/vendor/rocksdb/build_tools/fbcode_config_platform010.sh +175 -0
  54. package/vendor/rocksdb/build_tools/format-diff.sh +203 -0
  55. package/vendor/rocksdb/build_tools/gnu_parallel +7971 -0
  56. package/vendor/rocksdb/build_tools/make_package.sh +129 -0
  57. package/vendor/rocksdb/build_tools/ps_with_stack +38 -0
  58. package/vendor/rocksdb/build_tools/regression_build_test.sh +396 -0
  59. package/vendor/rocksdb/build_tools/run_ci_db_test.ps1 +493 -0
  60. package/vendor/rocksdb/build_tools/setup_centos7.sh +45 -0
  61. package/vendor/rocksdb/build_tools/ubuntu20_image/Dockerfile +57 -0
  62. package/vendor/rocksdb/build_tools/update_dependencies.sh +106 -0
  63. package/vendor/rocksdb/build_tools/version.sh +23 -0
  64. package/vendor/rocksdb/cache/cache.cc +158 -0
  65. package/vendor/rocksdb/cache/cache_bench.cc +20 -0
  66. package/vendor/rocksdb/cache/cache_bench_tool.cc +969 -0
  67. package/vendor/rocksdb/cache/cache_entry_roles.cc +104 -0
  68. package/vendor/rocksdb/cache/cache_entry_roles.h +20 -0
  69. package/vendor/rocksdb/cache/cache_entry_stats.h +182 -0
  70. package/vendor/rocksdb/cache/cache_helpers.cc +40 -0
  71. package/vendor/rocksdb/cache/cache_helpers.h +139 -0
  72. package/vendor/rocksdb/cache/cache_key.cc +364 -0
  73. package/vendor/rocksdb/cache/cache_key.h +143 -0
  74. package/vendor/rocksdb/cache/cache_reservation_manager.cc +184 -0
  75. package/vendor/rocksdb/cache/cache_reservation_manager.h +317 -0
  76. package/vendor/rocksdb/cache/cache_reservation_manager_test.cc +469 -0
  77. package/vendor/rocksdb/cache/cache_test.cc +1061 -0
  78. package/vendor/rocksdb/cache/charged_cache.cc +109 -0
  79. package/vendor/rocksdb/cache/charged_cache.h +59 -0
  80. package/vendor/rocksdb/cache/clock_cache.cc +1482 -0
  81. package/vendor/rocksdb/cache/clock_cache.h +707 -0
  82. package/vendor/rocksdb/cache/compressed_secondary_cache.cc +304 -0
  83. package/vendor/rocksdb/cache/compressed_secondary_cache.h +132 -0
  84. package/vendor/rocksdb/cache/compressed_secondary_cache_test.cc +983 -0
  85. package/vendor/rocksdb/cache/lru_cache.cc +723 -0
  86. package/vendor/rocksdb/cache/lru_cache.h +467 -0
  87. package/vendor/rocksdb/cache/lru_cache_test.cc +2559 -0
  88. package/vendor/rocksdb/cache/secondary_cache.cc +44 -0
  89. package/vendor/rocksdb/cache/secondary_cache_adapter.cc +295 -0
  90. package/vendor/rocksdb/cache/secondary_cache_adapter.h +52 -0
  91. package/vendor/rocksdb/cache/sharded_cache.cc +137 -0
  92. package/vendor/rocksdb/cache/sharded_cache.h +309 -0
  93. package/vendor/rocksdb/cache/typed_cache.h +375 -0
  94. package/vendor/rocksdb/cmake/RocksDBConfig.cmake.in +54 -0
  95. package/vendor/rocksdb/common.mk +30 -0
  96. package/vendor/rocksdb/crash_test.mk +107 -0
  97. package/vendor/rocksdb/db/arena_wrapped_db_iter.cc +163 -0
  98. package/vendor/rocksdb/db/arena_wrapped_db_iter.h +127 -0
  99. package/vendor/rocksdb/db/blob/blob_constants.h +16 -0
  100. package/vendor/rocksdb/db/blob/blob_contents.cc +42 -0
  101. package/vendor/rocksdb/db/blob/blob_contents.h +59 -0
  102. package/vendor/rocksdb/db/blob/blob_counting_iterator.h +150 -0
  103. package/vendor/rocksdb/db/blob/blob_counting_iterator_test.cc +327 -0
  104. package/vendor/rocksdb/db/blob/blob_fetcher.cc +34 -0
  105. package/vendor/rocksdb/db/blob/blob_fetcher.h +37 -0
  106. package/vendor/rocksdb/db/blob/blob_file_addition.cc +156 -0
  107. package/vendor/rocksdb/db/blob/blob_file_addition.h +67 -0
  108. package/vendor/rocksdb/db/blob/blob_file_addition_test.cc +211 -0
  109. package/vendor/rocksdb/db/blob/blob_file_builder.cc +426 -0
  110. package/vendor/rocksdb/db/blob/blob_file_builder.h +112 -0
  111. package/vendor/rocksdb/db/blob/blob_file_builder_test.cc +680 -0
  112. package/vendor/rocksdb/db/blob/blob_file_cache.cc +101 -0
  113. package/vendor/rocksdb/db/blob/blob_file_cache.h +56 -0
  114. package/vendor/rocksdb/db/blob/blob_file_cache_test.cc +278 -0
  115. package/vendor/rocksdb/db/blob/blob_file_completion_callback.h +84 -0
  116. package/vendor/rocksdb/db/blob/blob_file_garbage.cc +134 -0
  117. package/vendor/rocksdb/db/blob/blob_file_garbage.h +57 -0
  118. package/vendor/rocksdb/db/blob/blob_file_garbage_test.cc +174 -0
  119. package/vendor/rocksdb/db/blob/blob_file_meta.cc +62 -0
  120. package/vendor/rocksdb/db/blob/blob_file_meta.h +170 -0
  121. package/vendor/rocksdb/db/blob/blob_file_reader.cc +624 -0
  122. package/vendor/rocksdb/db/blob/blob_file_reader.h +112 -0
  123. package/vendor/rocksdb/db/blob/blob_file_reader_test.cc +1023 -0
  124. package/vendor/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
  125. package/vendor/rocksdb/db/blob/blob_garbage_meter.h +102 -0
  126. package/vendor/rocksdb/db/blob/blob_garbage_meter_test.cc +197 -0
  127. package/vendor/rocksdb/db/blob/blob_index.h +187 -0
  128. package/vendor/rocksdb/db/blob/blob_log_format.cc +143 -0
  129. package/vendor/rocksdb/db/blob/blob_log_format.h +164 -0
  130. package/vendor/rocksdb/db/blob/blob_log_sequential_reader.cc +134 -0
  131. package/vendor/rocksdb/db/blob/blob_log_sequential_reader.h +83 -0
  132. package/vendor/rocksdb/db/blob/blob_log_writer.cc +178 -0
  133. package/vendor/rocksdb/db/blob/blob_log_writer.h +83 -0
  134. package/vendor/rocksdb/db/blob/blob_read_request.h +58 -0
  135. package/vendor/rocksdb/db/blob/blob_source.cc +459 -0
  136. package/vendor/rocksdb/db/blob/blob_source.h +161 -0
  137. package/vendor/rocksdb/db/blob/blob_source_test.cc +1611 -0
  138. package/vendor/rocksdb/db/blob/db_blob_basic_test.cc +2237 -0
  139. package/vendor/rocksdb/db/blob/db_blob_compaction_test.cc +899 -0
  140. package/vendor/rocksdb/db/blob/db_blob_corruption_test.cc +80 -0
  141. package/vendor/rocksdb/db/blob/db_blob_index_test.cc +596 -0
  142. package/vendor/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
  143. package/vendor/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
  144. package/vendor/rocksdb/db/builder.cc +447 -0
  145. package/vendor/rocksdb/db/builder.h +78 -0
  146. package/vendor/rocksdb/db/c.cc +6559 -0
  147. package/vendor/rocksdb/db/c_test.c +3609 -0
  148. package/vendor/rocksdb/db/column_family.cc +1708 -0
  149. package/vendor/rocksdb/db/column_family.h +851 -0
  150. package/vendor/rocksdb/db/column_family_test.cc +3382 -0
  151. package/vendor/rocksdb/db/compact_files_test.cc +492 -0
  152. package/vendor/rocksdb/db/compaction/clipping_iterator.h +281 -0
  153. package/vendor/rocksdb/db/compaction/clipping_iterator_test.cc +259 -0
  154. package/vendor/rocksdb/db/compaction/compaction.cc +857 -0
  155. package/vendor/rocksdb/db/compaction/compaction.h +565 -0
  156. package/vendor/rocksdb/db/compaction/compaction_iteration_stats.h +49 -0
  157. package/vendor/rocksdb/db/compaction/compaction_iterator.cc +1445 -0
  158. package/vendor/rocksdb/db/compaction/compaction_iterator.h +530 -0
  159. package/vendor/rocksdb/db/compaction/compaction_iterator_test.cc +1618 -0
  160. package/vendor/rocksdb/db/compaction/compaction_job.cc +2054 -0
  161. package/vendor/rocksdb/db/compaction/compaction_job.h +504 -0
  162. package/vendor/rocksdb/db/compaction/compaction_job_stats_test.cc +965 -0
  163. package/vendor/rocksdb/db/compaction/compaction_job_test.cc +2444 -0
  164. package/vendor/rocksdb/db/compaction/compaction_outputs.cc +784 -0
  165. package/vendor/rocksdb/db/compaction/compaction_outputs.h +403 -0
  166. package/vendor/rocksdb/db/compaction/compaction_picker.cc +1225 -0
  167. package/vendor/rocksdb/db/compaction/compaction_picker.h +318 -0
  168. package/vendor/rocksdb/db/compaction/compaction_picker_fifo.cc +471 -0
  169. package/vendor/rocksdb/db/compaction/compaction_picker_fifo.h +60 -0
  170. package/vendor/rocksdb/db/compaction/compaction_picker_level.cc +888 -0
  171. package/vendor/rocksdb/db/compaction/compaction_picker_level.h +33 -0
  172. package/vendor/rocksdb/db/compaction/compaction_picker_test.cc +4074 -0
  173. package/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +1452 -0
  174. package/vendor/rocksdb/db/compaction/compaction_picker_universal.h +30 -0
  175. package/vendor/rocksdb/db/compaction/compaction_service_job.cc +833 -0
  176. package/vendor/rocksdb/db/compaction/compaction_service_test.cc +954 -0
  177. package/vendor/rocksdb/db/compaction/compaction_state.cc +46 -0
  178. package/vendor/rocksdb/db/compaction/compaction_state.h +42 -0
  179. package/vendor/rocksdb/db/compaction/file_pri.h +92 -0
  180. package/vendor/rocksdb/db/compaction/sst_partitioner.cc +83 -0
  181. package/vendor/rocksdb/db/compaction/subcompaction_state.cc +106 -0
  182. package/vendor/rocksdb/db/compaction/subcompaction_state.h +220 -0
  183. package/vendor/rocksdb/db/compaction/tiered_compaction_test.cc +2149 -0
  184. package/vendor/rocksdb/db/comparator_db_test.cc +678 -0
  185. package/vendor/rocksdb/db/convenience.cc +81 -0
  186. package/vendor/rocksdb/db/corruption_test.cc +1670 -0
  187. package/vendor/rocksdb/db/cuckoo_table_db_test.cc +351 -0
  188. package/vendor/rocksdb/db/db_basic_test.cc +4777 -0
  189. package/vendor/rocksdb/db/db_block_cache_test.cc +1972 -0
  190. package/vendor/rocksdb/db/db_bloom_filter_test.cc +3513 -0
  191. package/vendor/rocksdb/db/db_clip_test.cc +142 -0
  192. package/vendor/rocksdb/db/db_compaction_filter_test.cc +1030 -0
  193. package/vendor/rocksdb/db/db_compaction_test.cc +9424 -0
  194. package/vendor/rocksdb/db/db_dynamic_level_test.cc +499 -0
  195. package/vendor/rocksdb/db/db_encryption_test.cc +126 -0
  196. package/vendor/rocksdb/db/db_filesnapshot.cc +436 -0
  197. package/vendor/rocksdb/db/db_flush_test.cc +3202 -0
  198. package/vendor/rocksdb/db/db_impl/compacted_db_impl.cc +260 -0
  199. package/vendor/rocksdb/db/db_impl/compacted_db_impl.h +157 -0
  200. package/vendor/rocksdb/db/db_impl/db_impl.cc +6132 -0
  201. package/vendor/rocksdb/db/db_impl/db_impl.h +2841 -0
  202. package/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +3980 -0
  203. package/vendor/rocksdb/db/db_impl/db_impl_debug.cc +314 -0
  204. package/vendor/rocksdb/db/db_impl/db_impl_experimental.cc +159 -0
  205. package/vendor/rocksdb/db/db_impl/db_impl_files.cc +1014 -0
  206. package/vendor/rocksdb/db/db_impl/db_impl_open.cc +2202 -0
  207. package/vendor/rocksdb/db/db_impl/db_impl_readonly.cc +334 -0
  208. package/vendor/rocksdb/db/db_impl/db_impl_readonly.h +173 -0
  209. package/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +964 -0
  210. package/vendor/rocksdb/db/db_impl/db_impl_secondary.h +406 -0
  211. package/vendor/rocksdb/db/db_impl/db_impl_write.cc +2487 -0
  212. package/vendor/rocksdb/db/db_info_dumper.cc +147 -0
  213. package/vendor/rocksdb/db/db_info_dumper.h +15 -0
  214. package/vendor/rocksdb/db/db_inplace_update_test.cc +262 -0
  215. package/vendor/rocksdb/db/db_io_failure_test.cc +589 -0
  216. package/vendor/rocksdb/db/db_iter.cc +1708 -0
  217. package/vendor/rocksdb/db/db_iter.h +411 -0
  218. package/vendor/rocksdb/db/db_iter_stress_test.cc +658 -0
  219. package/vendor/rocksdb/db/db_iter_test.cc +3195 -0
  220. package/vendor/rocksdb/db/db_iterator_test.cc +3304 -0
  221. package/vendor/rocksdb/db/db_kv_checksum_test.cc +885 -0
  222. package/vendor/rocksdb/db/db_log_iter_test.cc +297 -0
  223. package/vendor/rocksdb/db/db_logical_block_size_cache_test.cc +505 -0
  224. package/vendor/rocksdb/db/db_memtable_test.cc +344 -0
  225. package/vendor/rocksdb/db/db_merge_operand_test.cc +488 -0
  226. package/vendor/rocksdb/db/db_merge_operator_test.cc +866 -0
  227. package/vendor/rocksdb/db/db_options_test.cc +1330 -0
  228. package/vendor/rocksdb/db/db_properties_test.cc +2377 -0
  229. package/vendor/rocksdb/db/db_range_del_test.cc +3414 -0
  230. package/vendor/rocksdb/db/db_rate_limiter_test.cc +437 -0
  231. package/vendor/rocksdb/db/db_readonly_with_timestamp_test.cc +956 -0
  232. package/vendor/rocksdb/db/db_secondary_test.cc +1691 -0
  233. package/vendor/rocksdb/db/db_sst_test.cc +1865 -0
  234. package/vendor/rocksdb/db/db_statistics_test.cc +292 -0
  235. package/vendor/rocksdb/db/db_table_properties_test.cc +623 -0
  236. package/vendor/rocksdb/db/db_tailing_iter_test.cc +595 -0
  237. package/vendor/rocksdb/db/db_test.cc +7359 -0
  238. package/vendor/rocksdb/db/db_test2.cc +7679 -0
  239. package/vendor/rocksdb/db/db_test_util.cc +1759 -0
  240. package/vendor/rocksdb/db/db_test_util.h +1340 -0
  241. package/vendor/rocksdb/db/db_universal_compaction_test.cc +2227 -0
  242. package/vendor/rocksdb/db/db_wal_test.cc +2433 -0
  243. package/vendor/rocksdb/db/db_with_timestamp_basic_test.cc +4016 -0
  244. package/vendor/rocksdb/db/db_with_timestamp_compaction_test.cc +353 -0
  245. package/vendor/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
  246. package/vendor/rocksdb/db/db_with_timestamp_test_util.h +126 -0
  247. package/vendor/rocksdb/db/db_write_buffer_manager_test.cc +927 -0
  248. package/vendor/rocksdb/db/db_write_test.cc +795 -0
  249. package/vendor/rocksdb/db/dbformat.cc +213 -0
  250. package/vendor/rocksdb/db/dbformat.h +869 -0
  251. package/vendor/rocksdb/db/dbformat_test.cc +214 -0
  252. package/vendor/rocksdb/db/deletefile_test.cc +603 -0
  253. package/vendor/rocksdb/db/error_handler.cc +792 -0
  254. package/vendor/rocksdb/db/error_handler.h +124 -0
  255. package/vendor/rocksdb/db/error_handler_fs_test.cc +2862 -0
  256. package/vendor/rocksdb/db/event_helpers.cc +323 -0
  257. package/vendor/rocksdb/db/event_helpers.h +78 -0
  258. package/vendor/rocksdb/db/experimental.cc +144 -0
  259. package/vendor/rocksdb/db/external_sst_file_basic_test.cc +2084 -0
  260. package/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +1104 -0
  261. package/vendor/rocksdb/db/external_sst_file_ingestion_job.h +238 -0
  262. package/vendor/rocksdb/db/external_sst_file_test.cc +2859 -0
  263. package/vendor/rocksdb/db/fault_injection_test.cc +637 -0
  264. package/vendor/rocksdb/db/file_indexer.cc +218 -0
  265. package/vendor/rocksdb/db/file_indexer.h +140 -0
  266. package/vendor/rocksdb/db/file_indexer_test.cc +352 -0
  267. package/vendor/rocksdb/db/filename_test.cc +241 -0
  268. package/vendor/rocksdb/db/flush_job.cc +1097 -0
  269. package/vendor/rocksdb/db/flush_job.h +200 -0
  270. package/vendor/rocksdb/db/flush_job_test.cc +743 -0
  271. package/vendor/rocksdb/db/flush_scheduler.cc +86 -0
  272. package/vendor/rocksdb/db/flush_scheduler.h +55 -0
  273. package/vendor/rocksdb/db/forward_iterator.cc +1070 -0
  274. package/vendor/rocksdb/db/forward_iterator.h +166 -0
  275. package/vendor/rocksdb/db/forward_iterator_bench.cc +378 -0
  276. package/vendor/rocksdb/db/history_trimming_iterator.h +95 -0
  277. package/vendor/rocksdb/db/import_column_family_job.cc +364 -0
  278. package/vendor/rocksdb/db/import_column_family_job.h +82 -0
  279. package/vendor/rocksdb/db/import_column_family_test.cc +748 -0
  280. package/vendor/rocksdb/db/internal_stats.cc +2121 -0
  281. package/vendor/rocksdb/db/internal_stats.h +875 -0
  282. package/vendor/rocksdb/db/job_context.h +237 -0
  283. package/vendor/rocksdb/db/kv_checksum.h +484 -0
  284. package/vendor/rocksdb/db/listener_test.cc +1598 -0
  285. package/vendor/rocksdb/db/log_format.h +55 -0
  286. package/vendor/rocksdb/db/log_reader.cc +934 -0
  287. package/vendor/rocksdb/db/log_reader.h +241 -0
  288. package/vendor/rocksdb/db/log_test.cc +1216 -0
  289. package/vendor/rocksdb/db/log_writer.cc +279 -0
  290. package/vendor/rocksdb/db/log_writer.h +144 -0
  291. package/vendor/rocksdb/db/logs_with_prep_tracker.cc +67 -0
  292. package/vendor/rocksdb/db/logs_with_prep_tracker.h +62 -0
  293. package/vendor/rocksdb/db/lookup_key.h +68 -0
  294. package/vendor/rocksdb/db/malloc_stats.cc +53 -0
  295. package/vendor/rocksdb/db/malloc_stats.h +22 -0
  296. package/vendor/rocksdb/db/manual_compaction_test.cc +308 -0
  297. package/vendor/rocksdb/db/memtable.cc +1675 -0
  298. package/vendor/rocksdb/db/memtable.h +660 -0
  299. package/vendor/rocksdb/db/memtable_list.cc +987 -0
  300. package/vendor/rocksdb/db/memtable_list.h +471 -0
  301. package/vendor/rocksdb/db/memtable_list_test.cc +1037 -0
  302. package/vendor/rocksdb/db/merge_context.h +147 -0
  303. package/vendor/rocksdb/db/merge_helper.cc +606 -0
  304. package/vendor/rocksdb/db/merge_helper.h +224 -0
  305. package/vendor/rocksdb/db/merge_helper_test.cc +298 -0
  306. package/vendor/rocksdb/db/merge_operator.cc +85 -0
  307. package/vendor/rocksdb/db/merge_test.cc +621 -0
  308. package/vendor/rocksdb/db/obsolete_files_test.cc +317 -0
  309. package/vendor/rocksdb/db/options_file_test.cc +110 -0
  310. package/vendor/rocksdb/db/output_validator.cc +33 -0
  311. package/vendor/rocksdb/db/output_validator.h +48 -0
  312. package/vendor/rocksdb/db/perf_context_test.cc +1158 -0
  313. package/vendor/rocksdb/db/periodic_task_scheduler.cc +111 -0
  314. package/vendor/rocksdb/db/periodic_task_scheduler.h +108 -0
  315. package/vendor/rocksdb/db/periodic_task_scheduler_test.cc +229 -0
  316. package/vendor/rocksdb/db/pinned_iterators_manager.h +92 -0
  317. package/vendor/rocksdb/db/plain_table_db_test.cc +1348 -0
  318. package/vendor/rocksdb/db/post_memtable_callback.h +25 -0
  319. package/vendor/rocksdb/db/pre_release_callback.h +37 -0
  320. package/vendor/rocksdb/db/prefix_test.cc +894 -0
  321. package/vendor/rocksdb/db/range_del_aggregator.cc +555 -0
  322. package/vendor/rocksdb/db/range_del_aggregator.h +478 -0
  323. package/vendor/rocksdb/db/range_del_aggregator_bench.cc +280 -0
  324. package/vendor/rocksdb/db/range_del_aggregator_test.cc +713 -0
  325. package/vendor/rocksdb/db/range_tombstone_fragmenter.cc +502 -0
  326. package/vendor/rocksdb/db/range_tombstone_fragmenter.h +356 -0
  327. package/vendor/rocksdb/db/range_tombstone_fragmenter_test.cc +555 -0
  328. package/vendor/rocksdb/db/read_callback.h +54 -0
  329. package/vendor/rocksdb/db/repair.cc +839 -0
  330. package/vendor/rocksdb/db/repair_test.cc +484 -0
  331. package/vendor/rocksdb/db/seqno_time_test.cc +994 -0
  332. package/vendor/rocksdb/db/seqno_to_time_mapping.cc +341 -0
  333. package/vendor/rocksdb/db/seqno_to_time_mapping.h +189 -0
  334. package/vendor/rocksdb/db/snapshot_checker.h +58 -0
  335. package/vendor/rocksdb/db/snapshot_impl.cc +25 -0
  336. package/vendor/rocksdb/db/snapshot_impl.h +239 -0
  337. package/vendor/rocksdb/db/table_cache.cc +710 -0
  338. package/vendor/rocksdb/db/table_cache.h +283 -0
  339. package/vendor/rocksdb/db/table_cache_sync_and_async.h +130 -0
  340. package/vendor/rocksdb/db/table_properties_collector.cc +74 -0
  341. package/vendor/rocksdb/db/table_properties_collector.h +177 -0
  342. package/vendor/rocksdb/db/table_properties_collector_test.cc +512 -0
  343. package/vendor/rocksdb/db/transaction_log_impl.cc +296 -0
  344. package/vendor/rocksdb/db/transaction_log_impl.h +128 -0
  345. package/vendor/rocksdb/db/trim_history_scheduler.cc +54 -0
  346. package/vendor/rocksdb/db/trim_history_scheduler.h +46 -0
  347. package/vendor/rocksdb/db/version_builder.cc +1426 -0
  348. package/vendor/rocksdb/db/version_builder.h +93 -0
  349. package/vendor/rocksdb/db/version_builder_test.cc +1840 -0
  350. package/vendor/rocksdb/db/version_edit.cc +1059 -0
  351. package/vendor/rocksdb/db/version_edit.h +702 -0
  352. package/vendor/rocksdb/db/version_edit_handler.cc +1017 -0
  353. package/vendor/rocksdb/db/version_edit_handler.h +334 -0
  354. package/vendor/rocksdb/db/version_edit_test.cc +732 -0
  355. package/vendor/rocksdb/db/version_set.cc +7286 -0
  356. package/vendor/rocksdb/db/version_set.h +1714 -0
  357. package/vendor/rocksdb/db/version_set_sync_and_async.h +172 -0
  358. package/vendor/rocksdb/db/version_set_test.cc +3659 -0
  359. package/vendor/rocksdb/db/version_util.h +72 -0
  360. package/vendor/rocksdb/db/wal_edit.cc +211 -0
  361. package/vendor/rocksdb/db/wal_edit.h +177 -0
  362. package/vendor/rocksdb/db/wal_edit_test.cc +213 -0
  363. package/vendor/rocksdb/db/wal_manager.cc +527 -0
  364. package/vendor/rocksdb/db/wal_manager.h +136 -0
  365. package/vendor/rocksdb/db/wal_manager_test.cc +336 -0
  366. package/vendor/rocksdb/db/wide/db_wide_basic_test.cc +1042 -0
  367. package/vendor/rocksdb/db/wide/wide_column_serialization.cc +182 -0
  368. package/vendor/rocksdb/db/wide/wide_column_serialization.h +77 -0
  369. package/vendor/rocksdb/db/wide/wide_column_serialization_test.cc +338 -0
  370. package/vendor/rocksdb/db/wide/wide_columns.cc +22 -0
  371. package/vendor/rocksdb/db/write_batch.cc +3142 -0
  372. package/vendor/rocksdb/db/write_batch_base.cc +94 -0
  373. package/vendor/rocksdb/db/write_batch_internal.h +401 -0
  374. package/vendor/rocksdb/db/write_batch_test.cc +1112 -0
  375. package/vendor/rocksdb/db/write_callback.h +27 -0
  376. package/vendor/rocksdb/db/write_callback_test.cc +454 -0
  377. package/vendor/rocksdb/db/write_controller.cc +121 -0
  378. package/vendor/rocksdb/db/write_controller.h +148 -0
  379. package/vendor/rocksdb/db/write_controller_test.cc +248 -0
  380. package/vendor/rocksdb/db/write_stall_stats.cc +179 -0
  381. package/vendor/rocksdb/db/write_stall_stats.h +47 -0
  382. package/vendor/rocksdb/db/write_thread.cc +844 -0
  383. package/vendor/rocksdb/db/write_thread.h +464 -0
  384. package/vendor/rocksdb/db_stress_tool/CMakeLists.txt +18 -0
  385. package/vendor/rocksdb/db_stress_tool/batched_ops_stress.cc +593 -0
  386. package/vendor/rocksdb/db_stress_tool/cf_consistency_stress.cc +892 -0
  387. package/vendor/rocksdb/db_stress_tool/db_stress.cc +25 -0
  388. package/vendor/rocksdb/db_stress_tool/db_stress_common.cc +491 -0
  389. package/vendor/rocksdb/db_stress_tool/db_stress_common.h +674 -0
  390. package/vendor/rocksdb/db_stress_tool/db_stress_compaction_filter.h +96 -0
  391. package/vendor/rocksdb/db_stress_tool/db_stress_driver.cc +216 -0
  392. package/vendor/rocksdb/db_stress_tool/db_stress_driver.h +18 -0
  393. package/vendor/rocksdb/db_stress_tool/db_stress_env_wrapper.h +78 -0
  394. package/vendor/rocksdb/db_stress_tool/db_stress_gflags.cc +1094 -0
  395. package/vendor/rocksdb/db_stress_tool/db_stress_listener.cc +189 -0
  396. package/vendor/rocksdb/db_stress_tool/db_stress_listener.h +269 -0
  397. package/vendor/rocksdb/db_stress_tool/db_stress_shared_state.cc +17 -0
  398. package/vendor/rocksdb/db_stress_tool/db_stress_shared_state.h +437 -0
  399. package/vendor/rocksdb/db_stress_tool/db_stress_stat.cc +17 -0
  400. package/vendor/rocksdb/db_stress_tool/db_stress_stat.h +219 -0
  401. package/vendor/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +65 -0
  402. package/vendor/rocksdb/db_stress_tool/db_stress_test_base.cc +3294 -0
  403. package/vendor/rocksdb/db_stress_tool/db_stress_test_base.h +327 -0
  404. package/vendor/rocksdb/db_stress_tool/db_stress_tool.cc +371 -0
  405. package/vendor/rocksdb/db_stress_tool/expected_state.cc +780 -0
  406. package/vendor/rocksdb/db_stress_tool/expected_state.h +329 -0
  407. package/vendor/rocksdb/db_stress_tool/expected_value.cc +122 -0
  408. package/vendor/rocksdb/db_stress_tool/expected_value.h +206 -0
  409. package/vendor/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1761 -0
  410. package/vendor/rocksdb/db_stress_tool/multi_ops_txns_stress.h +446 -0
  411. package/vendor/rocksdb/db_stress_tool/no_batched_ops_stress.cc +1906 -0
  412. package/vendor/rocksdb/docs/CNAME +1 -0
  413. package/vendor/rocksdb/docs/CONTRIBUTING.md +115 -0
  414. package/vendor/rocksdb/docs/Gemfile +4 -0
  415. package/vendor/rocksdb/docs/LICENSE-DOCUMENTATION +385 -0
  416. package/vendor/rocksdb/docs/README.md +80 -0
  417. package/vendor/rocksdb/docs/TEMPLATE-INFORMATION.md +17 -0
  418. package/vendor/rocksdb/docs/_config.yml +85 -0
  419. package/vendor/rocksdb/docs/_data/authors.yml +81 -0
  420. package/vendor/rocksdb/docs/_data/features.yml +19 -0
  421. package/vendor/rocksdb/docs/_data/nav.yml +30 -0
  422. package/vendor/rocksdb/docs/_data/nav_docs.yml +3 -0
  423. package/vendor/rocksdb/docs/_data/powered_by.yml +1 -0
  424. package/vendor/rocksdb/docs/_data/powered_by_highlight.yml +1 -0
  425. package/vendor/rocksdb/docs/_data/promo.yml +6 -0
  426. package/vendor/rocksdb/docs/_docs/faq.md +48 -0
  427. package/vendor/rocksdb/docs/_docs/getting-started.md +78 -0
  428. package/vendor/rocksdb/docs/_includes/blog_pagination.html +28 -0
  429. package/vendor/rocksdb/docs/_includes/content/gridblocks.html +5 -0
  430. package/vendor/rocksdb/docs/_includes/content/items/gridblock.html +37 -0
  431. package/vendor/rocksdb/docs/_includes/doc.html +25 -0
  432. package/vendor/rocksdb/docs/_includes/doc_paging.html +0 -0
  433. package/vendor/rocksdb/docs/_includes/footer.html +34 -0
  434. package/vendor/rocksdb/docs/_includes/head.html +23 -0
  435. package/vendor/rocksdb/docs/_includes/header.html +19 -0
  436. package/vendor/rocksdb/docs/_includes/hero.html +0 -0
  437. package/vendor/rocksdb/docs/_includes/home_header.html +22 -0
  438. package/vendor/rocksdb/docs/_includes/katex_import.html +3 -0
  439. package/vendor/rocksdb/docs/_includes/katex_render.html +210 -0
  440. package/vendor/rocksdb/docs/_includes/nav/collection_nav.html +64 -0
  441. package/vendor/rocksdb/docs/_includes/nav/collection_nav_group.html +19 -0
  442. package/vendor/rocksdb/docs/_includes/nav/collection_nav_group_item.html +1 -0
  443. package/vendor/rocksdb/docs/_includes/nav/header_nav.html +30 -0
  444. package/vendor/rocksdb/docs/_includes/nav.html +37 -0
  445. package/vendor/rocksdb/docs/_includes/nav_search.html +15 -0
  446. package/vendor/rocksdb/docs/_includes/plugins/all_share.html +3 -0
  447. package/vendor/rocksdb/docs/_includes/plugins/ascii_cinema.html +2 -0
  448. package/vendor/rocksdb/docs/_includes/plugins/button.html +6 -0
  449. package/vendor/rocksdb/docs/_includes/plugins/github_star.html +4 -0
  450. package/vendor/rocksdb/docs/_includes/plugins/github_watch.html +4 -0
  451. package/vendor/rocksdb/docs/_includes/plugins/google_share.html +5 -0
  452. package/vendor/rocksdb/docs/_includes/plugins/iframe.html +6 -0
  453. package/vendor/rocksdb/docs/_includes/plugins/like_button.html +18 -0
  454. package/vendor/rocksdb/docs/_includes/plugins/plugin_row.html +5 -0
  455. package/vendor/rocksdb/docs/_includes/plugins/post_social_plugins.html +41 -0
  456. package/vendor/rocksdb/docs/_includes/plugins/slideshow.html +88 -0
  457. package/vendor/rocksdb/docs/_includes/plugins/twitter_follow.html +12 -0
  458. package/vendor/rocksdb/docs/_includes/plugins/twitter_share.html +11 -0
  459. package/vendor/rocksdb/docs/_includes/post.html +40 -0
  460. package/vendor/rocksdb/docs/_includes/powered_by.html +28 -0
  461. package/vendor/rocksdb/docs/_includes/social_plugins.html +31 -0
  462. package/vendor/rocksdb/docs/_includes/ui/button.html +1 -0
  463. package/vendor/rocksdb/docs/_layouts/basic.html +12 -0
  464. package/vendor/rocksdb/docs/_layouts/blog.html +11 -0
  465. package/vendor/rocksdb/docs/_layouts/blog_default.html +14 -0
  466. package/vendor/rocksdb/docs/_layouts/default.html +12 -0
  467. package/vendor/rocksdb/docs/_layouts/doc_default.html +14 -0
  468. package/vendor/rocksdb/docs/_layouts/doc_page.html +10 -0
  469. package/vendor/rocksdb/docs/_layouts/docs.html +5 -0
  470. package/vendor/rocksdb/docs/_layouts/home.html +26 -0
  471. package/vendor/rocksdb/docs/_layouts/page.html +3 -0
  472. package/vendor/rocksdb/docs/_layouts/plain.html +10 -0
  473. package/vendor/rocksdb/docs/_layouts/post.html +8 -0
  474. package/vendor/rocksdb/docs/_layouts/redirect.html +6 -0
  475. package/vendor/rocksdb/docs/_layouts/top-level.html +10 -0
  476. package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-backup-rocksdb.markdown +135 -0
  477. package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-persist-in-memory-rocksdb-database.markdown +54 -0
  478. package/vendor/rocksdb/docs/_posts/2014-04-02-the-1st-rocksdb-local-meetup-held-on-march-27-2014.markdown +53 -0
  479. package/vendor/rocksdb/docs/_posts/2014-04-07-rocksdb-2-8-release.markdown +40 -0
  480. package/vendor/rocksdb/docs/_posts/2014-04-21-indexing-sst-files-for-better-lookup-performance.markdown +28 -0
  481. package/vendor/rocksdb/docs/_posts/2014-05-14-lock.markdown +88 -0
  482. package/vendor/rocksdb/docs/_posts/2014-05-19-rocksdb-3-0-release.markdown +24 -0
  483. package/vendor/rocksdb/docs/_posts/2014-05-22-rocksdb-3-1-release.markdown +20 -0
  484. package/vendor/rocksdb/docs/_posts/2014-06-23-plaintable-a-new-file-format.markdown +47 -0
  485. package/vendor/rocksdb/docs/_posts/2014-06-27-avoid-expensive-locks-in-get.markdown +89 -0
  486. package/vendor/rocksdb/docs/_posts/2014-06-27-rocksdb-3-2-release.markdown +30 -0
  487. package/vendor/rocksdb/docs/_posts/2014-07-29-rocksdb-3-3-release.markdown +34 -0
  488. package/vendor/rocksdb/docs/_posts/2014-09-12-cuckoo.markdown +74 -0
  489. package/vendor/rocksdb/docs/_posts/2014-09-12-new-bloom-filter-format.markdown +52 -0
  490. package/vendor/rocksdb/docs/_posts/2014-09-15-rocksdb-3-5-release.markdown +38 -0
  491. package/vendor/rocksdb/docs/_posts/2015-01-16-migrating-from-leveldb-to-rocksdb-2.markdown +112 -0
  492. package/vendor/rocksdb/docs/_posts/2015-02-24-reading-rocksdb-options-from-a-file.markdown +41 -0
  493. package/vendor/rocksdb/docs/_posts/2015-02-27-write-batch-with-index.markdown +20 -0
  494. package/vendor/rocksdb/docs/_posts/2015-04-22-integrating-rocksdb-with-mongodb-2.markdown +16 -0
  495. package/vendor/rocksdb/docs/_posts/2015-06-12-rocksdb-in-osquery.markdown +10 -0
  496. package/vendor/rocksdb/docs/_posts/2015-07-15-rocksdb-2015-h2-roadmap.markdown +92 -0
  497. package/vendor/rocksdb/docs/_posts/2015-07-17-spatial-indexing-in-rocksdb.markdown +78 -0
  498. package/vendor/rocksdb/docs/_posts/2015-07-22-rocksdb-is-now-available-in-windows-platform.markdown +30 -0
  499. package/vendor/rocksdb/docs/_posts/2015-07-23-dynamic-level.markdown +29 -0
  500. package/vendor/rocksdb/docs/_posts/2015-10-27-getthreadlist.markdown +193 -0
  501. package/vendor/rocksdb/docs/_posts/2015-11-10-use-checkpoints-for-efficient-snapshots.markdown +45 -0
  502. package/vendor/rocksdb/docs/_posts/2015-11-16-analysis-file-read-latency-by-level.markdown +244 -0
  503. package/vendor/rocksdb/docs/_posts/2016-01-29-compaction_pri.markdown +51 -0
  504. package/vendor/rocksdb/docs/_posts/2016-02-24-rocksdb-4-2-release.markdown +41 -0
  505. package/vendor/rocksdb/docs/_posts/2016-02-25-rocksdb-ama.markdown +20 -0
  506. package/vendor/rocksdb/docs/_posts/2016-03-07-rocksdb-options-file.markdown +24 -0
  507. package/vendor/rocksdb/docs/_posts/2016-04-26-rocksdb-4-5-1-released.markdown +60 -0
  508. package/vendor/rocksdb/docs/_posts/2016-07-26-rocksdb-4-8-released.markdown +48 -0
  509. package/vendor/rocksdb/docs/_posts/2016-09-28-rocksdb-4-11-2-released.markdown +49 -0
  510. package/vendor/rocksdb/docs/_posts/2017-01-06-rocksdb-5-0-1-released.markdown +26 -0
  511. package/vendor/rocksdb/docs/_posts/2017-02-07-rocksdb-5-1-2-released.markdown +15 -0
  512. package/vendor/rocksdb/docs/_posts/2017-02-17-bulkoad-ingest-sst-file.markdown +50 -0
  513. package/vendor/rocksdb/docs/_posts/2017-03-02-rocksdb-5-2-1-released.markdown +22 -0
  514. package/vendor/rocksdb/docs/_posts/2017-05-12-partitioned-index-filter.markdown +34 -0
  515. package/vendor/rocksdb/docs/_posts/2017-05-14-core-local-stats.markdown +106 -0
  516. package/vendor/rocksdb/docs/_posts/2017-05-26-rocksdb-5-4-5-released.markdown +39 -0
  517. package/vendor/rocksdb/docs/_posts/2017-06-26-17-level-based-changes.markdown +60 -0
  518. package/vendor/rocksdb/docs/_posts/2017-06-29-rocksdb-5-5-1-released.markdown +22 -0
  519. package/vendor/rocksdb/docs/_posts/2017-07-25-rocksdb-5-6-1-released.markdown +22 -0
  520. package/vendor/rocksdb/docs/_posts/2017-08-24-pinnableslice.markdown +37 -0
  521. package/vendor/rocksdb/docs/_posts/2017-08-25-flushwal.markdown +26 -0
  522. package/vendor/rocksdb/docs/_posts/2017-09-28-rocksdb-5-8-released.markdown +25 -0
  523. package/vendor/rocksdb/docs/_posts/2017-12-18-17-auto-tuned-rate-limiter.markdown +28 -0
  524. package/vendor/rocksdb/docs/_posts/2017-12-19-write-prepared-txn.markdown +41 -0
  525. package/vendor/rocksdb/docs/_posts/2018-02-05-rocksdb-5-10-2-released.markdown +22 -0
  526. package/vendor/rocksdb/docs/_posts/2018-08-01-rocksdb-tuning-advisor.markdown +58 -0
  527. package/vendor/rocksdb/docs/_posts/2018-08-23-data-block-hash-index.markdown +118 -0
  528. package/vendor/rocksdb/docs/_posts/2018-11-21-delete-range.markdown +292 -0
  529. package/vendor/rocksdb/docs/_posts/2019-03-08-format-version-4.markdown +36 -0
  530. package/vendor/rocksdb/docs/_posts/2019-08-15-unordered-write.markdown +56 -0
  531. package/vendor/rocksdb/docs/_posts/2021-04-12-universal-improvements.markdown +46 -0
  532. package/vendor/rocksdb/docs/_posts/2021-05-26-integrated-blob-db.markdown +101 -0
  533. package/vendor/rocksdb/docs/_posts/2021-05-26-online-validation.markdown +17 -0
  534. package/vendor/rocksdb/docs/_posts/2021-05-27-rocksdb-secondary-cache.markdown +195 -0
  535. package/vendor/rocksdb/docs/_posts/2021-05-31-dictionary-compression.markdown +157 -0
  536. package/vendor/rocksdb/docs/_posts/2021-12-29-ribbon-filter.markdown +281 -0
  537. package/vendor/rocksdb/docs/_posts/2022-07-18-per-key-value-checksum.markdown +142 -0
  538. package/vendor/rocksdb/docs/_posts/2022-10-05-lost-buffered-write-recovery.markdown +123 -0
  539. package/vendor/rocksdb/docs/_posts/2022-10-07-asynchronous-io-in-rocksdb.markdown +133 -0
  540. package/vendor/rocksdb/docs/_posts/2022-10-31-align-compaction-output-file.markdown +107 -0
  541. package/vendor/rocksdb/docs/_posts/2022-11-09-time-aware-tiered-storage.markdown +121 -0
  542. package/vendor/rocksdb/docs/_sass/_base.scss +492 -0
  543. package/vendor/rocksdb/docs/_sass/_blog.scss +47 -0
  544. package/vendor/rocksdb/docs/_sass/_buttons.scss +47 -0
  545. package/vendor/rocksdb/docs/_sass/_footer.scss +82 -0
  546. package/vendor/rocksdb/docs/_sass/_gridBlock.scss +115 -0
  547. package/vendor/rocksdb/docs/_sass/_header.scss +139 -0
  548. package/vendor/rocksdb/docs/_sass/_poweredby.scss +69 -0
  549. package/vendor/rocksdb/docs/_sass/_promo.scss +55 -0
  550. package/vendor/rocksdb/docs/_sass/_react_docs_nav.scss +332 -0
  551. package/vendor/rocksdb/docs/_sass/_react_header_nav.scss +141 -0
  552. package/vendor/rocksdb/docs/_sass/_reset.scss +43 -0
  553. package/vendor/rocksdb/docs/_sass/_search.scss +142 -0
  554. package/vendor/rocksdb/docs/_sass/_slideshow.scss +48 -0
  555. package/vendor/rocksdb/docs/_sass/_syntax-highlighting.scss +129 -0
  556. package/vendor/rocksdb/docs/_sass/_tables.scss +47 -0
  557. package/vendor/rocksdb/docs/_top-level/support.md +22 -0
  558. package/vendor/rocksdb/docs/blog/all.html +20 -0
  559. package/vendor/rocksdb/docs/blog/index.html +12 -0
  560. package/vendor/rocksdb/docs/css/main.scss +159 -0
  561. package/vendor/rocksdb/docs/doc-type-examples/2016-04-07-blog-post-example.md +21 -0
  562. package/vendor/rocksdb/docs/doc-type-examples/docs-hello-world.md +12 -0
  563. package/vendor/rocksdb/docs/doc-type-examples/top-level-example.md +8 -0
  564. package/vendor/rocksdb/docs/docs/index.html +6 -0
  565. package/vendor/rocksdb/docs/feed.xml +30 -0
  566. package/vendor/rocksdb/docs/index.md +9 -0
  567. package/vendor/rocksdb/docs/static/favicon.png +0 -0
  568. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff +0 -0
  569. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff2 +0 -0
  570. package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff +0 -0
  571. package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff2 +0 -0
  572. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff +0 -0
  573. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff2 +0 -0
  574. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff +0 -0
  575. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff2 +0 -0
  576. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff +0 -0
  577. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff2 +0 -0
  578. package/vendor/rocksdb/docs/static/images/Resize-of-20140327_200754-300x225.jpg +0 -0
  579. package/vendor/rocksdb/docs/static/images/align-compaction-output/compaction_output_file_size_compare.png +0 -0
  580. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_align.png +0 -0
  581. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_normal.png +0 -0
  582. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_trival_move.png +0 -0
  583. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_size_compare.png +0 -0
  584. package/vendor/rocksdb/docs/static/images/align-compaction-output/write_amp_compare.png +0 -0
  585. package/vendor/rocksdb/docs/static/images/asynchronous-io/mget_async.png +0 -0
  586. package/vendor/rocksdb/docs/static/images/asynchronous-io/scan_async.png +0 -0
  587. package/vendor/rocksdb/docs/static/images/binaryseek.png +0 -0
  588. package/vendor/rocksdb/docs/static/images/bloom_fp_vs_bpk.png +0 -0
  589. package/vendor/rocksdb/docs/static/images/compaction/full-range.png +0 -0
  590. package/vendor/rocksdb/docs/static/images/compaction/l0-l1-contend.png +0 -0
  591. package/vendor/rocksdb/docs/static/images/compaction/l1-l2-contend.png +0 -0
  592. package/vendor/rocksdb/docs/static/images/compaction/part-range-old.png +0 -0
  593. package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-binary-seek.png +0 -0
  594. package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-hash-index.png +0 -0
  595. package/vendor/rocksdb/docs/static/images/data-block-hash-index/hash-index-data-structure.png +0 -0
  596. package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-cache-miss.png +0 -0
  597. package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-throughput.png +0 -0
  598. package/vendor/rocksdb/docs/static/images/delrange/delrange_collapsed.png +0 -0
  599. package/vendor/rocksdb/docs/static/images/delrange/delrange_key_schema.png +0 -0
  600. package/vendor/rocksdb/docs/static/images/delrange/delrange_sst_blocks.png +0 -0
  601. package/vendor/rocksdb/docs/static/images/delrange/delrange_uncollapsed.png +0 -0
  602. package/vendor/rocksdb/docs/static/images/delrange/delrange_write_path.png +0 -0
  603. package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_raw_sampled.png +0 -0
  604. package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_sst_blocks.png +0 -0
  605. package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_zstd_trained.png +0 -0
  606. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Legacy_Vs_Integrated.png +0 -0
  607. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_RW_RO_Perf.png +0 -0
  608. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Amp.png +0 -0
  609. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Perf.png +0 -0
  610. package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-entry.png +0 -0
  611. package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-write.png +0 -0
  612. package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Memtable.png +0 -0
  613. package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch-to-Memtable.png +0 -0
  614. package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch.png +0 -0
  615. package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-fragment.png +0 -0
  616. package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-read.png +0 -0
  617. package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-write.png +0 -0
  618. package/vendor/rocksdb/docs/static/images/kv-checksum/Write-batch.png +0 -0
  619. package/vendor/rocksdb/docs/static/images/kv-checksum/Writebatch-write.png +0 -0
  620. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/angry-cat.png +0 -0
  621. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/basic-setup.png +0 -0
  622. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/happy-cat.png +0 -0
  623. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/replay-extension.png +0 -0
  624. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/test-fs-writable-file.png +0 -0
  625. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/trace-extension.png +0 -0
  626. package/vendor/rocksdb/docs/static/images/pcache-blockindex.jpg +0 -0
  627. package/vendor/rocksdb/docs/static/images/pcache-fileindex.jpg +0 -0
  628. package/vendor/rocksdb/docs/static/images/pcache-filelayout.jpg +0 -0
  629. package/vendor/rocksdb/docs/static/images/pcache-readiopath.jpg +0 -0
  630. package/vendor/rocksdb/docs/static/images/pcache-tieredstorage.jpg +0 -0
  631. package/vendor/rocksdb/docs/static/images/pcache-writeiopath.jpg +0 -0
  632. package/vendor/rocksdb/docs/static/images/promo-adapt.svg +8 -0
  633. package/vendor/rocksdb/docs/static/images/promo-flash.svg +28 -0
  634. package/vendor/rocksdb/docs/static/images/promo-operations.svg +6 -0
  635. package/vendor/rocksdb/docs/static/images/promo-performance.svg +134 -0
  636. package/vendor/rocksdb/docs/static/images/rate-limiter/auto-tuned-write-KBps-series.png +0 -0
  637. package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-cdf.png +0 -0
  638. package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-series.png +0 -0
  639. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_hit_rate.png +0 -0
  640. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_throughput.png +0 -0
  641. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/arch_diagram.png +0 -0
  642. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/insert_flow.png +0 -0
  643. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/lookup_flow.png +0 -0
  644. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/compaction_moving_up_conflict.png +0 -0
  645. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/per_key_placement_compaction.png +0 -0
  646. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_design.png +0 -0
  647. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_overview.png +0 -0
  648. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_problem.png +0 -0
  649. package/vendor/rocksdb/docs/static/images/tree_example1.png +0 -0
  650. package/vendor/rocksdb/docs/static/logo.svg +76 -0
  651. package/vendor/rocksdb/docs/static/og_image.png +0 -0
  652. package/vendor/rocksdb/env/composite_env.cc +534 -0
  653. package/vendor/rocksdb/env/composite_env_wrapper.h +378 -0
  654. package/vendor/rocksdb/env/emulated_clock.h +114 -0
  655. package/vendor/rocksdb/env/env.cc +1233 -0
  656. package/vendor/rocksdb/env/env_basic_test.cc +397 -0
  657. package/vendor/rocksdb/env/env_chroot.cc +148 -0
  658. package/vendor/rocksdb/env/env_chroot.h +55 -0
  659. package/vendor/rocksdb/env/env_encryption.cc +1346 -0
  660. package/vendor/rocksdb/env/env_encryption_ctr.h +114 -0
  661. package/vendor/rocksdb/env/env_posix.cc +524 -0
  662. package/vendor/rocksdb/env/env_test.cc +3577 -0
  663. package/vendor/rocksdb/env/file_system.cc +277 -0
  664. package/vendor/rocksdb/env/file_system_tracer.cc +564 -0
  665. package/vendor/rocksdb/env/file_system_tracer.h +461 -0
  666. package/vendor/rocksdb/env/fs_posix.cc +1284 -0
  667. package/vendor/rocksdb/env/fs_readonly.h +105 -0
  668. package/vendor/rocksdb/env/fs_remap.cc +341 -0
  669. package/vendor/rocksdb/env/fs_remap.h +137 -0
  670. package/vendor/rocksdb/env/io_posix.cc +1733 -0
  671. package/vendor/rocksdb/env/io_posix.h +523 -0
  672. package/vendor/rocksdb/env/io_posix_test.cc +141 -0
  673. package/vendor/rocksdb/env/mock_env.cc +1058 -0
  674. package/vendor/rocksdb/env/mock_env.h +144 -0
  675. package/vendor/rocksdb/env/mock_env_test.cc +84 -0
  676. package/vendor/rocksdb/env/unique_id_gen.cc +164 -0
  677. package/vendor/rocksdb/env/unique_id_gen.h +85 -0
  678. package/vendor/rocksdb/examples/CMakeLists.txt +45 -0
  679. package/vendor/rocksdb/examples/Makefile +58 -0
  680. package/vendor/rocksdb/examples/README.md +2 -0
  681. package/vendor/rocksdb/examples/c_simple_example.c +96 -0
  682. package/vendor/rocksdb/examples/column_families_example.cc +88 -0
  683. package/vendor/rocksdb/examples/compact_files_example.cc +177 -0
  684. package/vendor/rocksdb/examples/compaction_filter_example.cc +96 -0
  685. package/vendor/rocksdb/examples/multi_processes_example.cc +393 -0
  686. package/vendor/rocksdb/examples/optimistic_transaction_example.cc +190 -0
  687. package/vendor/rocksdb/examples/options_file_example.cc +132 -0
  688. package/vendor/rocksdb/examples/rocksdb_backup_restore_example.cc +99 -0
  689. package/vendor/rocksdb/examples/rocksdb_option_file_example.ini +142 -0
  690. package/vendor/rocksdb/examples/simple_example.cc +93 -0
  691. package/vendor/rocksdb/examples/transaction_example.cc +196 -0
  692. package/vendor/rocksdb/file/delete_scheduler.cc +409 -0
  693. package/vendor/rocksdb/file/delete_scheduler.h +147 -0
  694. package/vendor/rocksdb/file/delete_scheduler_test.cc +717 -0
  695. package/vendor/rocksdb/file/file_prefetch_buffer.cc +955 -0
  696. package/vendor/rocksdb/file/file_prefetch_buffer.h +471 -0
  697. package/vendor/rocksdb/file/file_util.cc +277 -0
  698. package/vendor/rocksdb/file/file_util.h +91 -0
  699. package/vendor/rocksdb/file/filename.cc +523 -0
  700. package/vendor/rocksdb/file/filename.h +188 -0
  701. package/vendor/rocksdb/file/line_file_reader.cc +73 -0
  702. package/vendor/rocksdb/file/line_file_reader.h +60 -0
  703. package/vendor/rocksdb/file/prefetch_test.cc +2374 -0
  704. package/vendor/rocksdb/file/random_access_file_reader.cc +599 -0
  705. package/vendor/rocksdb/file/random_access_file_reader.h +210 -0
  706. package/vendor/rocksdb/file/random_access_file_reader_test.cc +479 -0
  707. package/vendor/rocksdb/file/read_write_util.cc +33 -0
  708. package/vendor/rocksdb/file/read_write_util.h +31 -0
  709. package/vendor/rocksdb/file/readahead_file_info.h +33 -0
  710. package/vendor/rocksdb/file/readahead_raf.cc +169 -0
  711. package/vendor/rocksdb/file/readahead_raf.h +29 -0
  712. package/vendor/rocksdb/file/sequence_file_reader.cc +320 -0
  713. package/vendor/rocksdb/file/sequence_file_reader.h +119 -0
  714. package/vendor/rocksdb/file/sst_file_manager_impl.cc +507 -0
  715. package/vendor/rocksdb/file/sst_file_manager_impl.h +193 -0
  716. package/vendor/rocksdb/file/writable_file_writer.cc +989 -0
  717. package/vendor/rocksdb/file/writable_file_writer.h +320 -0
  718. package/vendor/rocksdb/fuzz/Makefile +67 -0
  719. package/vendor/rocksdb/fuzz/README.md +165 -0
  720. package/vendor/rocksdb/fuzz/db_fuzzer.cc +172 -0
  721. package/vendor/rocksdb/fuzz/db_map_fuzzer.cc +107 -0
  722. package/vendor/rocksdb/fuzz/proto/db_operation.proto +28 -0
  723. package/vendor/rocksdb/fuzz/sst_file_writer_fuzzer.cc +210 -0
  724. package/vendor/rocksdb/fuzz/util.h +29 -0
  725. package/vendor/rocksdb/include/rocksdb/advanced_cache.h +623 -0
  726. package/vendor/rocksdb/include/rocksdb/advanced_options.h +1177 -0
  727. package/vendor/rocksdb/include/rocksdb/block_cache_trace_writer.h +149 -0
  728. package/vendor/rocksdb/include/rocksdb/c.h +2864 -0
  729. package/vendor/rocksdb/include/rocksdb/cache.h +442 -0
  730. package/vendor/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
  731. package/vendor/rocksdb/include/rocksdb/cleanable.h +128 -0
  732. package/vendor/rocksdb/include/rocksdb/compaction_filter.h +363 -0
  733. package/vendor/rocksdb/include/rocksdb/compaction_job_stats.h +109 -0
  734. package/vendor/rocksdb/include/rocksdb/comparator.h +164 -0
  735. package/vendor/rocksdb/include/rocksdb/compression_type.h +40 -0
  736. package/vendor/rocksdb/include/rocksdb/concurrent_task_limiter.h +51 -0
  737. package/vendor/rocksdb/include/rocksdb/configurable.h +390 -0
  738. package/vendor/rocksdb/include/rocksdb/convenience.h +466 -0
  739. package/vendor/rocksdb/include/rocksdb/customizable.h +229 -0
  740. package/vendor/rocksdb/include/rocksdb/data_structure.h +186 -0
  741. package/vendor/rocksdb/include/rocksdb/db.h +1980 -0
  742. package/vendor/rocksdb/include/rocksdb/db_bench_tool.h +11 -0
  743. package/vendor/rocksdb/include/rocksdb/db_dump_tool.h +43 -0
  744. package/vendor/rocksdb/include/rocksdb/db_stress_tool.h +11 -0
  745. package/vendor/rocksdb/include/rocksdb/env.h +1882 -0
  746. package/vendor/rocksdb/include/rocksdb/env_encryption.h +463 -0
  747. package/vendor/rocksdb/include/rocksdb/experimental.h +56 -0
  748. package/vendor/rocksdb/include/rocksdb/file_checksum.h +146 -0
  749. package/vendor/rocksdb/include/rocksdb/file_system.h +1849 -0
  750. package/vendor/rocksdb/include/rocksdb/filter_policy.h +206 -0
  751. package/vendor/rocksdb/include/rocksdb/flush_block_policy.h +75 -0
  752. package/vendor/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
  753. package/vendor/rocksdb/include/rocksdb/io_status.h +244 -0
  754. package/vendor/rocksdb/include/rocksdb/iostats_context.h +98 -0
  755. package/vendor/rocksdb/include/rocksdb/iterator.h +144 -0
  756. package/vendor/rocksdb/include/rocksdb/ldb_tool.h +42 -0
  757. package/vendor/rocksdb/include/rocksdb/listener.h +840 -0
  758. package/vendor/rocksdb/include/rocksdb/memory_allocator.h +87 -0
  759. package/vendor/rocksdb/include/rocksdb/memtablerep.h +421 -0
  760. package/vendor/rocksdb/include/rocksdb/merge_operator.h +286 -0
  761. package/vendor/rocksdb/include/rocksdb/metadata.h +258 -0
  762. package/vendor/rocksdb/include/rocksdb/options.h +2083 -0
  763. package/vendor/rocksdb/include/rocksdb/perf_context.h +314 -0
  764. package/vendor/rocksdb/include/rocksdb/perf_level.h +36 -0
  765. package/vendor/rocksdb/include/rocksdb/persistent_cache.h +74 -0
  766. package/vendor/rocksdb/include/rocksdb/port_defs.h +22 -0
  767. package/vendor/rocksdb/include/rocksdb/rate_limiter.h +159 -0
  768. package/vendor/rocksdb/include/rocksdb/rocksdb_namespace.h +16 -0
  769. package/vendor/rocksdb/include/rocksdb/secondary_cache.h +139 -0
  770. package/vendor/rocksdb/include/rocksdb/slice.h +264 -0
  771. package/vendor/rocksdb/include/rocksdb/slice_transform.h +135 -0
  772. package/vendor/rocksdb/include/rocksdb/snapshot.h +53 -0
  773. package/vendor/rocksdb/include/rocksdb/sst_dump_tool.h +17 -0
  774. package/vendor/rocksdb/include/rocksdb/sst_file_manager.h +136 -0
  775. package/vendor/rocksdb/include/rocksdb/sst_file_reader.h +45 -0
  776. package/vendor/rocksdb/include/rocksdb/sst_file_writer.h +189 -0
  777. package/vendor/rocksdb/include/rocksdb/sst_partitioner.h +142 -0
  778. package/vendor/rocksdb/include/rocksdb/statistics.h +757 -0
  779. package/vendor/rocksdb/include/rocksdb/stats_history.h +70 -0
  780. package/vendor/rocksdb/include/rocksdb/status.h +574 -0
  781. package/vendor/rocksdb/include/rocksdb/system_clock.h +114 -0
  782. package/vendor/rocksdb/include/rocksdb/table.h +927 -0
  783. package/vendor/rocksdb/include/rocksdb/table_properties.h +332 -0
  784. package/vendor/rocksdb/include/rocksdb/table_reader_caller.h +41 -0
  785. package/vendor/rocksdb/include/rocksdb/thread_status.h +190 -0
  786. package/vendor/rocksdb/include/rocksdb/threadpool.h +67 -0
  787. package/vendor/rocksdb/include/rocksdb/trace_reader_writer.h +52 -0
  788. package/vendor/rocksdb/include/rocksdb/trace_record.h +248 -0
  789. package/vendor/rocksdb/include/rocksdb/trace_record_result.h +187 -0
  790. package/vendor/rocksdb/include/rocksdb/transaction_log.h +122 -0
  791. package/vendor/rocksdb/include/rocksdb/types.h +94 -0
  792. package/vendor/rocksdb/include/rocksdb/unique_id.h +55 -0
  793. package/vendor/rocksdb/include/rocksdb/universal_compaction.h +96 -0
  794. package/vendor/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
  795. package/vendor/rocksdb/include/rocksdb/utilities/backup_engine.h +689 -0
  796. package/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +140 -0
  797. package/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +63 -0
  798. package/vendor/rocksdb/include/rocksdb/utilities/convenience.h +10 -0
  799. package/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +322 -0
  800. package/vendor/rocksdb/include/rocksdb/utilities/db_ttl.h +70 -0
  801. package/vendor/rocksdb/include/rocksdb/utilities/debug.h +46 -0
  802. package/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +179 -0
  803. package/vendor/rocksdb/include/rocksdb/utilities/info_log_finder.h +19 -0
  804. package/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +316 -0
  805. package/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +75 -0
  806. package/vendor/rocksdb/include/rocksdb/utilities/leveldb_options.h +145 -0
  807. package/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +43 -0
  808. package/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +55 -0
  809. package/vendor/rocksdb/include/rocksdb/utilities/memory_util.h +48 -0
  810. package/vendor/rocksdb/include/rocksdb/utilities/object_registry.h +583 -0
  811. package/vendor/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +98 -0
  812. package/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +24 -0
  813. package/vendor/rocksdb/include/rocksdb/utilities/options_type.h +1221 -0
  814. package/vendor/rocksdb/include/rocksdb/utilities/options_util.h +105 -0
  815. package/vendor/rocksdb/include/rocksdb/utilities/replayer.h +85 -0
  816. package/vendor/rocksdb/include/rocksdb/utilities/sim_cache.h +93 -0
  817. package/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +587 -0
  818. package/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +88 -0
  819. package/vendor/rocksdb/include/rocksdb/utilities/transaction.h +683 -0
  820. package/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +506 -0
  821. package/vendor/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +89 -0
  822. package/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +307 -0
  823. package/vendor/rocksdb/include/rocksdb/version.h +43 -0
  824. package/vendor/rocksdb/include/rocksdb/wal_filter.h +111 -0
  825. package/vendor/rocksdb/include/rocksdb/wide_columns.h +210 -0
  826. package/vendor/rocksdb/include/rocksdb/write_batch.h +494 -0
  827. package/vendor/rocksdb/include/rocksdb/write_batch_base.h +144 -0
  828. package/vendor/rocksdb/include/rocksdb/write_buffer_manager.h +183 -0
  829. package/vendor/rocksdb/issue_template.md +7 -0
  830. package/vendor/rocksdb/java/CMakeLists.txt +549 -0
  831. package/vendor/rocksdb/java/GetBenchmarks.md +161 -0
  832. package/vendor/rocksdb/java/HISTORY-JAVA.md +86 -0
  833. package/vendor/rocksdb/java/Makefile +453 -0
  834. package/vendor/rocksdb/java/RELEASE.md +59 -0
  835. package/vendor/rocksdb/java/benchmark/src/main/java/org/rocksdb/benchmark/DbBenchmark.java +1640 -0
  836. package/vendor/rocksdb/java/crossbuild/Vagrantfile +51 -0
  837. package/vendor/rocksdb/java/crossbuild/build-linux-alpine.sh +70 -0
  838. package/vendor/rocksdb/java/crossbuild/build-linux-centos.sh +38 -0
  839. package/vendor/rocksdb/java/crossbuild/build-linux.sh +15 -0
  840. package/vendor/rocksdb/java/crossbuild/docker-build-linux-alpine.sh +17 -0
  841. package/vendor/rocksdb/java/crossbuild/docker-build-linux-centos.sh +38 -0
  842. package/vendor/rocksdb/java/jdb_bench.sh +13 -0
  843. package/vendor/rocksdb/java/jmh/LICENSE-HEADER.txt +5 -0
  844. package/vendor/rocksdb/java/jmh/README.md +24 -0
  845. package/vendor/rocksdb/java/jmh/pom.xml +138 -0
  846. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/ComparatorBenchmarks.java +139 -0
  847. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/GetBenchmarks.java +215 -0
  848. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/MultiGetBenchmarks.java +214 -0
  849. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/PutBenchmarks.java +112 -0
  850. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/FileUtils.java +59 -0
  851. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/KVUtils.java +72 -0
  852. package/vendor/rocksdb/java/pom.xml.template +178 -0
  853. package/vendor/rocksdb/java/rocksjni/backup_engine_options.cc +365 -0
  854. package/vendor/rocksdb/java/rocksjni/backupenginejni.cc +279 -0
  855. package/vendor/rocksdb/java/rocksjni/cache.cc +34 -0
  856. package/vendor/rocksdb/java/rocksjni/cassandra_compactionfilterjni.cc +25 -0
  857. package/vendor/rocksdb/java/rocksjni/cassandra_value_operator.cc +50 -0
  858. package/vendor/rocksdb/java/rocksjni/checkpoint.cc +71 -0
  859. package/vendor/rocksdb/java/rocksjni/clock_cache.cc +42 -0
  860. package/vendor/rocksdb/java/rocksjni/columnfamilyhandle.cc +72 -0
  861. package/vendor/rocksdb/java/rocksjni/compact_range_options.cc +222 -0
  862. package/vendor/rocksdb/java/rocksjni/compaction_filter.cc +29 -0
  863. package/vendor/rocksdb/java/rocksjni/compaction_filter_factory.cc +42 -0
  864. package/vendor/rocksdb/java/rocksjni/compaction_filter_factory_jnicallback.cc +79 -0
  865. package/vendor/rocksdb/java/rocksjni/compaction_filter_factory_jnicallback.h +37 -0
  866. package/vendor/rocksdb/java/rocksjni/compaction_job_info.cc +230 -0
  867. package/vendor/rocksdb/java/rocksjni/compaction_job_stats.cc +345 -0
  868. package/vendor/rocksdb/java/rocksjni/compaction_options.cc +112 -0
  869. package/vendor/rocksdb/java/rocksjni/compaction_options_fifo.cc +83 -0
  870. package/vendor/rocksdb/java/rocksjni/compaction_options_universal.cc +209 -0
  871. package/vendor/rocksdb/java/rocksjni/comparator.cc +60 -0
  872. package/vendor/rocksdb/java/rocksjni/comparatorjnicallback.cc +647 -0
  873. package/vendor/rocksdb/java/rocksjni/comparatorjnicallback.h +137 -0
  874. package/vendor/rocksdb/java/rocksjni/compression_options.cc +214 -0
  875. package/vendor/rocksdb/java/rocksjni/concurrent_task_limiter.cc +97 -0
  876. package/vendor/rocksdb/java/rocksjni/config_options.cc +103 -0
  877. package/vendor/rocksdb/java/rocksjni/cplusplus_to_java_convert.h +37 -0
  878. package/vendor/rocksdb/java/rocksjni/env.cc +205 -0
  879. package/vendor/rocksdb/java/rocksjni/env_options.cc +305 -0
  880. package/vendor/rocksdb/java/rocksjni/event_listener.cc +44 -0
  881. package/vendor/rocksdb/java/rocksjni/event_listener_jnicallback.cc +502 -0
  882. package/vendor/rocksdb/java/rocksjni/event_listener_jnicallback.h +122 -0
  883. package/vendor/rocksdb/java/rocksjni/filter.cc +46 -0
  884. package/vendor/rocksdb/java/rocksjni/ingest_external_file_options.cc +199 -0
  885. package/vendor/rocksdb/java/rocksjni/iterator.cc +340 -0
  886. package/vendor/rocksdb/java/rocksjni/jnicallback.cc +54 -0
  887. package/vendor/rocksdb/java/rocksjni/jnicallback.h +32 -0
  888. package/vendor/rocksdb/java/rocksjni/loggerjnicallback.cc +299 -0
  889. package/vendor/rocksdb/java/rocksjni/loggerjnicallback.h +51 -0
  890. package/vendor/rocksdb/java/rocksjni/lru_cache.cc +49 -0
  891. package/vendor/rocksdb/java/rocksjni/memory_util.cc +100 -0
  892. package/vendor/rocksdb/java/rocksjni/memtablejni.cc +94 -0
  893. package/vendor/rocksdb/java/rocksjni/merge_operator.cc +98 -0
  894. package/vendor/rocksdb/java/rocksjni/native_comparator_wrapper_test.cc +45 -0
  895. package/vendor/rocksdb/java/rocksjni/optimistic_transaction_db.cc +270 -0
  896. package/vendor/rocksdb/java/rocksjni/optimistic_transaction_options.cc +78 -0
  897. package/vendor/rocksdb/java/rocksjni/options.cc +8695 -0
  898. package/vendor/rocksdb/java/rocksjni/options_util.cc +139 -0
  899. package/vendor/rocksdb/java/rocksjni/persistent_cache.cc +60 -0
  900. package/vendor/rocksdb/java/rocksjni/portal.h +8706 -0
  901. package/vendor/rocksdb/java/rocksjni/ratelimiterjni.cc +128 -0
  902. package/vendor/rocksdb/java/rocksjni/remove_emptyvalue_compactionfilterjni.cc +24 -0
  903. package/vendor/rocksdb/java/rocksjni/restorejni.cc +42 -0
  904. package/vendor/rocksdb/java/rocksjni/rocks_callback_object.cc +30 -0
  905. package/vendor/rocksdb/java/rocksjni/rocksdb_exception_test.cc +81 -0
  906. package/vendor/rocksdb/java/rocksjni/rocksjni.cc +3957 -0
  907. package/vendor/rocksdb/java/rocksjni/slice.cc +374 -0
  908. package/vendor/rocksdb/java/rocksjni/snapshot.cc +27 -0
  909. package/vendor/rocksdb/java/rocksjni/sst_file_manager.cc +250 -0
  910. package/vendor/rocksdb/java/rocksjni/sst_file_reader_iterator.cc +373 -0
  911. package/vendor/rocksdb/java/rocksjni/sst_file_readerjni.cc +118 -0
  912. package/vendor/rocksdb/java/rocksjni/sst_file_writerjni.cc +310 -0
  913. package/vendor/rocksdb/java/rocksjni/sst_partitioner.cc +43 -0
  914. package/vendor/rocksdb/java/rocksjni/statistics.cc +268 -0
  915. package/vendor/rocksdb/java/rocksjni/statisticsjni.cc +31 -0
  916. package/vendor/rocksdb/java/rocksjni/statisticsjni.h +34 -0
  917. package/vendor/rocksdb/java/rocksjni/table.cc +145 -0
  918. package/vendor/rocksdb/java/rocksjni/table_filter.cc +27 -0
  919. package/vendor/rocksdb/java/rocksjni/table_filter_jnicallback.cc +66 -0
  920. package/vendor/rocksdb/java/rocksjni/table_filter_jnicallback.h +36 -0
  921. package/vendor/rocksdb/java/rocksjni/testable_event_listener.cc +219 -0
  922. package/vendor/rocksdb/java/rocksjni/thread_status.cc +125 -0
  923. package/vendor/rocksdb/java/rocksjni/trace_writer.cc +24 -0
  924. package/vendor/rocksdb/java/rocksjni/trace_writer_jnicallback.cc +118 -0
  925. package/vendor/rocksdb/java/rocksjni/trace_writer_jnicallback.h +36 -0
  926. package/vendor/rocksdb/java/rocksjni/transaction.cc +1655 -0
  927. package/vendor/rocksdb/java/rocksjni/transaction_db.cc +451 -0
  928. package/vendor/rocksdb/java/rocksjni/transaction_db_options.cc +169 -0
  929. package/vendor/rocksdb/java/rocksjni/transaction_log.cc +80 -0
  930. package/vendor/rocksdb/java/rocksjni/transaction_notifier.cc +44 -0
  931. package/vendor/rocksdb/java/rocksjni/transaction_notifier_jnicallback.cc +42 -0
  932. package/vendor/rocksdb/java/rocksjni/transaction_notifier_jnicallback.h +42 -0
  933. package/vendor/rocksdb/java/rocksjni/transaction_options.cc +191 -0
  934. package/vendor/rocksdb/java/rocksjni/ttl.cc +212 -0
  935. package/vendor/rocksdb/java/rocksjni/wal_filter.cc +24 -0
  936. package/vendor/rocksdb/java/rocksjni/wal_filter_jnicallback.cc +139 -0
  937. package/vendor/rocksdb/java/rocksjni/wal_filter_jnicallback.h +42 -0
  938. package/vendor/rocksdb/java/rocksjni/write_batch.cc +676 -0
  939. package/vendor/rocksdb/java/rocksjni/write_batch_test.cc +199 -0
  940. package/vendor/rocksdb/java/rocksjni/write_batch_with_index.cc +953 -0
  941. package/vendor/rocksdb/java/rocksjni/write_buffer_manager.cc +47 -0
  942. package/vendor/rocksdb/java/rocksjni/writebatchhandlerjnicallback.cc +519 -0
  943. package/vendor/rocksdb/java/rocksjni/writebatchhandlerjnicallback.h +92 -0
  944. package/vendor/rocksdb/java/samples/src/main/java/OptimisticTransactionSample.java +184 -0
  945. package/vendor/rocksdb/java/samples/src/main/java/RocksDBColumnFamilySample.java +78 -0
  946. package/vendor/rocksdb/java/samples/src/main/java/RocksDBSample.java +295 -0
  947. package/vendor/rocksdb/java/samples/src/main/java/TransactionSample.java +183 -0
  948. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilter.java +59 -0
  949. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilterFactory.java +77 -0
  950. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparator.java +124 -0
  951. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparatorJniBridge.java +119 -0
  952. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractEventListener.java +334 -0
  953. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractImmutableNativeReference.java +65 -0
  954. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractMutableOptions.java +368 -0
  955. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractNativeReference.java +49 -0
  956. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractRocksIterator.java +146 -0
  957. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractSlice.java +191 -0
  958. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTableFilter.java +20 -0
  959. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTraceWriter.java +70 -0
  960. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTransactionNotifier.java +54 -0
  961. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWalFilter.java +49 -0
  962. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWriteBatch.java +203 -0
  963. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AccessHint.java +53 -0
  964. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedColumnFamilyOptionsInterface.java +463 -0
  965. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedMutableColumnFamilyOptionsInterface.java +830 -0
  966. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackgroundErrorReason.java +46 -0
  967. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngine.java +259 -0
  968. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngineOptions.java +458 -0
  969. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupInfo.java +76 -0
  970. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BlockBasedTableConfig.java +951 -0
  971. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BloomFilter.java +73 -0
  972. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BuiltinComparator.java +20 -0
  973. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ByteBufferGetStatus.java +50 -0
  974. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Cache.java +40 -0
  975. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraCompactionFilter.java +20 -0
  976. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraValueMergeOperator.java +25 -0
  977. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Checkpoint.java +62 -0
  978. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ChecksumType.java +45 -0
  979. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ClockCache.java +59 -0
  980. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyDescriptor.java +84 -0
  981. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyHandle.java +151 -0
  982. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyMetaData.java +70 -0
  983. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptions.java +1543 -0
  984. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptionsInterface.java +536 -0
  985. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactRangeOptions.java +245 -0
  986. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobInfo.java +161 -0
  987. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobStats.java +295 -0
  988. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptions.java +121 -0
  989. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsFIFO.java +87 -0
  990. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsUniversal.java +273 -0
  991. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionPriority.java +81 -0
  992. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionReason.java +141 -0
  993. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStopStyle.java +55 -0
  994. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStyle.java +81 -0
  995. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorOptions.java +133 -0
  996. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorType.java +48 -0
  997. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionOptions.java +150 -0
  998. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionType.java +121 -0
  999. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiter.java +44 -0
  1000. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiterImpl.java +48 -0
  1001. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConfigOptions.java +53 -0
  1002. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptions.java +1496 -0
  1003. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptionsInterface.java +1756 -0
  1004. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DataBlockIndexType.java +32 -0
  1005. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DbPath.java +47 -0
  1006. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DirectSlice.java +136 -0
  1007. package/vendor/rocksdb/java/src/main/java/org/rocksdb/EncodingType.java +55 -0
  1008. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Env.java +167 -0
  1009. package/vendor/rocksdb/java/src/main/java/org/rocksdb/EnvOptions.java +366 -0
  1010. package/vendor/rocksdb/java/src/main/java/org/rocksdb/EventListener.java +335 -0
  1011. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Experimental.java +23 -0
  1012. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ExternalFileIngestionInfo.java +103 -0
  1013. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FileOperationInfo.java +112 -0
  1014. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Filter.java +36 -0
  1015. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushJobInfo.java +186 -0
  1016. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushOptions.java +90 -0
  1017. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushReason.java +53 -0
  1018. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashLinkedListMemTableConfig.java +174 -0
  1019. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashSkipListMemTableConfig.java +106 -0
  1020. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramData.java +75 -0
  1021. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramType.java +214 -0
  1022. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Holder.java +46 -0
  1023. package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexShorteningMode.java +60 -0
  1024. package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexType.java +55 -0
  1025. package/vendor/rocksdb/java/src/main/java/org/rocksdb/InfoLogLevel.java +49 -0
  1026. package/vendor/rocksdb/java/src/main/java/org/rocksdb/IngestExternalFileOptions.java +227 -0
  1027. package/vendor/rocksdb/java/src/main/java/org/rocksdb/KeyMayExist.java +35 -0
  1028. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LRUCache.java +106 -0
  1029. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LevelMetaData.java +56 -0
  1030. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LiveFileMetaData.java +55 -0
  1031. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LogFile.java +75 -0
  1032. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Logger.java +121 -0
  1033. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableConfig.java +29 -0
  1034. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableInfo.java +103 -0
  1035. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUsageType.java +72 -0
  1036. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUtil.java +60 -0
  1037. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MergeOperator.java +18 -0
  1038. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptions.java +621 -0
  1039. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptionsInterface.java +156 -0
  1040. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptions.java +292 -0
  1041. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptionsInterface.java +440 -0
  1042. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionKey.java +16 -0
  1043. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionValue.java +368 -0
  1044. package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeComparatorWrapper.java +59 -0
  1045. package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeLibraryLoader.java +172 -0
  1046. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationStage.java +59 -0
  1047. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationType.java +55 -0
  1048. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionDB.java +224 -0
  1049. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionOptions.java +53 -0
  1050. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionString.java +261 -0
  1051. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Options.java +2574 -0
  1052. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionsUtil.java +101 -0
  1053. package/vendor/rocksdb/java/src/main/java/org/rocksdb/PersistentCache.java +26 -0
  1054. package/vendor/rocksdb/java/src/main/java/org/rocksdb/PlainTableConfig.java +251 -0
  1055. package/vendor/rocksdb/java/src/main/java/org/rocksdb/PrepopulateBlobCache.java +117 -0
  1056. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Priority.java +49 -0
  1057. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Range.java +19 -0
  1058. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiter.java +227 -0
  1059. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiterMode.java +52 -0
  1060. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadOptions.java +822 -0
  1061. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadTier.java +49 -0
  1062. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RemoveEmptyValueCompactionFilter.java +18 -0
  1063. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RestoreOptions.java +32 -0
  1064. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReusedSynchronisationType.java +65 -0
  1065. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksCallbackObject.java +73 -0
  1066. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDB.java +4688 -0
  1067. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDBException.java +44 -0
  1068. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksEnv.java +31 -0
  1069. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIterator.java +140 -0
  1070. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIteratorInterface.java +127 -0
  1071. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMemEnv.java +31 -0
  1072. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMutableObject.java +87 -0
  1073. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksObject.java +45 -0
  1074. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SanityLevel.java +47 -0
  1075. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SizeApproximationFlag.java +31 -0
  1076. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SkipListMemTableConfig.java +51 -0
  1077. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Slice.java +135 -0
  1078. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Snapshot.java +41 -0
  1079. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileManager.java +249 -0
  1080. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileMetaData.java +162 -0
  1081. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReader.java +82 -0
  1082. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReaderIterator.java +140 -0
  1083. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileWriter.java +237 -0
  1084. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFactory.java +15 -0
  1085. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFixedPrefixFactory.java +19 -0
  1086. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StateType.java +53 -0
  1087. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Statistics.java +153 -0
  1088. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollector.java +102 -0
  1089. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollectorCallback.java +32 -0
  1090. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsCollectorInput.java +35 -0
  1091. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsLevel.java +65 -0
  1092. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Status.java +155 -0
  1093. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StringAppendOperator.java +29 -0
  1094. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationBriefInfo.java +107 -0
  1095. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationInfo.java +86 -0
  1096. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationReason.java +46 -0
  1097. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileDeletionInfo.java +86 -0
  1098. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFilter.java +21 -0
  1099. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFormatConfig.java +22 -0
  1100. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableProperties.java +426 -0
  1101. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadStatus.java +224 -0
  1102. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadType.java +65 -0
  1103. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TickerType.java +802 -0
  1104. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TimedEnv.java +30 -0
  1105. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceOptions.java +32 -0
  1106. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceWriter.java +36 -0
  1107. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Transaction.java +2162 -0
  1108. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDB.java +401 -0
  1109. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDBOptions.java +216 -0
  1110. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionLogIterator.java +112 -0
  1111. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionOptions.java +189 -0
  1112. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalDB.java +65 -0
  1113. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalOptions.java +31 -0
  1114. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TtlDB.java +242 -0
  1115. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TxnDBWritePolicy.java +62 -0
  1116. package/vendor/rocksdb/java/src/main/java/org/rocksdb/UInt64AddOperator.java +19 -0
  1117. package/vendor/rocksdb/java/src/main/java/org/rocksdb/VectorMemTableConfig.java +46 -0
  1118. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WALRecoveryMode.java +82 -0
  1119. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WBWIRocksIterator.java +203 -0
  1120. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFileType.java +55 -0
  1121. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFilter.java +86 -0
  1122. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalProcessingOption.java +54 -0
  1123. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatch.java +394 -0
  1124. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchInterface.java +283 -0
  1125. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchWithIndex.java +358 -0
  1126. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBufferManager.java +50 -0
  1127. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteOptions.java +255 -0
  1128. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallCondition.java +44 -0
  1129. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallInfo.java +75 -0
  1130. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ByteUtil.java +52 -0
  1131. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/BytewiseComparator.java +121 -0
  1132. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/Environment.java +245 -0
  1133. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/IntComparator.java +67 -0
  1134. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ReverseBytewiseComparator.java +88 -0
  1135. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/SizeUnit.java +16 -0
  1136. package/vendor/rocksdb/java/src/test/java/org/rocksdb/AbstractTransactionTest.java +979 -0
  1137. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineOptionsTest.java +297 -0
  1138. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineTest.java +261 -0
  1139. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlobOptionsTest.java +353 -0
  1140. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlockBasedTableConfigTest.java +415 -0
  1141. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BuiltinComparatorTest.java +145 -0
  1142. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ByteBufferUnsupportedOperationTest.java +132 -0
  1143. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BytewiseComparatorRegressionTest.java +132 -0
  1144. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CheckPointTest.java +82 -0
  1145. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ClockCacheTest.java +25 -0
  1146. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyOptionsTest.java +712 -0
  1147. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyTest.java +562 -0
  1148. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactRangeOptionsTest.java +102 -0
  1149. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionFilterFactoryTest.java +61 -0
  1150. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobInfoTest.java +114 -0
  1151. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobStatsTest.java +196 -0
  1152. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsFIFOTest.java +35 -0
  1153. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsTest.java +52 -0
  1154. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsUniversalTest.java +80 -0
  1155. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionPriorityTest.java +31 -0
  1156. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionStopStyleTest.java +31 -0
  1157. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ComparatorOptionsTest.java +58 -0
  1158. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionOptionsTest.java +71 -0
  1159. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionTypesTest.java +25 -0
  1160. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ConcurrentTaskLimiterTest.java +56 -0
  1161. package/vendor/rocksdb/java/src/test/java/org/rocksdb/DBOptionsTest.java +902 -0
  1162. package/vendor/rocksdb/java/src/test/java/org/rocksdb/DefaultEnvTest.java +113 -0
  1163. package/vendor/rocksdb/java/src/test/java/org/rocksdb/DirectSliceTest.java +93 -0
  1164. package/vendor/rocksdb/java/src/test/java/org/rocksdb/EnvOptionsTest.java +145 -0
  1165. package/vendor/rocksdb/java/src/test/java/org/rocksdb/EventListenerTest.java +725 -0
  1166. package/vendor/rocksdb/java/src/test/java/org/rocksdb/FilterTest.java +39 -0
  1167. package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushOptionsTest.java +31 -0
  1168. package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushTest.java +49 -0
  1169. package/vendor/rocksdb/java/src/test/java/org/rocksdb/InfoLogLevelTest.java +109 -0
  1170. package/vendor/rocksdb/java/src/test/java/org/rocksdb/IngestExternalFileOptionsTest.java +107 -0
  1171. package/vendor/rocksdb/java/src/test/java/org/rocksdb/KeyMayExistTest.java +528 -0
  1172. package/vendor/rocksdb/java/src/test/java/org/rocksdb/LRUCacheTest.java +32 -0
  1173. package/vendor/rocksdb/java/src/test/java/org/rocksdb/LoggerTest.java +235 -0
  1174. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemTableTest.java +108 -0
  1175. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemoryUtilTest.java +136 -0
  1176. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MergeTest.java +465 -0
  1177. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MixedOptionsTest.java +85 -0
  1178. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiColumnRegressionTest.java +145 -0
  1179. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetManyKeysTest.java +241 -0
  1180. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetTest.java +530 -0
  1181. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableColumnFamilyOptionsTest.java +167 -0
  1182. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableDBOptionsTest.java +85 -0
  1183. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableOptionsGetSetTest.java +429 -0
  1184. package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeComparatorWrapperTest.java +90 -0
  1185. package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeLibraryLoaderTest.java +41 -0
  1186. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionDBTest.java +131 -0
  1187. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionOptionsTest.java +38 -0
  1188. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionTest.java +446 -0
  1189. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsTest.java +1488 -0
  1190. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsUtilTest.java +129 -0
  1191. package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlainTableConfigTest.java +89 -0
  1192. package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlatformRandomHelper.java +58 -0
  1193. package/vendor/rocksdb/java/src/test/java/org/rocksdb/PutMultiplePartsTest.java +164 -0
  1194. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RateLimiterTest.java +65 -0
  1195. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOnlyTest.java +222 -0
  1196. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOptionsTest.java +374 -0
  1197. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBExceptionTest.java +115 -0
  1198. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBTest.java +1692 -0
  1199. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksIteratorTest.java +289 -0
  1200. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksMemEnvTest.java +137 -0
  1201. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksNativeLibraryResource.java +18 -0
  1202. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SecondaryDBTest.java +135 -0
  1203. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SliceTest.java +80 -0
  1204. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SnapshotTest.java +169 -0
  1205. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileManagerTest.java +66 -0
  1206. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileReaderTest.java +222 -0
  1207. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileWriterTest.java +239 -0
  1208. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstPartitionerTest.java +72 -0
  1209. package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsCollectorTest.java +55 -0
  1210. package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsTest.java +168 -0
  1211. package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatsCallbackMock.java +19 -0
  1212. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TableFilterTest.java +106 -0
  1213. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TimedEnvTest.java +40 -0
  1214. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBOptionsTest.java +64 -0
  1215. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBTest.java +177 -0
  1216. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionLogIteratorTest.java +139 -0
  1217. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionOptionsTest.java +72 -0
  1218. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionTest.java +488 -0
  1219. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TtlDBTest.java +112 -0
  1220. package/vendor/rocksdb/java/src/test/java/org/rocksdb/Types.java +43 -0
  1221. package/vendor/rocksdb/java/src/test/java/org/rocksdb/VerifyChecksumsTest.java +213 -0
  1222. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WALRecoveryModeTest.java +22 -0
  1223. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WalFilterTest.java +165 -0
  1224. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchHandlerTest.java +76 -0
  1225. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchTest.java +528 -0
  1226. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchThreadedTest.java +101 -0
  1227. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchWithIndexTest.java +1068 -0
  1228. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteOptionsTest.java +75 -0
  1229. package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java +21 -0
  1230. package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RocksJunitRunner.java +174 -0
  1231. package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/TestableEventListener.java +23 -0
  1232. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ByteBufferAllocator.java +16 -0
  1233. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorIntTest.java +267 -0
  1234. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorTest.java +531 -0
  1235. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/CapturingWriteBatchHandler.java +190 -0
  1236. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/DirectByteBufferAllocator.java +18 -0
  1237. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/EnvironmentTest.java +304 -0
  1238. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/HeapByteBufferAllocator.java +18 -0
  1239. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/IntComparatorTest.java +266 -0
  1240. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/JNIComparatorTest.java +180 -0
  1241. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ReverseBytewiseComparatorIntTest.java +270 -0
  1242. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/SizeUnitTest.java +27 -0
  1243. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/TestUtil.java +72 -0
  1244. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/WriteBatchGetter.java +139 -0
  1245. package/vendor/rocksdb/java/understanding_options.md +79 -0
  1246. package/vendor/rocksdb/logging/auto_roll_logger.cc +368 -0
  1247. package/vendor/rocksdb/logging/auto_roll_logger.h +166 -0
  1248. package/vendor/rocksdb/logging/auto_roll_logger_test.cc +731 -0
  1249. package/vendor/rocksdb/logging/env_logger.h +195 -0
  1250. package/vendor/rocksdb/logging/env_logger_test.cc +163 -0
  1251. package/vendor/rocksdb/logging/event_logger.cc +68 -0
  1252. package/vendor/rocksdb/logging/event_logger.h +202 -0
  1253. package/vendor/rocksdb/logging/event_logger_test.cc +45 -0
  1254. package/vendor/rocksdb/logging/log_buffer.cc +91 -0
  1255. package/vendor/rocksdb/logging/log_buffer.h +57 -0
  1256. package/vendor/rocksdb/logging/logging.h +62 -0
  1257. package/vendor/rocksdb/memory/allocator.h +58 -0
  1258. package/vendor/rocksdb/memory/arena.cc +170 -0
  1259. package/vendor/rocksdb/memory/arena.h +135 -0
  1260. package/vendor/rocksdb/memory/arena_test.cc +295 -0
  1261. package/vendor/rocksdb/memory/concurrent_arena.cc +45 -0
  1262. package/vendor/rocksdb/memory/concurrent_arena.h +215 -0
  1263. package/vendor/rocksdb/memory/jemalloc_nodump_allocator.cc +303 -0
  1264. package/vendor/rocksdb/memory/jemalloc_nodump_allocator.h +99 -0
  1265. package/vendor/rocksdb/memory/memkind_kmem_allocator.cc +44 -0
  1266. package/vendor/rocksdb/memory/memkind_kmem_allocator.h +43 -0
  1267. package/vendor/rocksdb/memory/memory_allocator.cc +80 -0
  1268. package/vendor/rocksdb/memory/memory_allocator_impl.h +47 -0
  1269. package/vendor/rocksdb/memory/memory_allocator_test.cc +236 -0
  1270. package/vendor/rocksdb/memory/memory_usage.h +38 -0
  1271. package/vendor/rocksdb/memtable/alloc_tracker.cc +63 -0
  1272. package/vendor/rocksdb/memtable/hash_linklist_rep.cc +924 -0
  1273. package/vendor/rocksdb/memtable/hash_skiplist_rep.cc +391 -0
  1274. package/vendor/rocksdb/memtable/inlineskiplist.h +1051 -0
  1275. package/vendor/rocksdb/memtable/inlineskiplist_test.cc +665 -0
  1276. package/vendor/rocksdb/memtable/memtablerep_bench.cc +687 -0
  1277. package/vendor/rocksdb/memtable/skiplist.h +498 -0
  1278. package/vendor/rocksdb/memtable/skiplist_test.cc +388 -0
  1279. package/vendor/rocksdb/memtable/skiplistrep.cc +368 -0
  1280. package/vendor/rocksdb/memtable/stl_wrappers.h +33 -0
  1281. package/vendor/rocksdb/memtable/vectorrep.cc +307 -0
  1282. package/vendor/rocksdb/memtable/write_buffer_manager.cc +185 -0
  1283. package/vendor/rocksdb/memtable/write_buffer_manager_test.cc +304 -0
  1284. package/vendor/rocksdb/microbench/CMakeLists.txt +17 -0
  1285. package/vendor/rocksdb/microbench/README.md +60 -0
  1286. package/vendor/rocksdb/microbench/db_basic_bench.cc +1583 -0
  1287. package/vendor/rocksdb/microbench/ribbon_bench.cc +155 -0
  1288. package/vendor/rocksdb/monitoring/file_read_sample.h +23 -0
  1289. package/vendor/rocksdb/monitoring/histogram.cc +270 -0
  1290. package/vendor/rocksdb/monitoring/histogram.h +143 -0
  1291. package/vendor/rocksdb/monitoring/histogram_test.cc +254 -0
  1292. package/vendor/rocksdb/monitoring/histogram_windowing.cc +194 -0
  1293. package/vendor/rocksdb/monitoring/histogram_windowing.h +84 -0
  1294. package/vendor/rocksdb/monitoring/in_memory_stats_history.cc +50 -0
  1295. package/vendor/rocksdb/monitoring/in_memory_stats_history.h +74 -0
  1296. package/vendor/rocksdb/monitoring/instrumented_mutex.cc +90 -0
  1297. package/vendor/rocksdb/monitoring/instrumented_mutex.h +126 -0
  1298. package/vendor/rocksdb/monitoring/iostats_context.cc +78 -0
  1299. package/vendor/rocksdb/monitoring/iostats_context_imp.h +62 -0
  1300. package/vendor/rocksdb/monitoring/iostats_context_test.cc +31 -0
  1301. package/vendor/rocksdb/monitoring/perf_context.cc +313 -0
  1302. package/vendor/rocksdb/monitoring/perf_context_imp.h +96 -0
  1303. package/vendor/rocksdb/monitoring/perf_level.cc +23 -0
  1304. package/vendor/rocksdb/monitoring/perf_level_imp.h +14 -0
  1305. package/vendor/rocksdb/monitoring/perf_step_timer.h +77 -0
  1306. package/vendor/rocksdb/monitoring/persistent_stats_history.cc +170 -0
  1307. package/vendor/rocksdb/monitoring/persistent_stats_history.h +83 -0
  1308. package/vendor/rocksdb/monitoring/statistics.cc +534 -0
  1309. package/vendor/rocksdb/monitoring/statistics_impl.h +144 -0
  1310. package/vendor/rocksdb/monitoring/statistics_test.cc +88 -0
  1311. package/vendor/rocksdb/monitoring/stats_history_test.cc +662 -0
  1312. package/vendor/rocksdb/monitoring/thread_status_impl.cc +163 -0
  1313. package/vendor/rocksdb/monitoring/thread_status_updater.cc +328 -0
  1314. package/vendor/rocksdb/monitoring/thread_status_updater.h +226 -0
  1315. package/vendor/rocksdb/monitoring/thread_status_updater_debug.cc +43 -0
  1316. package/vendor/rocksdb/monitoring/thread_status_util.cc +208 -0
  1317. package/vendor/rocksdb/monitoring/thread_status_util.h +139 -0
  1318. package/vendor/rocksdb/monitoring/thread_status_util_debug.cc +46 -0
  1319. package/vendor/rocksdb/options/cf_options.cc +1196 -0
  1320. package/vendor/rocksdb/options/cf_options.h +347 -0
  1321. package/vendor/rocksdb/options/configurable.cc +712 -0
  1322. package/vendor/rocksdb/options/configurable_helper.h +185 -0
  1323. package/vendor/rocksdb/options/configurable_test.cc +861 -0
  1324. package/vendor/rocksdb/options/configurable_test.h +116 -0
  1325. package/vendor/rocksdb/options/customizable.cc +133 -0
  1326. package/vendor/rocksdb/options/customizable_test.cc +2116 -0
  1327. package/vendor/rocksdb/options/db_options.cc +1079 -0
  1328. package/vendor/rocksdb/options/db_options.h +152 -0
  1329. package/vendor/rocksdb/options/options.cc +692 -0
  1330. package/vendor/rocksdb/options/options_helper.cc +1424 -0
  1331. package/vendor/rocksdb/options/options_helper.h +116 -0
  1332. package/vendor/rocksdb/options/options_parser.cc +736 -0
  1333. package/vendor/rocksdb/options/options_parser.h +149 -0
  1334. package/vendor/rocksdb/options/options_settable_test.cc +655 -0
  1335. package/vendor/rocksdb/options/options_test.cc +5060 -0
  1336. package/vendor/rocksdb/plugin/README.md +43 -0
  1337. package/vendor/rocksdb/port/README +10 -0
  1338. package/vendor/rocksdb/port/jemalloc_helper.h +107 -0
  1339. package/vendor/rocksdb/port/lang.h +97 -0
  1340. package/vendor/rocksdb/port/likely.h +18 -0
  1341. package/vendor/rocksdb/port/malloc.h +17 -0
  1342. package/vendor/rocksdb/port/mmap.cc +98 -0
  1343. package/vendor/rocksdb/port/mmap.h +70 -0
  1344. package/vendor/rocksdb/port/port.h +21 -0
  1345. package/vendor/rocksdb/port/port_dirent.h +44 -0
  1346. package/vendor/rocksdb/port/port_example.h +101 -0
  1347. package/vendor/rocksdb/port/port_posix.cc +300 -0
  1348. package/vendor/rocksdb/port/port_posix.h +243 -0
  1349. package/vendor/rocksdb/port/stack_trace.cc +336 -0
  1350. package/vendor/rocksdb/port/stack_trace.h +31 -0
  1351. package/vendor/rocksdb/port/sys_time.h +63 -0
  1352. package/vendor/rocksdb/port/util_logger.h +18 -0
  1353. package/vendor/rocksdb/port/win/env_default.cc +45 -0
  1354. package/vendor/rocksdb/port/win/env_win.cc +1437 -0
  1355. package/vendor/rocksdb/port/win/env_win.h +305 -0
  1356. package/vendor/rocksdb/port/win/io_win.cc +1101 -0
  1357. package/vendor/rocksdb/port/win/io_win.h +508 -0
  1358. package/vendor/rocksdb/port/win/port_win.cc +303 -0
  1359. package/vendor/rocksdb/port/win/port_win.h +379 -0
  1360. package/vendor/rocksdb/port/win/win_jemalloc.cc +80 -0
  1361. package/vendor/rocksdb/port/win/win_logger.cc +192 -0
  1362. package/vendor/rocksdb/port/win/win_logger.h +64 -0
  1363. package/vendor/rocksdb/port/win/win_thread.cc +170 -0
  1364. package/vendor/rocksdb/port/win/win_thread.h +117 -0
  1365. package/vendor/rocksdb/port/win/xpress_win.cc +210 -0
  1366. package/vendor/rocksdb/port/win/xpress_win.h +26 -0
  1367. package/vendor/rocksdb/port/xpress.h +17 -0
  1368. package/vendor/rocksdb/rocksdb.pc.in +10 -0
  1369. package/vendor/rocksdb/src.mk +713 -0
  1370. package/vendor/rocksdb/table/adaptive/adaptive_table_factory.cc +125 -0
  1371. package/vendor/rocksdb/table/adaptive/adaptive_table_factory.h +56 -0
  1372. package/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +73 -0
  1373. package/vendor/rocksdb/table/block_based/binary_search_index_reader.h +48 -0
  1374. package/vendor/rocksdb/table/block_based/block.cc +1291 -0
  1375. package/vendor/rocksdb/table/block_based/block.h +921 -0
  1376. package/vendor/rocksdb/table/block_based/block_based_table_builder.cc +2027 -0
  1377. package/vendor/rocksdb/table/block_based/block_based_table_builder.h +209 -0
  1378. package/vendor/rocksdb/table/block_based/block_based_table_factory.cc +962 -0
  1379. package/vendor/rocksdb/table/block_based/block_based_table_factory.h +102 -0
  1380. package/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +500 -0
  1381. package/vendor/rocksdb/table/block_based/block_based_table_iterator.h +310 -0
  1382. package/vendor/rocksdb/table/block_based/block_based_table_reader.cc +3043 -0
  1383. package/vendor/rocksdb/table/block_based/block_based_table_reader.h +745 -0
  1384. package/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +203 -0
  1385. package/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +758 -0
  1386. package/vendor/rocksdb/table/block_based/block_based_table_reader_test.cc +567 -0
  1387. package/vendor/rocksdb/table/block_based/block_builder.cc +234 -0
  1388. package/vendor/rocksdb/table/block_based/block_builder.h +104 -0
  1389. package/vendor/rocksdb/table/block_based/block_cache.cc +106 -0
  1390. package/vendor/rocksdb/table/block_based/block_cache.h +140 -0
  1391. package/vendor/rocksdb/table/block_based/block_prefetcher.cc +120 -0
  1392. package/vendor/rocksdb/table/block_based/block_prefetcher.h +72 -0
  1393. package/vendor/rocksdb/table/block_based/block_prefix_index.cc +226 -0
  1394. package/vendor/rocksdb/table/block_based/block_prefix_index.h +70 -0
  1395. package/vendor/rocksdb/table/block_based/block_test.cc +1543 -0
  1396. package/vendor/rocksdb/table/block_based/block_type.h +34 -0
  1397. package/vendor/rocksdb/table/block_based/cachable_entry.h +244 -0
  1398. package/vendor/rocksdb/table/block_based/data_block_footer.cc +59 -0
  1399. package/vendor/rocksdb/table/block_based/data_block_footer.h +25 -0
  1400. package/vendor/rocksdb/table/block_based/data_block_hash_index.cc +94 -0
  1401. package/vendor/rocksdb/table/block_based/data_block_hash_index.h +137 -0
  1402. package/vendor/rocksdb/table/block_based/data_block_hash_index_test.cc +718 -0
  1403. package/vendor/rocksdb/table/block_based/filter_block.h +183 -0
  1404. package/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +163 -0
  1405. package/vendor/rocksdb/table/block_based/filter_block_reader_common.h +76 -0
  1406. package/vendor/rocksdb/table/block_based/filter_policy.cc +1966 -0
  1407. package/vendor/rocksdb/table/block_based/filter_policy_internal.h +340 -0
  1408. package/vendor/rocksdb/table/block_based/flush_block_policy.cc +132 -0
  1409. package/vendor/rocksdb/table/block_based/flush_block_policy_impl.h +40 -0
  1410. package/vendor/rocksdb/table/block_based/full_filter_block.cc +290 -0
  1411. package/vendor/rocksdb/table/block_based/full_filter_block.h +147 -0
  1412. package/vendor/rocksdb/table/block_based/full_filter_block_test.cc +323 -0
  1413. package/vendor/rocksdb/table/block_based/hash_index_reader.cc +147 -0
  1414. package/vendor/rocksdb/table/block_based/hash_index_reader.h +49 -0
  1415. package/vendor/rocksdb/table/block_based/index_builder.cc +282 -0
  1416. package/vendor/rocksdb/table/block_based/index_builder.h +455 -0
  1417. package/vendor/rocksdb/table/block_based/index_reader_common.cc +57 -0
  1418. package/vendor/rocksdb/table/block_based/index_reader_common.h +85 -0
  1419. package/vendor/rocksdb/table/block_based/mock_block_based_table.h +62 -0
  1420. package/vendor/rocksdb/table/block_based/parsed_full_filter_block.cc +23 -0
  1421. package/vendor/rocksdb/table/block_based/parsed_full_filter_block.h +47 -0
  1422. package/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +554 -0
  1423. package/vendor/rocksdb/table/block_based/partitioned_filter_block.h +182 -0
  1424. package/vendor/rocksdb/table/block_based/partitioned_filter_block_test.cc +436 -0
  1425. package/vendor/rocksdb/table/block_based/partitioned_index_iterator.cc +163 -0
  1426. package/vendor/rocksdb/table/block_based/partitioned_index_iterator.h +160 -0
  1427. package/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +224 -0
  1428. package/vendor/rocksdb/table/block_based/partitioned_index_reader.h +56 -0
  1429. package/vendor/rocksdb/table/block_based/reader_common.cc +52 -0
  1430. package/vendor/rocksdb/table/block_based/reader_common.h +34 -0
  1431. package/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +126 -0
  1432. package/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +61 -0
  1433. package/vendor/rocksdb/table/block_fetcher.cc +405 -0
  1434. package/vendor/rocksdb/table/block_fetcher.h +142 -0
  1435. package/vendor/rocksdb/table/block_fetcher_test.cc +520 -0
  1436. package/vendor/rocksdb/table/cleanable_test.cc +390 -0
  1437. package/vendor/rocksdb/table/compaction_merging_iterator.cc +370 -0
  1438. package/vendor/rocksdb/table/compaction_merging_iterator.h +44 -0
  1439. package/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.cc +551 -0
  1440. package/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.h +136 -0
  1441. package/vendor/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +631 -0
  1442. package/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.cc +100 -0
  1443. package/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.h +80 -0
  1444. package/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.cc +412 -0
  1445. package/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.h +100 -0
  1446. package/vendor/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +574 -0
  1447. package/vendor/rocksdb/table/format.cc +573 -0
  1448. package/vendor/rocksdb/table/format.h +378 -0
  1449. package/vendor/rocksdb/table/get_context.cc +616 -0
  1450. package/vendor/rocksdb/table/get_context.h +245 -0
  1451. package/vendor/rocksdb/table/internal_iterator.h +224 -0
  1452. package/vendor/rocksdb/table/iter_heap.h +44 -0
  1453. package/vendor/rocksdb/table/iterator.cc +130 -0
  1454. package/vendor/rocksdb/table/iterator_wrapper.h +190 -0
  1455. package/vendor/rocksdb/table/merger_test.cc +182 -0
  1456. package/vendor/rocksdb/table/merging_iterator.cc +1725 -0
  1457. package/vendor/rocksdb/table/merging_iterator.h +97 -0
  1458. package/vendor/rocksdb/table/meta_blocks.cc +564 -0
  1459. package/vendor/rocksdb/table/meta_blocks.h +172 -0
  1460. package/vendor/rocksdb/table/mock_table.cc +346 -0
  1461. package/vendor/rocksdb/table/mock_table.h +94 -0
  1462. package/vendor/rocksdb/table/multiget_context.h +405 -0
  1463. package/vendor/rocksdb/table/persistent_cache_helper.cc +111 -0
  1464. package/vendor/rocksdb/table/persistent_cache_helper.h +46 -0
  1465. package/vendor/rocksdb/table/persistent_cache_options.h +34 -0
  1466. package/vendor/rocksdb/table/plain/plain_table_bloom.cc +78 -0
  1467. package/vendor/rocksdb/table/plain/plain_table_bloom.h +132 -0
  1468. package/vendor/rocksdb/table/plain/plain_table_builder.cc +335 -0
  1469. package/vendor/rocksdb/table/plain/plain_table_builder.h +152 -0
  1470. package/vendor/rocksdb/table/plain/plain_table_factory.cc +296 -0
  1471. package/vendor/rocksdb/table/plain/plain_table_factory.h +180 -0
  1472. package/vendor/rocksdb/table/plain/plain_table_index.cc +211 -0
  1473. package/vendor/rocksdb/table/plain/plain_table_index.h +246 -0
  1474. package/vendor/rocksdb/table/plain/plain_table_key_coding.cc +507 -0
  1475. package/vendor/rocksdb/table/plain/plain_table_key_coding.h +199 -0
  1476. package/vendor/rocksdb/table/plain/plain_table_reader.cc +771 -0
  1477. package/vendor/rocksdb/table/plain/plain_table_reader.h +243 -0
  1478. package/vendor/rocksdb/table/scoped_arena_iterator.h +57 -0
  1479. package/vendor/rocksdb/table/sst_file_dumper.cc +520 -0
  1480. package/vendor/rocksdb/table/sst_file_dumper.h +99 -0
  1481. package/vendor/rocksdb/table/sst_file_reader.cc +101 -0
  1482. package/vendor/rocksdb/table/sst_file_reader_test.cc +423 -0
  1483. package/vendor/rocksdb/table/sst_file_writer.cc +436 -0
  1484. package/vendor/rocksdb/table/sst_file_writer_collectors.h +95 -0
  1485. package/vendor/rocksdb/table/table_builder.h +228 -0
  1486. package/vendor/rocksdb/table/table_factory.cc +52 -0
  1487. package/vendor/rocksdb/table/table_properties.cc +351 -0
  1488. package/vendor/rocksdb/table/table_properties_internal.h +14 -0
  1489. package/vendor/rocksdb/table/table_reader.h +187 -0
  1490. package/vendor/rocksdb/table/table_reader_bench.cc +339 -0
  1491. package/vendor/rocksdb/table/table_test.cc +5882 -0
  1492. package/vendor/rocksdb/table/two_level_iterator.cc +220 -0
  1493. package/vendor/rocksdb/table/two_level_iterator.h +43 -0
  1494. package/vendor/rocksdb/table/unique_id.cc +223 -0
  1495. package/vendor/rocksdb/table/unique_id_impl.h +93 -0
  1496. package/vendor/rocksdb/test_util/mock_time_env.cc +38 -0
  1497. package/vendor/rocksdb/test_util/mock_time_env.h +78 -0
  1498. package/vendor/rocksdb/test_util/secondary_cache_test_util.cc +96 -0
  1499. package/vendor/rocksdb/test_util/secondary_cache_test_util.h +119 -0
  1500. package/vendor/rocksdb/test_util/sync_point.cc +82 -0
  1501. package/vendor/rocksdb/test_util/sync_point.h +180 -0
  1502. package/vendor/rocksdb/test_util/sync_point_impl.cc +152 -0
  1503. package/vendor/rocksdb/test_util/sync_point_impl.h +96 -0
  1504. package/vendor/rocksdb/test_util/testharness.cc +107 -0
  1505. package/vendor/rocksdb/test_util/testharness.h +124 -0
  1506. package/vendor/rocksdb/test_util/testutil.cc +722 -0
  1507. package/vendor/rocksdb/test_util/testutil.h +860 -0
  1508. package/vendor/rocksdb/test_util/testutil_test.cc +43 -0
  1509. package/vendor/rocksdb/test_util/transaction_test_util.cc +400 -0
  1510. package/vendor/rocksdb/test_util/transaction_test_util.h +147 -0
  1511. package/vendor/rocksdb/third-party/gcc/ppc-asm.h +390 -0
  1512. package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/CMakeLists.txt +4 -0
  1513. package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/gtest-all.cc +11394 -0
  1514. package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/gtest.h +22115 -0
  1515. package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/gtest_main.cc +37 -0
  1516. package/vendor/rocksdb/thirdparty.inc +268 -0
  1517. package/vendor/rocksdb/tools/CMakeLists.txt +30 -0
  1518. package/vendor/rocksdb/tools/Dockerfile +5 -0
  1519. package/vendor/rocksdb/tools/advisor/README.md +96 -0
  1520. package/vendor/rocksdb/tools/advisor/advisor/__init__.py +0 -0
  1521. package/vendor/rocksdb/tools/advisor/advisor/bench_runner.py +39 -0
  1522. package/vendor/rocksdb/tools/advisor/advisor/config_optimizer_example.py +140 -0
  1523. package/vendor/rocksdb/tools/advisor/advisor/db_bench_runner.py +237 -0
  1524. package/vendor/rocksdb/tools/advisor/advisor/db_config_optimizer.py +293 -0
  1525. package/vendor/rocksdb/tools/advisor/advisor/db_log_parser.py +134 -0
  1526. package/vendor/rocksdb/tools/advisor/advisor/db_options_parser.py +348 -0
  1527. package/vendor/rocksdb/tools/advisor/advisor/db_stats_fetcher.py +346 -0
  1528. package/vendor/rocksdb/tools/advisor/advisor/db_timeseries_parser.py +203 -0
  1529. package/vendor/rocksdb/tools/advisor/advisor/ini_parser.py +76 -0
  1530. package/vendor/rocksdb/tools/advisor/advisor/rule_parser.py +510 -0
  1531. package/vendor/rocksdb/tools/advisor/advisor/rule_parser_example.py +98 -0
  1532. package/vendor/rocksdb/tools/advisor/advisor/rules.ini +214 -0
  1533. package/vendor/rocksdb/tools/advisor/test/__init__.py +0 -0
  1534. package/vendor/rocksdb/tools/advisor/test/input_files/LOG-0 +30 -0
  1535. package/vendor/rocksdb/tools/advisor/test/input_files/LOG-1 +25 -0
  1536. package/vendor/rocksdb/tools/advisor/test/input_files/OPTIONS-000005 +49 -0
  1537. package/vendor/rocksdb/tools/advisor/test/input_files/log_stats_parser_keys_ts +3 -0
  1538. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err1.ini +56 -0
  1539. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err2.ini +15 -0
  1540. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err3.ini +15 -0
  1541. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err4.ini +15 -0
  1542. package/vendor/rocksdb/tools/advisor/test/input_files/test_rules.ini +47 -0
  1543. package/vendor/rocksdb/tools/advisor/test/input_files/triggered_rules.ini +83 -0
  1544. package/vendor/rocksdb/tools/advisor/test/test_db_bench_runner.py +141 -0
  1545. package/vendor/rocksdb/tools/advisor/test/test_db_log_parser.py +96 -0
  1546. package/vendor/rocksdb/tools/advisor/test/test_db_options_parser.py +214 -0
  1547. package/vendor/rocksdb/tools/advisor/test/test_db_stats_fetcher.py +121 -0
  1548. package/vendor/rocksdb/tools/advisor/test/test_rule_parser.py +226 -0
  1549. package/vendor/rocksdb/tools/analyze_txn_stress_test.sh +77 -0
  1550. package/vendor/rocksdb/tools/auto_sanity_test.sh +93 -0
  1551. package/vendor/rocksdb/tools/backup_db.sh +15 -0
  1552. package/vendor/rocksdb/tools/benchmark.sh +1173 -0
  1553. package/vendor/rocksdb/tools/benchmark_ci.py +182 -0
  1554. package/vendor/rocksdb/tools/benchmark_compare.sh +342 -0
  1555. package/vendor/rocksdb/tools/benchmark_leveldb.sh +187 -0
  1556. package/vendor/rocksdb/tools/blob_dump.cc +103 -0
  1557. package/vendor/rocksdb/tools/block_cache_analyzer/__init__.py +2 -0
  1558. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +2000 -0
  1559. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.sh +156 -0
  1560. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +734 -0
  1561. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +2314 -0
  1562. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +397 -0
  1563. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +729 -0
  1564. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +791 -0
  1565. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +17 -0
  1566. package/vendor/rocksdb/tools/check_all_python.py +22 -0
  1567. package/vendor/rocksdb/tools/check_format_compatible.sh +379 -0
  1568. package/vendor/rocksdb/tools/db_bench.cc +21 -0
  1569. package/vendor/rocksdb/tools/db_bench_tool.cc +8604 -0
  1570. package/vendor/rocksdb/tools/db_bench_tool_test.cc +342 -0
  1571. package/vendor/rocksdb/tools/db_crashtest.py +1018 -0
  1572. package/vendor/rocksdb/tools/db_repl_stress.cc +132 -0
  1573. package/vendor/rocksdb/tools/db_sanity_test.cc +296 -0
  1574. package/vendor/rocksdb/tools/dbench_monitor +102 -0
  1575. package/vendor/rocksdb/tools/dump/db_dump_tool.cc +258 -0
  1576. package/vendor/rocksdb/tools/dump/rocksdb_dump.cc +60 -0
  1577. package/vendor/rocksdb/tools/dump/rocksdb_undump.cc +59 -0
  1578. package/vendor/rocksdb/tools/generate_random_db.sh +31 -0
  1579. package/vendor/rocksdb/tools/ingest_external_sst.sh +18 -0
  1580. package/vendor/rocksdb/tools/io_tracer_parser.cc +17 -0
  1581. package/vendor/rocksdb/tools/io_tracer_parser_test.cc +182 -0
  1582. package/vendor/rocksdb/tools/io_tracer_parser_tool.cc +142 -0
  1583. package/vendor/rocksdb/tools/io_tracer_parser_tool.h +38 -0
  1584. package/vendor/rocksdb/tools/ldb.cc +13 -0
  1585. package/vendor/rocksdb/tools/ldb_cmd.cc +4263 -0
  1586. package/vendor/rocksdb/tools/ldb_cmd_impl.h +744 -0
  1587. package/vendor/rocksdb/tools/ldb_cmd_test.cc +1216 -0
  1588. package/vendor/rocksdb/tools/ldb_test.py +955 -0
  1589. package/vendor/rocksdb/tools/ldb_tool.cc +182 -0
  1590. package/vendor/rocksdb/tools/pflag +217 -0
  1591. package/vendor/rocksdb/tools/reduce_levels_test.cc +212 -0
  1592. package/vendor/rocksdb/tools/regression_test.sh +525 -0
  1593. package/vendor/rocksdb/tools/restore_db.sh +15 -0
  1594. package/vendor/rocksdb/tools/rocksdb_dump_test.sh +9 -0
  1595. package/vendor/rocksdb/tools/run_blob_bench.sh +223 -0
  1596. package/vendor/rocksdb/tools/run_flash_bench.sh +359 -0
  1597. package/vendor/rocksdb/tools/run_leveldb.sh +175 -0
  1598. package/vendor/rocksdb/tools/sample-dump.dmp +0 -0
  1599. package/vendor/rocksdb/tools/simulated_hybrid_file_system.cc +243 -0
  1600. package/vendor/rocksdb/tools/simulated_hybrid_file_system.h +124 -0
  1601. package/vendor/rocksdb/tools/sst_dump.cc +12 -0
  1602. package/vendor/rocksdb/tools/sst_dump_test.cc +471 -0
  1603. package/vendor/rocksdb/tools/sst_dump_tool.cc +582 -0
  1604. package/vendor/rocksdb/tools/trace_analyzer.cc +17 -0
  1605. package/vendor/rocksdb/tools/trace_analyzer_test.cc +880 -0
  1606. package/vendor/rocksdb/tools/trace_analyzer_tool.cc +1929 -0
  1607. package/vendor/rocksdb/tools/trace_analyzer_tool.h +329 -0
  1608. package/vendor/rocksdb/tools/verify_random_db.sh +41 -0
  1609. package/vendor/rocksdb/tools/write_external_sst.sh +26 -0
  1610. package/vendor/rocksdb/tools/write_stress.cc +305 -0
  1611. package/vendor/rocksdb/tools/write_stress_runner.py +83 -0
  1612. package/vendor/rocksdb/trace_replay/block_cache_tracer.cc +509 -0
  1613. package/vendor/rocksdb/trace_replay/block_cache_tracer.h +239 -0
  1614. package/vendor/rocksdb/trace_replay/block_cache_tracer_test.cc +421 -0
  1615. package/vendor/rocksdb/trace_replay/io_tracer.cc +303 -0
  1616. package/vendor/rocksdb/trace_replay/io_tracer.h +185 -0
  1617. package/vendor/rocksdb/trace_replay/io_tracer_test.cc +353 -0
  1618. package/vendor/rocksdb/trace_replay/trace_record.cc +206 -0
  1619. package/vendor/rocksdb/trace_replay/trace_record_handler.cc +190 -0
  1620. package/vendor/rocksdb/trace_replay/trace_record_handler.h +46 -0
  1621. package/vendor/rocksdb/trace_replay/trace_record_result.cc +146 -0
  1622. package/vendor/rocksdb/trace_replay/trace_replay.cc +622 -0
  1623. package/vendor/rocksdb/trace_replay/trace_replay.h +183 -0
  1624. package/vendor/rocksdb/util/aligned_buffer.h +235 -0
  1625. package/vendor/rocksdb/util/async_file_reader.cc +81 -0
  1626. package/vendor/rocksdb/util/async_file_reader.h +144 -0
  1627. package/vendor/rocksdb/util/autovector.h +393 -0
  1628. package/vendor/rocksdb/util/autovector_test.cc +324 -0
  1629. package/vendor/rocksdb/util/bloom_impl.h +489 -0
  1630. package/vendor/rocksdb/util/bloom_test.cc +1175 -0
  1631. package/vendor/rocksdb/util/build_version.cc.in +79 -0
  1632. package/vendor/rocksdb/util/cast_util.h +42 -0
  1633. package/vendor/rocksdb/util/channel.h +69 -0
  1634. package/vendor/rocksdb/util/cleanable.cc +181 -0
  1635. package/vendor/rocksdb/util/coding.cc +90 -0
  1636. package/vendor/rocksdb/util/coding.h +389 -0
  1637. package/vendor/rocksdb/util/coding_lean.h +101 -0
  1638. package/vendor/rocksdb/util/coding_test.cc +217 -0
  1639. package/vendor/rocksdb/util/compaction_job_stats_impl.cc +92 -0
  1640. package/vendor/rocksdb/util/comparator.cc +383 -0
  1641. package/vendor/rocksdb/util/compression.cc +122 -0
  1642. package/vendor/rocksdb/util/compression.h +1795 -0
  1643. package/vendor/rocksdb/util/compression_context_cache.cc +106 -0
  1644. package/vendor/rocksdb/util/compression_context_cache.h +47 -0
  1645. package/vendor/rocksdb/util/concurrent_task_limiter_impl.cc +64 -0
  1646. package/vendor/rocksdb/util/concurrent_task_limiter_impl.h +67 -0
  1647. package/vendor/rocksdb/util/core_local.h +84 -0
  1648. package/vendor/rocksdb/util/coro_utils.h +112 -0
  1649. package/vendor/rocksdb/util/crc32c.cc +1292 -0
  1650. package/vendor/rocksdb/util/crc32c.h +56 -0
  1651. package/vendor/rocksdb/util/crc32c_arm64.cc +213 -0
  1652. package/vendor/rocksdb/util/crc32c_arm64.h +52 -0
  1653. package/vendor/rocksdb/util/crc32c_ppc.c +94 -0
  1654. package/vendor/rocksdb/util/crc32c_ppc.h +22 -0
  1655. package/vendor/rocksdb/util/crc32c_ppc_asm.S +756 -0
  1656. package/vendor/rocksdb/util/crc32c_ppc_constants.h +900 -0
  1657. package/vendor/rocksdb/util/crc32c_test.cc +213 -0
  1658. package/vendor/rocksdb/util/data_structure.cc +18 -0
  1659. package/vendor/rocksdb/util/defer.h +82 -0
  1660. package/vendor/rocksdb/util/defer_test.cc +51 -0
  1661. package/vendor/rocksdb/util/distributed_mutex.h +50 -0
  1662. package/vendor/rocksdb/util/duplicate_detector.h +69 -0
  1663. package/vendor/rocksdb/util/dynamic_bloom.cc +70 -0
  1664. package/vendor/rocksdb/util/dynamic_bloom.h +214 -0
  1665. package/vendor/rocksdb/util/dynamic_bloom_test.cc +325 -0
  1666. package/vendor/rocksdb/util/fastrange.h +114 -0
  1667. package/vendor/rocksdb/util/file_checksum_helper.cc +170 -0
  1668. package/vendor/rocksdb/util/file_checksum_helper.h +101 -0
  1669. package/vendor/rocksdb/util/file_reader_writer_test.cc +1058 -0
  1670. package/vendor/rocksdb/util/filelock_test.cc +148 -0
  1671. package/vendor/rocksdb/util/filter_bench.cc +840 -0
  1672. package/vendor/rocksdb/util/gflags_compat.h +29 -0
  1673. package/vendor/rocksdb/util/hash.cc +201 -0
  1674. package/vendor/rocksdb/util/hash.h +137 -0
  1675. package/vendor/rocksdb/util/hash128.h +26 -0
  1676. package/vendor/rocksdb/util/hash_containers.h +51 -0
  1677. package/vendor/rocksdb/util/hash_map.h +67 -0
  1678. package/vendor/rocksdb/util/hash_test.cc +853 -0
  1679. package/vendor/rocksdb/util/heap.h +174 -0
  1680. package/vendor/rocksdb/util/heap_test.cc +131 -0
  1681. package/vendor/rocksdb/util/kv_map.h +33 -0
  1682. package/vendor/rocksdb/util/log_write_bench.cc +88 -0
  1683. package/vendor/rocksdb/util/math.h +299 -0
  1684. package/vendor/rocksdb/util/math128.h +316 -0
  1685. package/vendor/rocksdb/util/murmurhash.cc +196 -0
  1686. package/vendor/rocksdb/util/murmurhash.h +43 -0
  1687. package/vendor/rocksdb/util/mutexlock.h +181 -0
  1688. package/vendor/rocksdb/util/ppc-opcode.h +27 -0
  1689. package/vendor/rocksdb/util/random.cc +63 -0
  1690. package/vendor/rocksdb/util/random.h +190 -0
  1691. package/vendor/rocksdb/util/random_test.cc +107 -0
  1692. package/vendor/rocksdb/util/rate_limiter.cc +376 -0
  1693. package/vendor/rocksdb/util/rate_limiter_impl.h +146 -0
  1694. package/vendor/rocksdb/util/rate_limiter_test.cc +520 -0
  1695. package/vendor/rocksdb/util/repeatable_thread.h +149 -0
  1696. package/vendor/rocksdb/util/repeatable_thread_test.cc +111 -0
  1697. package/vendor/rocksdb/util/ribbon_alg.h +1225 -0
  1698. package/vendor/rocksdb/util/ribbon_config.cc +506 -0
  1699. package/vendor/rocksdb/util/ribbon_config.h +182 -0
  1700. package/vendor/rocksdb/util/ribbon_impl.h +1137 -0
  1701. package/vendor/rocksdb/util/ribbon_test.cc +1308 -0
  1702. package/vendor/rocksdb/util/set_comparator.h +24 -0
  1703. package/vendor/rocksdb/util/single_thread_executor.h +56 -0
  1704. package/vendor/rocksdb/util/slice.cc +367 -0
  1705. package/vendor/rocksdb/util/slice_test.cc +252 -0
  1706. package/vendor/rocksdb/util/slice_transform_test.cc +159 -0
  1707. package/vendor/rocksdb/util/status.cc +162 -0
  1708. package/vendor/rocksdb/util/stderr_logger.cc +30 -0
  1709. package/vendor/rocksdb/util/stderr_logger.h +31 -0
  1710. package/vendor/rocksdb/util/stop_watch.h +136 -0
  1711. package/vendor/rocksdb/util/string_util.cc +502 -0
  1712. package/vendor/rocksdb/util/string_util.h +175 -0
  1713. package/vendor/rocksdb/util/thread_guard.h +41 -0
  1714. package/vendor/rocksdb/util/thread_list_test.cc +362 -0
  1715. package/vendor/rocksdb/util/thread_local.cc +521 -0
  1716. package/vendor/rocksdb/util/thread_local.h +100 -0
  1717. package/vendor/rocksdb/util/thread_local_test.cc +578 -0
  1718. package/vendor/rocksdb/util/thread_operation.h +113 -0
  1719. package/vendor/rocksdb/util/threadpool_imp.cc +551 -0
  1720. package/vendor/rocksdb/util/threadpool_imp.h +120 -0
  1721. package/vendor/rocksdb/util/timer.h +340 -0
  1722. package/vendor/rocksdb/util/timer_queue.h +231 -0
  1723. package/vendor/rocksdb/util/timer_queue_test.cc +73 -0
  1724. package/vendor/rocksdb/util/timer_test.cc +402 -0
  1725. package/vendor/rocksdb/util/udt_util.h +77 -0
  1726. package/vendor/rocksdb/util/user_comparator_wrapper.h +64 -0
  1727. package/vendor/rocksdb/util/vector_iterator.h +118 -0
  1728. package/vendor/rocksdb/util/work_queue.h +150 -0
  1729. package/vendor/rocksdb/util/work_queue_test.cc +272 -0
  1730. package/vendor/rocksdb/util/xxhash.cc +48 -0
  1731. package/vendor/rocksdb/util/xxhash.h +6360 -0
  1732. package/vendor/rocksdb/util/xxph3.h +1764 -0
  1733. package/vendor/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
  1734. package/vendor/rocksdb/utilities/agg_merge/agg_merge_impl.h +49 -0
  1735. package/vendor/rocksdb/utilities/agg_merge/agg_merge_test.cc +135 -0
  1736. package/vendor/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
  1737. package/vendor/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
  1738. package/vendor/rocksdb/utilities/backup/backup_engine.cc +3355 -0
  1739. package/vendor/rocksdb/utilities/backup/backup_engine_impl.h +34 -0
  1740. package/vendor/rocksdb/utilities/backup/backup_engine_test.cc +4414 -0
  1741. package/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.cc +488 -0
  1742. package/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.h +202 -0
  1743. package/vendor/rocksdb/utilities/blob_db/blob_db.cc +112 -0
  1744. package/vendor/rocksdb/utilities/blob_db/blob_db.h +264 -0
  1745. package/vendor/rocksdb/utilities/blob_db/blob_db_gc_stats.h +54 -0
  1746. package/vendor/rocksdb/utilities/blob_db/blob_db_impl.cc +2185 -0
  1747. package/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +501 -0
  1748. package/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +111 -0
  1749. package/vendor/rocksdb/utilities/blob_db/blob_db_iterator.h +148 -0
  1750. package/vendor/rocksdb/utilities/blob_db/blob_db_listener.h +69 -0
  1751. package/vendor/rocksdb/utilities/blob_db/blob_db_test.cc +2430 -0
  1752. package/vendor/rocksdb/utilities/blob_db/blob_dump_tool.cc +280 -0
  1753. package/vendor/rocksdb/utilities/blob_db/blob_dump_tool.h +56 -0
  1754. package/vendor/rocksdb/utilities/blob_db/blob_file.cc +316 -0
  1755. package/vendor/rocksdb/utilities/blob_db/blob_file.h +244 -0
  1756. package/vendor/rocksdb/utilities/cache_dump_load.cc +67 -0
  1757. package/vendor/rocksdb/utilities/cache_dump_load_impl.cc +369 -0
  1758. package/vendor/rocksdb/utilities/cache_dump_load_impl.h +356 -0
  1759. package/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +106 -0
  1760. package/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +57 -0
  1761. package/vendor/rocksdb/utilities/cassandra/cassandra_format_test.cc +377 -0
  1762. package/vendor/rocksdb/utilities/cassandra/cassandra_functional_test.cc +444 -0
  1763. package/vendor/rocksdb/utilities/cassandra/cassandra_options.h +41 -0
  1764. package/vendor/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +98 -0
  1765. package/vendor/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +164 -0
  1766. package/vendor/rocksdb/utilities/cassandra/format.cc +367 -0
  1767. package/vendor/rocksdb/utilities/cassandra/format.h +183 -0
  1768. package/vendor/rocksdb/utilities/cassandra/merge_operator.cc +80 -0
  1769. package/vendor/rocksdb/utilities/cassandra/merge_operator.h +44 -0
  1770. package/vendor/rocksdb/utilities/cassandra/serialize.h +81 -0
  1771. package/vendor/rocksdb/utilities/cassandra/test_utils.cc +69 -0
  1772. package/vendor/rocksdb/utilities/cassandra/test_utils.h +42 -0
  1773. package/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.cc +470 -0
  1774. package/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.h +64 -0
  1775. package/vendor/rocksdb/utilities/checkpoint/checkpoint_test.cc +988 -0
  1776. package/vendor/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +41 -0
  1777. package/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +24 -0
  1778. package/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +26 -0
  1779. package/vendor/rocksdb/utilities/compaction_filters.cc +52 -0
  1780. package/vendor/rocksdb/utilities/convenience/info_log_finder.cc +26 -0
  1781. package/vendor/rocksdb/utilities/counted_fs.cc +379 -0
  1782. package/vendor/rocksdb/utilities/counted_fs.h +158 -0
  1783. package/vendor/rocksdb/utilities/debug.cc +118 -0
  1784. package/vendor/rocksdb/utilities/env_mirror.cc +273 -0
  1785. package/vendor/rocksdb/utilities/env_mirror_test.cc +216 -0
  1786. package/vendor/rocksdb/utilities/env_timed.cc +181 -0
  1787. package/vendor/rocksdb/utilities/env_timed.h +95 -0
  1788. package/vendor/rocksdb/utilities/env_timed_test.cc +34 -0
  1789. package/vendor/rocksdb/utilities/fault_injection_env.cc +555 -0
  1790. package/vendor/rocksdb/utilities/fault_injection_env.h +258 -0
  1791. package/vendor/rocksdb/utilities/fault_injection_fs.cc +1071 -0
  1792. package/vendor/rocksdb/utilities/fault_injection_fs.h +593 -0
  1793. package/vendor/rocksdb/utilities/fault_injection_secondary_cache.cc +136 -0
  1794. package/vendor/rocksdb/utilities/fault_injection_secondary_cache.h +109 -0
  1795. package/vendor/rocksdb/utilities/leveldb_options/leveldb_options.cc +57 -0
  1796. package/vendor/rocksdb/utilities/memory/memory_test.cc +269 -0
  1797. package/vendor/rocksdb/utilities/memory/memory_util.cc +50 -0
  1798. package/vendor/rocksdb/utilities/memory_allocators.h +103 -0
  1799. package/vendor/rocksdb/utilities/merge_operators/bytesxor.cc +57 -0
  1800. package/vendor/rocksdb/utilities/merge_operators/bytesxor.h +40 -0
  1801. package/vendor/rocksdb/utilities/merge_operators/max.cc +64 -0
  1802. package/vendor/rocksdb/utilities/merge_operators/max_operator.h +35 -0
  1803. package/vendor/rocksdb/utilities/merge_operators/put.cc +74 -0
  1804. package/vendor/rocksdb/utilities/merge_operators/put_operator.h +56 -0
  1805. package/vendor/rocksdb/utilities/merge_operators/sortlist.cc +95 -0
  1806. package/vendor/rocksdb/utilities/merge_operators/sortlist.h +42 -0
  1807. package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.cc +76 -0
  1808. package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.h +32 -0
  1809. package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +130 -0
  1810. package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.h +52 -0
  1811. package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +636 -0
  1812. package/vendor/rocksdb/utilities/merge_operators/uint64add.cc +56 -0
  1813. package/vendor/rocksdb/utilities/merge_operators/uint64add.h +35 -0
  1814. package/vendor/rocksdb/utilities/merge_operators.cc +115 -0
  1815. package/vendor/rocksdb/utilities/merge_operators.h +36 -0
  1816. package/vendor/rocksdb/utilities/object_registry.cc +381 -0
  1817. package/vendor/rocksdb/utilities/object_registry_test.cc +862 -0
  1818. package/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +176 -0
  1819. package/vendor/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +548 -0
  1820. package/vendor/rocksdb/utilities/options/options_util.cc +117 -0
  1821. package/vendor/rocksdb/utilities/options/options_util_test.cc +782 -0
  1822. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.cc +420 -0
  1823. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.h +154 -0
  1824. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +608 -0
  1825. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +291 -0
  1826. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +127 -0
  1827. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +84 -0
  1828. package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +122 -0
  1829. package/vendor/rocksdb/utilities/persistent_cache/hash_table.h +237 -0
  1830. package/vendor/rocksdb/utilities/persistent_cache/hash_table_bench.cc +310 -0
  1831. package/vendor/rocksdb/utilities/persistent_cache/hash_table_evictable.h +166 -0
  1832. package/vendor/rocksdb/utilities/persistent_cache/hash_table_test.cc +161 -0
  1833. package/vendor/rocksdb/utilities/persistent_cache/lrulist.h +172 -0
  1834. package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +355 -0
  1835. package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +413 -0
  1836. package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.h +284 -0
  1837. package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +165 -0
  1838. package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +340 -0
  1839. package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_util.h +67 -0
  1840. package/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +138 -0
  1841. package/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +139 -0
  1842. package/vendor/rocksdb/utilities/simulator_cache/cache_simulator.cc +287 -0
  1843. package/vendor/rocksdb/utilities/simulator_cache/cache_simulator.h +231 -0
  1844. package/vendor/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +497 -0
  1845. package/vendor/rocksdb/utilities/simulator_cache/sim_cache.cc +372 -0
  1846. package/vendor/rocksdb/utilities/simulator_cache/sim_cache_test.cc +226 -0
  1847. package/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +221 -0
  1848. package/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +68 -0
  1849. package/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +238 -0
  1850. package/vendor/rocksdb/utilities/trace/file_trace_reader_writer.cc +133 -0
  1851. package/vendor/rocksdb/utilities/trace/file_trace_reader_writer.h +48 -0
  1852. package/vendor/rocksdb/utilities/trace/replayer_impl.cc +314 -0
  1853. package/vendor/rocksdb/utilities/trace/replayer_impl.h +84 -0
  1854. package/vendor/rocksdb/utilities/transactions/lock/lock_manager.cc +27 -0
  1855. package/vendor/rocksdb/utilities/transactions/lock/lock_manager.h +80 -0
  1856. package/vendor/rocksdb/utilities/transactions/lock/lock_tracker.h +207 -0
  1857. package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +719 -0
  1858. package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +222 -0
  1859. package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +170 -0
  1860. package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +324 -0
  1861. package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +255 -0
  1862. package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +97 -0
  1863. package/vendor/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +34 -0
  1864. package/vendor/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +448 -0
  1865. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.AGPLv3 +661 -0
  1866. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.APACHEv2 +174 -0
  1867. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.GPLv2 +339 -0
  1868. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
  1869. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +76 -0
  1870. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +138 -0
  1871. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +102 -0
  1872. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +137 -0
  1873. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +174 -0
  1874. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +220 -0
  1875. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +141 -0
  1876. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +525 -0
  1877. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +255 -0
  1878. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +1021 -0
  1879. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +580 -0
  1880. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +525 -0
  1881. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +263 -0
  1882. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +178 -0
  1883. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +518 -0
  1884. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +302 -0
  1885. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +118 -0
  1886. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +92 -0
  1887. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +211 -0
  1888. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +124 -0
  1889. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +215 -0
  1890. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +39 -0
  1891. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +130 -0
  1892. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +83 -0
  1893. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +286 -0
  1894. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +87 -0
  1895. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +520 -0
  1896. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +179 -0
  1897. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +197 -0
  1898. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +27 -0
  1899. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +130 -0
  1900. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +151 -0
  1901. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +98 -0
  1902. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +144 -0
  1903. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +199 -0
  1904. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +141 -0
  1905. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +794 -0
  1906. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +1295 -0
  1907. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +165 -0
  1908. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +76 -0
  1909. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +501 -0
  1910. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +135 -0
  1911. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +154 -0
  1912. package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +146 -0
  1913. package/vendor/rocksdb/utilities/transactions/optimistic_transaction.cc +194 -0
  1914. package/vendor/rocksdb/utilities/transactions/optimistic_transaction.h +99 -0
  1915. package/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +109 -0
  1916. package/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +86 -0
  1917. package/vendor/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1479 -0
  1918. package/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +1177 -0
  1919. package/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +311 -0
  1920. package/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +780 -0
  1921. package/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +316 -0
  1922. package/vendor/rocksdb/utilities/transactions/snapshot_checker.cc +37 -0
  1923. package/vendor/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +457 -0
  1924. package/vendor/rocksdb/utilities/transactions/transaction_base.cc +757 -0
  1925. package/vendor/rocksdb/utilities/transactions/transaction_base.h +382 -0
  1926. package/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +133 -0
  1927. package/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +24 -0
  1928. package/vendor/rocksdb/utilities/transactions/transaction_test.cc +6751 -0
  1929. package/vendor/rocksdb/utilities/transactions/transaction_test.h +578 -0
  1930. package/vendor/rocksdb/utilities/transactions/transaction_util.cc +204 -0
  1931. package/vendor/rocksdb/utilities/transactions/transaction_util.h +83 -0
  1932. package/vendor/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +578 -0
  1933. package/vendor/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +4066 -0
  1934. package/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +515 -0
  1935. package/vendor/rocksdb/utilities/transactions/write_prepared_txn.h +117 -0
  1936. package/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +1038 -0
  1937. package/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +1123 -0
  1938. package/vendor/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +779 -0
  1939. package/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +1056 -0
  1940. package/vendor/rocksdb/utilities/transactions/write_unprepared_txn.h +339 -0
  1941. package/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +476 -0
  1942. package/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.h +106 -0
  1943. package/vendor/rocksdb/utilities/ttl/db_ttl_impl.cc +617 -0
  1944. package/vendor/rocksdb/utilities/ttl/db_ttl_impl.h +243 -0
  1945. package/vendor/rocksdb/utilities/ttl/ttl_test.cc +913 -0
  1946. package/vendor/rocksdb/utilities/util_merge_operators_test.cc +100 -0
  1947. package/vendor/rocksdb/utilities/wal_filter.cc +22 -0
  1948. package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +694 -0
  1949. package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +742 -0
  1950. package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +342 -0
  1951. package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +2409 -0
@@ -0,0 +1,2083 @@
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
+ // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
6
+ // Use of this source code is governed by a BSD-style license that can be
7
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
8
+
9
+ #pragma once
10
+
11
+ #include <stddef.h>
12
+ #include <stdint.h>
13
+
14
+ #include <limits>
15
+ #include <memory>
16
+ #include <string>
17
+ #include <unordered_map>
18
+ #include <vector>
19
+
20
+ #include "rocksdb/advanced_options.h"
21
+ #include "rocksdb/comparator.h"
22
+ #include "rocksdb/compression_type.h"
23
+ #include "rocksdb/customizable.h"
24
+ #include "rocksdb/data_structure.h"
25
+ #include "rocksdb/env.h"
26
+ #include "rocksdb/file_checksum.h"
27
+ #include "rocksdb/listener.h"
28
+ #include "rocksdb/sst_partitioner.h"
29
+ #include "rocksdb/types.h"
30
+ #include "rocksdb/universal_compaction.h"
31
+ #include "rocksdb/version.h"
32
+ #include "rocksdb/write_buffer_manager.h"
33
+
34
+ #ifdef max
35
+ #undef max
36
+ #endif
37
+
38
+ namespace ROCKSDB_NAMESPACE {
39
+
40
+ class Cache;
41
+ class CompactionFilter;
42
+ class CompactionFilterFactory;
43
+ class Comparator;
44
+ class ConcurrentTaskLimiter;
45
+ class Env;
46
+ enum InfoLogLevel : unsigned char;
47
+ class SstFileManager;
48
+ class FilterPolicy;
49
+ class Logger;
50
+ class MergeOperator;
51
+ class Snapshot;
52
+ class MemTableRepFactory;
53
+ class RateLimiter;
54
+ class Slice;
55
+ class Statistics;
56
+ class InternalKeyComparator;
57
+ class WalFilter;
58
+ class FileSystem;
59
+
60
+ struct Options;
61
+ struct DbPath;
62
+
63
+ using FileTypeSet = SmallEnumSet<FileType, FileType::kBlobFile>;
64
+
65
+ struct ColumnFamilyOptions : public AdvancedColumnFamilyOptions {
66
+ // The function recovers options to a previous version. Only 4.6 or later
67
+ // versions are supported.
68
+ // NOT MAINTAINED: This function has not been and is not maintained.
69
+ // DEPRECATED: This function might be removed in a future release.
70
+ // In general, defaults are changed to suit broad interests. Opting
71
+ // out of a change on upgrade should be deliberate and considered.
72
+ ColumnFamilyOptions* OldDefaults(int rocksdb_major_version = 4,
73
+ int rocksdb_minor_version = 6);
74
+
75
+ // Some functions that make it easier to optimize RocksDB
76
+ // Use this if your DB is very small (like under 1GB) and you don't want to
77
+ // spend lots of memory for memtables.
78
+ // An optional cache object is passed in to be used as the block cache
79
+ ColumnFamilyOptions* OptimizeForSmallDb(
80
+ std::shared_ptr<Cache>* cache = nullptr);
81
+
82
+ // Use this if you don't need to keep the data sorted, i.e. you'll never use
83
+ // an iterator, only Put() and Get() API calls
84
+ //
85
+ ColumnFamilyOptions* OptimizeForPointLookup(uint64_t block_cache_size_mb);
86
+
87
+ // Default values for some parameters in ColumnFamilyOptions are not
88
+ // optimized for heavy workloads and big datasets, which means you might
89
+ // observe write stalls under some conditions. As a starting point for tuning
90
+ // RocksDB options, use the following two functions:
91
+ // * OptimizeLevelStyleCompaction -- optimizes level style compaction
92
+ // * OptimizeUniversalStyleCompaction -- optimizes universal style compaction
93
+ // Universal style compaction is focused on reducing Write Amplification
94
+ // Factor for big data sets, but increases Space Amplification. You can learn
95
+ // more about the different styles here:
96
+ // https://github.com/facebook/rocksdb/wiki/Rocksdb-Architecture-Guide
97
+ // Make sure to also call IncreaseParallelism(), which will provide the
98
+ // biggest performance gains.
99
+ // Note: we might use more memory than memtable_memory_budget during high
100
+ // write rate period
101
+ ColumnFamilyOptions* OptimizeLevelStyleCompaction(
102
+ uint64_t memtable_memory_budget = 512 * 1024 * 1024);
103
+ ColumnFamilyOptions* OptimizeUniversalStyleCompaction(
104
+ uint64_t memtable_memory_budget = 512 * 1024 * 1024);
105
+
106
+ // -------------------
107
+ // Parameters that affect behavior
108
+
109
+ // Comparator used to define the order of keys in the table.
110
+ // Default: a comparator that uses lexicographic byte-wise ordering
111
+ //
112
+ // REQUIRES: The client must ensure that the comparator supplied
113
+ // here has the same name and orders keys *exactly* the same as the
114
+ // comparator provided to previous open calls on the same DB.
115
+ const Comparator* comparator = BytewiseComparator();
116
+
117
+ // REQUIRES: The client must provide a merge operator if Merge operation
118
+ // needs to be accessed. Calling Merge on a DB without a merge operator
119
+ // would result in Status::NotSupported. The client must ensure that the
120
+ // merge operator supplied here has the same name and *exactly* the same
121
+ // semantics as the merge operator provided to previous open calls on
122
+ // the same DB. The only exception is reserved for upgrade, where a DB
123
+ // previously without a merge operator is introduced to Merge operation
124
+ // for the first time. It's necessary to specify a merge operator when
125
+ // opening the DB in this case.
126
+ // Default: nullptr
127
+ std::shared_ptr<MergeOperator> merge_operator = nullptr;
128
+
129
+ // A single CompactionFilter instance to call into during compaction.
130
+ // Allows an application to modify/delete a key-value during background
131
+ // compaction.
132
+ //
133
+ // If the client requires a new `CompactionFilter` to be used for different
134
+ // compaction runs and/or requires a `CompactionFilter` for table file
135
+ // creations outside of compaction, it can specify compaction_filter_factory
136
+ // instead of this option. The client should specify only one of the two.
137
+ // compaction_filter takes precedence over compaction_filter_factory if
138
+ // client specifies both.
139
+ //
140
+ // If multithreaded compaction is being used, the supplied CompactionFilter
141
+ // instance may be used from different threads concurrently and so should be
142
+ // thread-safe.
143
+ //
144
+ // Default: nullptr
145
+ const CompactionFilter* compaction_filter = nullptr;
146
+
147
+ // This is a factory that provides `CompactionFilter` objects which allow
148
+ // an application to modify/delete a key-value during table file creation.
149
+ //
150
+ // Unlike the `compaction_filter` option, which is used when compaction
151
+ // creates a table file, this factory allows using a `CompactionFilter` when a
152
+ // table file is created for various reasons. The factory can decide what
153
+ // `TableFileCreationReason`s use a `CompactionFilter`. For compatibility, by
154
+ // default the decision is to use a `CompactionFilter` for
155
+ // `TableFileCreationReason::kCompaction` only.
156
+ //
157
+ // Each thread of work involving creating table files will create a new
158
+ // `CompactionFilter` when it will be used according to the above
159
+ // `TableFileCreationReason`-based decision. This allows the application to
160
+ // know about the different ongoing threads of work and makes it unnecessary
161
+ // for `CompactionFilter` to provide thread-safety.
162
+ //
163
+ // Default: nullptr
164
+ std::shared_ptr<CompactionFilterFactory> compaction_filter_factory = nullptr;
165
+
166
+ // -------------------
167
+ // Parameters that affect performance
168
+
169
+ // Amount of data to build up in memory (backed by an unsorted log
170
+ // on disk) before converting to a sorted on-disk file.
171
+ //
172
+ // Larger values increase performance, especially during bulk loads.
173
+ // Up to max_write_buffer_number write buffers may be held in memory
174
+ // at the same time,
175
+ // so you may wish to adjust this parameter to control memory usage.
176
+ // Also, a larger write buffer will result in a longer recovery time
177
+ // the next time the database is opened.
178
+ //
179
+ // Note that write_buffer_size is enforced per column family.
180
+ // See db_write_buffer_size for sharing memory across column families.
181
+ //
182
+ // Default: 64MB
183
+ //
184
+ // Dynamically changeable through SetOptions() API
185
+ size_t write_buffer_size = 64 << 20;
186
+
187
+ // Compress blocks using the specified compression algorithm.
188
+ //
189
+ // Default: kSnappyCompression, if it's supported. If snappy is not linked
190
+ // with the library, the default is kNoCompression.
191
+ //
192
+ // Typical speeds of kSnappyCompression on an Intel(R) Core(TM)2 2.4GHz:
193
+ // ~200-500MB/s compression
194
+ // ~400-800MB/s decompression
195
+ //
196
+ // Note that these speeds are significantly faster than most
197
+ // persistent storage speeds, and therefore it is typically never
198
+ // worth switching to kNoCompression. Even if the input data is
199
+ // incompressible, the kSnappyCompression implementation will
200
+ // efficiently detect that and will switch to uncompressed mode.
201
+ //
202
+ // If you do not set `compression_opts.level`, or set it to
203
+ // `CompressionOptions::kDefaultCompressionLevel`, we will attempt to pick the
204
+ // default corresponding to `compression` as follows:
205
+ //
206
+ // - kZSTD: 3
207
+ // - kZlibCompression: Z_DEFAULT_COMPRESSION (currently -1)
208
+ // - kLZ4HCCompression: 0
209
+ // - For all others, we do not specify a compression level
210
+ //
211
+ // Dynamically changeable through SetOptions() API
212
+ CompressionType compression;
213
+
214
+ // Compression algorithm that will be used for the bottommost level that
215
+ // contain files. The behavior for num_levels = 1 is not well defined.
216
+ // Right now, with num_levels = 1, all compaction outputs will use
217
+ // bottommost_compression and all flush outputs still use options.compression,
218
+ // but the behavior is subject to change.
219
+ //
220
+ // Default: kDisableCompressionOption (Disabled)
221
+ CompressionType bottommost_compression = kDisableCompressionOption;
222
+
223
+ // different options for compression algorithms used by bottommost_compression
224
+ // if it is enabled. To enable it, please see the definition of
225
+ // CompressionOptions. Behavior for num_levels = 1 is the same as
226
+ // options.bottommost_compression.
227
+ CompressionOptions bottommost_compression_opts;
228
+
229
+ // different options for compression algorithms
230
+ CompressionOptions compression_opts;
231
+
232
+ // Number of files to trigger level-0 compaction. A value <0 means that
233
+ // level-0 compaction will not be triggered by number of files at all.
234
+ //
235
+ // Default: 4
236
+ //
237
+ // Dynamically changeable through SetOptions() API
238
+ int level0_file_num_compaction_trigger = 4;
239
+
240
+ // If non-nullptr, use the specified function to put keys in contiguous
241
+ // groups called "prefixes". These prefixes are used to place one
242
+ // representative entry for the group into the Bloom filter
243
+ // rather than an entry for each key (see whole_key_filtering).
244
+ // Under certain conditions, this enables optimizing some range queries
245
+ // (Iterators) in addition to some point lookups (Get/MultiGet).
246
+ //
247
+ // Together `prefix_extractor` and `comparator` must satisfy one essential
248
+ // property for valid prefix filtering of range queries:
249
+ // If Compare(k1, k2) <= 0 and Compare(k2, k3) <= 0 and
250
+ // InDomain(k1) and InDomain(k3) and prefix(k1) == prefix(k3),
251
+ // Then InDomain(k2) and prefix(k2) == prefix(k1)
252
+ //
253
+ // In other words, all keys with the same prefix must be in a contiguous
254
+ // group by comparator order, and cannot be interrupted by keys with no
255
+ // prefix ("out of domain"). (This makes it valid to conclude that no
256
+ // entries within some bounds are present if the upper and lower bounds
257
+ // have a common prefix and no entries with that same prefix are present.)
258
+ //
259
+ // Some other properties are recommended but not strictly required. Under
260
+ // most sensible comparators, the following will need to hold true to
261
+ // satisfy the essential property above:
262
+ // * "Prefix is a prefix": key.starts_with(prefix(key))
263
+ // * "Prefixes preserve ordering": If Compare(k1, k2) <= 0, then
264
+ // Compare(prefix(k1), prefix(k2)) <= 0
265
+ //
266
+ // The next two properties ensure that seeking to a prefix allows
267
+ // enumerating all entries with that prefix:
268
+ // * "Prefix starts the group": Compare(prefix(key), key) <= 0
269
+ // * "Prefix idempotent": prefix(prefix(key)) == prefix(key)
270
+ //
271
+ // Default: nullptr
272
+ std::shared_ptr<const SliceTransform> prefix_extractor = nullptr;
273
+
274
+ // Control maximum total data size for a level.
275
+ // max_bytes_for_level_base is the max total for level-1.
276
+ // Maximum number of bytes for level L can be calculated as
277
+ // (max_bytes_for_level_base) * (max_bytes_for_level_multiplier ^ (L-1))
278
+ // For example, if max_bytes_for_level_base is 200MB, and if
279
+ // max_bytes_for_level_multiplier is 10, total data size for level-1
280
+ // will be 200MB, total file size for level-2 will be 2GB,
281
+ // and total file size for level-3 will be 20GB.
282
+ //
283
+ // Default: 256MB.
284
+ //
285
+ // Dynamically changeable through SetOptions() API
286
+ uint64_t max_bytes_for_level_base = 256 * 1048576;
287
+
288
+ // Deprecated.
289
+ uint64_t snap_refresh_nanos = 0;
290
+
291
+ // Disable automatic compactions. Manual compactions can still
292
+ // be issued on this column family
293
+ //
294
+ // Dynamically changeable through SetOptions() API
295
+ bool disable_auto_compactions = false;
296
+
297
+ // This is a factory that provides TableFactory objects.
298
+ // Default: a block-based table factory that provides a default
299
+ // implementation of TableBuilder and TableReader with default
300
+ // BlockBasedTableOptions.
301
+ std::shared_ptr<TableFactory> table_factory;
302
+
303
+ // A list of paths where SST files for this column family
304
+ // can be put into, with its target size. Similar to db_paths,
305
+ // newer data is placed into paths specified earlier in the
306
+ // vector while older data gradually moves to paths specified
307
+ // later in the vector.
308
+ // Note that, if a path is supplied to multiple column
309
+ // families, it would have files and total size from all
310
+ // the column families combined. User should provision for the
311
+ // total size(from all the column families) in such cases.
312
+ //
313
+ // If left empty, db_paths will be used.
314
+ // Default: empty
315
+ std::vector<DbPath> cf_paths;
316
+
317
+ // Compaction concurrent thread limiter for the column family.
318
+ // If non-nullptr, use given concurrent thread limiter to control
319
+ // the max outstanding compaction tasks. Limiter can be shared with
320
+ // multiple column families across db instances.
321
+ //
322
+ // Default: nullptr
323
+ std::shared_ptr<ConcurrentTaskLimiter> compaction_thread_limiter = nullptr;
324
+
325
+ // If non-nullptr, use the specified factory for a function to determine the
326
+ // partitioning of sst files. This helps compaction to split the files
327
+ // on interesting boundaries (key prefixes) to make propagation of sst
328
+ // files less write amplifying (covering the whole key space).
329
+ // THE FEATURE IS STILL EXPERIMENTAL
330
+ //
331
+ // Default: nullptr
332
+ std::shared_ptr<SstPartitionerFactory> sst_partitioner_factory = nullptr;
333
+
334
+ // Create ColumnFamilyOptions with default values for all fields
335
+ ColumnFamilyOptions();
336
+ // Create ColumnFamilyOptions from Options
337
+ explicit ColumnFamilyOptions(const Options& options);
338
+
339
+ void Dump(Logger* log) const;
340
+ };
341
+
342
+ enum class WALRecoveryMode : char {
343
+ // Original levelDB recovery
344
+ //
345
+ // We tolerate the last record in any log to be incomplete due to a crash
346
+ // while writing it. Zeroed bytes from preallocation are also tolerated in the
347
+ // trailing data of any log.
348
+ //
349
+ // Use case: Applications for which updates, once applied, must not be rolled
350
+ // back even after a crash-recovery. In this recovery mode, RocksDB guarantees
351
+ // this as long as `WritableFile::Append()` writes are durable. In case the
352
+ // user needs the guarantee in more situations (e.g., when
353
+ // `WritableFile::Append()` writes to page cache, but the user desires this
354
+ // guarantee in face of power-loss crash-recovery), RocksDB offers various
355
+ // mechanisms to additionally invoke `WritableFile::Sync()` in order to
356
+ // strengthen the guarantee.
357
+ //
358
+ // This differs from `kPointInTimeRecovery` in that, in case a corruption is
359
+ // detected during recovery, this mode will refuse to open the DB. Whereas,
360
+ // `kPointInTimeRecovery` will stop recovery just before the corruption since
361
+ // that is a valid point-in-time to which to recover.
362
+ kTolerateCorruptedTailRecords = 0x00,
363
+ // Recover from clean shutdown
364
+ // We don't expect to find any corruption in the WAL
365
+ // Use case : This is ideal for unit tests and rare applications that
366
+ // can require high consistency guarantee
367
+ kAbsoluteConsistency = 0x01,
368
+ // Recover to point-in-time consistency (default)
369
+ // We stop the WAL playback on discovering WAL inconsistency
370
+ // Use case : Ideal for systems that have disk controller cache like
371
+ // hard disk, SSD without super capacitor that store related data
372
+ kPointInTimeRecovery = 0x02,
373
+ // Recovery after a disaster
374
+ // We ignore any corruption in the WAL and try to salvage as much data as
375
+ // possible
376
+ // Use case : Ideal for last ditch effort to recover data or systems that
377
+ // operate with low grade unrelated data
378
+ kSkipAnyCorruptedRecords = 0x03,
379
+ };
380
+
381
+ struct DbPath {
382
+ std::string path;
383
+ uint64_t target_size; // Target size of total files under the path, in byte.
384
+
385
+ DbPath() : target_size(0) {}
386
+ DbPath(const std::string& p, uint64_t t) : path(p), target_size(t) {}
387
+ };
388
+
389
+ extern const char* kHostnameForDbHostId;
390
+
391
+ enum class CompactionServiceJobStatus : char {
392
+ kSuccess,
393
+ kFailure,
394
+ kUseLocal,
395
+ };
396
+
397
+ struct CompactionServiceJobInfo {
398
+ std::string db_name;
399
+ std::string db_id;
400
+ std::string db_session_id;
401
+ uint64_t job_id; // job_id is only unique within the current DB and session,
402
+ // restart DB will reset the job_id. `db_id` and
403
+ // `db_session_id` could help you build unique id across
404
+ // different DBs and sessions.
405
+
406
+ Env::Priority priority;
407
+
408
+ CompactionServiceJobInfo(std::string db_name_, std::string db_id_,
409
+ std::string db_session_id_, uint64_t job_id_,
410
+ Env::Priority priority_)
411
+ : db_name(std::move(db_name_)),
412
+ db_id(std::move(db_id_)),
413
+ db_session_id(std::move(db_session_id_)),
414
+ job_id(job_id_),
415
+ priority(priority_) {}
416
+ };
417
+
418
+ // Exceptions MUST NOT propagate out of overridden functions into RocksDB,
419
+ // because RocksDB is not exception-safe. This could cause undefined behavior
420
+ // including data loss, unreported corruption, deadlocks, and more.
421
+ class CompactionService : public Customizable {
422
+ public:
423
+ static const char* Type() { return "CompactionService"; }
424
+
425
+ // Returns the name of this compaction service.
426
+ const char* Name() const override = 0;
427
+
428
+ // Start the remote compaction with `compaction_service_input`, which can be
429
+ // passed to `DB::OpenAndCompact()` on the remote side. `info` provides the
430
+ // information the user might want to know, which includes `job_id`.
431
+ virtual CompactionServiceJobStatus StartV2(
432
+ const CompactionServiceJobInfo& /*info*/,
433
+ const std::string& /*compaction_service_input*/) {
434
+ return CompactionServiceJobStatus::kUseLocal;
435
+ }
436
+
437
+ // Wait for remote compaction to finish.
438
+ virtual CompactionServiceJobStatus WaitForCompleteV2(
439
+ const CompactionServiceJobInfo& /*info*/,
440
+ std::string* /*compaction_service_result*/) {
441
+ return CompactionServiceJobStatus::kUseLocal;
442
+ }
443
+
444
+ ~CompactionService() override = default;
445
+ };
446
+
447
+ struct DBOptions {
448
+ // The function recovers options to the option as in version 4.6.
449
+ // NOT MAINTAINED: This function has not been and is not maintained.
450
+ // DEPRECATED: This function might be removed in a future release.
451
+ // In general, defaults are changed to suit broad interests. Opting
452
+ // out of a change on upgrade should be deliberate and considered.
453
+ DBOptions* OldDefaults(int rocksdb_major_version = 4,
454
+ int rocksdb_minor_version = 6);
455
+
456
+ // Some functions that make it easier to optimize RocksDB
457
+
458
+ // Use this if your DB is very small (like under 1GB) and you don't want to
459
+ // spend lots of memory for memtables.
460
+ // An optional cache object is passed in for the memory of the
461
+ // memtable to cost to
462
+ DBOptions* OptimizeForSmallDb(std::shared_ptr<Cache>* cache = nullptr);
463
+
464
+ // By default, RocksDB uses only one background thread for flush and
465
+ // compaction. Calling this function will set it up such that total of
466
+ // `total_threads` is used. Good value for `total_threads` is the number of
467
+ // cores. You almost definitely want to call this function if your system is
468
+ // bottlenecked by RocksDB.
469
+ DBOptions* IncreaseParallelism(int total_threads = 16);
470
+
471
+ // If true, the database will be created if it is missing.
472
+ // Default: false
473
+ bool create_if_missing = false;
474
+
475
+ // If true, missing column families will be automatically created.
476
+ // Default: false
477
+ bool create_missing_column_families = false;
478
+
479
+ // If true, an error is raised if the database already exists.
480
+ // Default: false
481
+ bool error_if_exists = false;
482
+
483
+ // If true, RocksDB will aggressively check consistency of the data.
484
+ // Also, if any of the writes to the database fails (Put, Delete, Merge,
485
+ // Write), the database will switch to read-only mode and fail all other
486
+ // Write operations.
487
+ // In most cases you want this to be set to true.
488
+ // Default: true
489
+ bool paranoid_checks = true;
490
+
491
+ // If true, during memtable flush, RocksDB will validate total entries
492
+ // read in flush, and compare with counter inserted into it.
493
+ // The option is here to turn the feature off in case this new validation
494
+ // feature has a bug.
495
+ // Default: true
496
+ bool flush_verify_memtable_count = true;
497
+
498
+ // If true, the log numbers and sizes of the synced WALs are tracked
499
+ // in MANIFEST. During DB recovery, if a synced WAL is missing
500
+ // from disk, or the WAL's size does not match the recorded size in
501
+ // MANIFEST, an error will be reported and the recovery will be aborted.
502
+ //
503
+ // This is one additional protection against WAL corruption besides the
504
+ // per-WAL-entry checksum.
505
+ //
506
+ // Note that this option does not work with secondary instance.
507
+ // Currently, only syncing closed WALs are tracked. Calling `DB::SyncWAL()`,
508
+ // etc. or writing with `WriteOptions::sync=true` to sync the live WAL is not
509
+ // tracked for performance/efficiency reasons.
510
+ //
511
+ // Default: false
512
+ bool track_and_verify_wals_in_manifest = false;
513
+
514
+ // If true, verifies the SST unique id between MANIFEST and actual file
515
+ // each time an SST file is opened. This check ensures an SST file is not
516
+ // overwritten or misplaced. A corruption error will be reported if mismatch
517
+ // detected, but only when MANIFEST tracks the unique id, which starts from
518
+ // RocksDB version 7.3. Although the tracked internal unique id is related
519
+ // to the one returned by GetUniqueIdFromTableProperties, that is subject to
520
+ // change.
521
+ // NOTE: verification is currently only done on SST files using block-based
522
+ // table format.
523
+ //
524
+ // Setting to false should only be needed in case of unexpected problems.
525
+ //
526
+ // Although an early version of this option opened all SST files for
527
+ // verification on DB::Open, that is no longer guaranteed. However, as
528
+ // documented in an above option, if max_open_files is -1, DB will open all
529
+ // files on DB::Open().
530
+ //
531
+ // Default: true
532
+ bool verify_sst_unique_id_in_manifest = true;
533
+
534
+ // Use the specified object to interact with the environment,
535
+ // e.g. to read/write files, schedule background work, etc. In the near
536
+ // future, support for doing storage operations such as read/write files
537
+ // through env will be deprecated in favor of file_system (see below)
538
+ // Default: Env::Default()
539
+ Env* env = Env::Default();
540
+
541
+ // Limits internal file read/write bandwidth:
542
+ //
543
+ // - Flush requests write bandwidth at `Env::IOPriority::IO_HIGH`
544
+ // - Compaction requests read and write bandwidth at
545
+ // `Env::IOPriority::IO_LOW`
546
+ // - Reads associated with a `ReadOptions` can be charged at
547
+ // `ReadOptions::rate_limiter_priority` (see that option's API doc for usage
548
+ // and limitations).
549
+ // - Writes associated with a `WriteOptions` can be charged at
550
+ // `WriteOptions::rate_limiter_priority` (see that option's API doc for
551
+ // usage and limitations).
552
+ //
553
+ // Rate limiting is disabled if nullptr. If rate limiter is enabled,
554
+ // bytes_per_sync is set to 1MB by default.
555
+ //
556
+ // Default: nullptr
557
+ std::shared_ptr<RateLimiter> rate_limiter = nullptr;
558
+
559
+ // Use to track SST files and control their file deletion rate.
560
+ //
561
+ // Features:
562
+ // - Throttle the deletion rate of the SST files.
563
+ // - Keep track the total size of all SST files.
564
+ // - Set a maximum allowed space limit for SST files that when reached
565
+ // the DB wont do any further flushes or compactions and will set the
566
+ // background error.
567
+ // - Can be shared between multiple dbs.
568
+ // Limitations:
569
+ // - Only track and throttle deletes of SST files in
570
+ // first db_path (db_name if db_paths is empty).
571
+ //
572
+ // Default: nullptr
573
+ std::shared_ptr<SstFileManager> sst_file_manager = nullptr;
574
+
575
+ // Any internal progress/error information generated by the db will
576
+ // be written to info_log if it is non-nullptr, or to a file stored
577
+ // in the same directory as the DB contents if info_log is nullptr.
578
+ // Default: nullptr
579
+ std::shared_ptr<Logger> info_log = nullptr;
580
+
581
+ #ifdef NDEBUG
582
+ InfoLogLevel info_log_level = INFO_LEVEL;
583
+ #else
584
+ InfoLogLevel info_log_level = DEBUG_LEVEL;
585
+ #endif // NDEBUG
586
+
587
+ // Number of open files that can be used by the DB. You may need to
588
+ // increase this if your database has a large working set. Value -1 means
589
+ // files opened are always kept open. You can estimate number of files based
590
+ // on target_file_size_base and target_file_size_multiplier for level-based
591
+ // compaction. For universal-style compaction, you can usually set it to -1.
592
+ //
593
+ // A high value or -1 for this option can cause high memory usage.
594
+ // See BlockBasedTableOptions::cache_usage_options to constrain
595
+ // memory usage in case of block based table format.
596
+ //
597
+ // Default: -1
598
+ //
599
+ // Dynamically changeable through SetDBOptions() API.
600
+ int max_open_files = -1;
601
+
602
+ // If max_open_files is -1, DB will open all files on DB::Open(). You can
603
+ // use this option to increase the number of threads used to open the files.
604
+ // Default: 16
605
+ int max_file_opening_threads = 16;
606
+
607
+ // Once write-ahead logs exceed this size, we will start forcing the flush of
608
+ // column families whose memtables are backed by the oldest live WAL file
609
+ // (i.e. the ones that are causing all the space amplification). If set to 0
610
+ // (default), we will dynamically choose the WAL size limit to be
611
+ // [sum of all write_buffer_size * max_write_buffer_number] * 4
612
+ //
613
+ // For example, with 15 column families, each with
614
+ // write_buffer_size = 128 MB
615
+ // max_write_buffer_number = 6
616
+ // max_total_wal_size will be calculated to be [15 * 128MB * 6] * 4 = 45GB
617
+ //
618
+ // The RocksDB wiki has some discussion about how the WAL interacts
619
+ // with memtables and flushing of column families.
620
+ // https://github.com/facebook/rocksdb/wiki/Column-Families
621
+ //
622
+ // This option takes effect only when there are more than one column
623
+ // family as otherwise the wal size is dictated by the write_buffer_size.
624
+ //
625
+ // Default: 0
626
+ //
627
+ // Dynamically changeable through SetDBOptions() API.
628
+ uint64_t max_total_wal_size = 0;
629
+
630
+ // If non-null, then we should collect metrics about database operations
631
+ std::shared_ptr<Statistics> statistics = nullptr;
632
+
633
+ // By default, writes to stable storage use fdatasync (on platforms
634
+ // where this function is available). If this option is true,
635
+ // fsync is used instead.
636
+ //
637
+ // fsync and fdatasync are equally safe for our purposes and fdatasync is
638
+ // faster, so it is rarely necessary to set this option. It is provided
639
+ // as a workaround for kernel/filesystem bugs, such as one that affected
640
+ // fdatasync with ext4 in kernel versions prior to 3.7.
641
+ bool use_fsync = false;
642
+
643
+ // A list of paths where SST files can be put into, with its target size.
644
+ // Newer data is placed into paths specified earlier in the vector while
645
+ // older data gradually moves to paths specified later in the vector.
646
+ //
647
+ // For example, you have a flash device with 10GB allocated for the DB,
648
+ // as well as a hard drive of 2TB, you should config it to be:
649
+ // [{"/flash_path", 10GB}, {"/hard_drive", 2TB}]
650
+ //
651
+ // The system will try to guarantee data under each path is close to but
652
+ // not larger than the target size. But current and future file sizes used
653
+ // by determining where to place a file are based on best-effort estimation,
654
+ // which means there is a chance that the actual size under the directory
655
+ // is slightly more than target size under some workloads. User should give
656
+ // some buffer room for those cases.
657
+ //
658
+ // If none of the paths has sufficient room to place a file, the file will
659
+ // be placed to the last path anyway, despite to the target size.
660
+ //
661
+ // Placing newer data to earlier paths is also best-efforts. User should
662
+ // expect user files to be placed in higher levels in some extreme cases.
663
+ //
664
+ // If left empty, only one path will be used, which is db_name passed when
665
+ // opening the DB.
666
+ // Default: empty
667
+ std::vector<DbPath> db_paths;
668
+
669
+ // This specifies the info LOG dir.
670
+ // If it is empty, the log files will be in the same dir as data.
671
+ // If it is non empty, the log files will be in the specified dir,
672
+ // and the db data dir's absolute path will be used as the log file
673
+ // name's prefix.
674
+ std::string db_log_dir = "";
675
+
676
+ // This specifies the absolute dir path for write-ahead logs (WAL).
677
+ // If it is empty, the log files will be in the same dir as data,
678
+ // dbname is used as the data dir by default
679
+ // If it is non empty, the log files will be in kept the specified dir.
680
+ // When destroying the db,
681
+ // all log files in wal_dir and the dir itself is deleted
682
+ std::string wal_dir = "";
683
+
684
+ // The periodicity when obsolete files get deleted. The default
685
+ // value is 6 hours. The files that get out of scope by compaction
686
+ // process will still get automatically delete on every compaction,
687
+ // regardless of this setting
688
+ //
689
+ // Default: 6 hours
690
+ //
691
+ // Dynamically changeable through SetDBOptions() API.
692
+ uint64_t delete_obsolete_files_period_micros = 6ULL * 60 * 60 * 1000000;
693
+
694
+ // Maximum number of concurrent background jobs (compactions and flushes).
695
+ //
696
+ // Default: 2
697
+ //
698
+ // Dynamically changeable through SetDBOptions() API.
699
+ int max_background_jobs = 2;
700
+
701
+ // DEPRECATED: RocksDB automatically decides this based on the
702
+ // value of max_background_jobs. For backwards compatibility we will set
703
+ // `max_background_jobs = max_background_compactions + max_background_flushes`
704
+ // in the case where user sets at least one of `max_background_compactions` or
705
+ // `max_background_flushes` (we replace -1 by 1 in case one option is unset).
706
+ //
707
+ // Maximum number of concurrent background compaction jobs, submitted to
708
+ // the default LOW priority thread pool.
709
+ //
710
+ // If you're increasing this, also consider increasing number of threads in
711
+ // LOW priority thread pool. For more information, see
712
+ // Env::SetBackgroundThreads
713
+ //
714
+ // Default: -1
715
+ //
716
+ // Dynamically changeable through SetDBOptions() API.
717
+ int max_background_compactions = -1;
718
+
719
+ // This value represents the maximum number of threads that will
720
+ // concurrently perform a compaction job by breaking it into multiple,
721
+ // smaller ones that are run simultaneously.
722
+ // Default: 1 (i.e. no subcompactions)
723
+ //
724
+ // Dynamically changeable through SetDBOptions() API.
725
+ uint32_t max_subcompactions = 1;
726
+
727
+ // DEPRECATED: RocksDB automatically decides this based on the
728
+ // value of max_background_jobs. For backwards compatibility we will set
729
+ // `max_background_jobs = max_background_compactions + max_background_flushes`
730
+ // in the case where user sets at least one of `max_background_compactions` or
731
+ // `max_background_flushes`.
732
+ //
733
+ // Maximum number of concurrent background memtable flush jobs, submitted by
734
+ // default to the HIGH priority thread pool. If the HIGH priority thread pool
735
+ // is configured to have zero threads, flush jobs will share the LOW priority
736
+ // thread pool with compaction jobs.
737
+ //
738
+ // It is important to use both thread pools when the same Env is shared by
739
+ // multiple db instances. Without a separate pool, long running compaction
740
+ // jobs could potentially block memtable flush jobs of other db instances,
741
+ // leading to unnecessary Put stalls.
742
+ //
743
+ // If you're increasing this, also consider increasing number of threads in
744
+ // HIGH priority thread pool. For more information, see
745
+ // Env::SetBackgroundThreads
746
+ // Default: -1
747
+ int max_background_flushes = -1;
748
+
749
+ // Specify the maximal size of the info log file. If the log file
750
+ // is larger than `max_log_file_size`, a new info log file will
751
+ // be created.
752
+ // If max_log_file_size == 0, all logs will be written to one
753
+ // log file.
754
+ size_t max_log_file_size = 0;
755
+
756
+ // Time for the info log file to roll (in seconds).
757
+ // If specified with non-zero value, log file will be rolled
758
+ // if it has been active longer than `log_file_time_to_roll`.
759
+ // Default: 0 (disabled)
760
+ size_t log_file_time_to_roll = 0;
761
+
762
+ // Maximal info log files to be kept.
763
+ // Default: 1000
764
+ size_t keep_log_file_num = 1000;
765
+
766
+ // Recycle log files.
767
+ // If non-zero, we will reuse previously written log files for new
768
+ // logs, overwriting the old data. The value indicates how many
769
+ // such files we will keep around at any point in time for later
770
+ // use. This is more efficient because the blocks are already
771
+ // allocated and fdatasync does not need to update the inode after
772
+ // each write.
773
+ // Default: 0
774
+ size_t recycle_log_file_num = 0;
775
+
776
+ // manifest file is rolled over on reaching this limit.
777
+ // The older manifest file be deleted.
778
+ // The default value is 1GB so that the manifest file can grow, but not
779
+ // reach the limit of storage capacity.
780
+ uint64_t max_manifest_file_size = 1024 * 1024 * 1024;
781
+
782
+ // Number of shards used for table cache.
783
+ int table_cache_numshardbits = 6;
784
+
785
+ // The following two fields affect how archived logs will be deleted.
786
+ // 1. If both set to 0, logs will be deleted asap and will not get into
787
+ // the archive.
788
+ // 2. If WAL_ttl_seconds is 0 and WAL_size_limit_MB is not 0,
789
+ // WAL files will be checked every 10 min and if total size is greater
790
+ // then WAL_size_limit_MB, they will be deleted starting with the
791
+ // earliest until size_limit is met. All empty files will be deleted.
792
+ // 3. If WAL_ttl_seconds is not 0 and WAL_size_limit_MB is 0, then
793
+ // WAL files will be checked every WAL_ttl_seconds / 2 and those that
794
+ // are older than WAL_ttl_seconds will be deleted.
795
+ // 4. If both are not 0, WAL files will be checked every 10 min and both
796
+ // checks will be performed with ttl being first.
797
+ uint64_t WAL_ttl_seconds = 0;
798
+ uint64_t WAL_size_limit_MB = 0;
799
+
800
+ // Number of bytes to preallocate (via fallocate) the manifest
801
+ // files. Default is 4mb, which is reasonable to reduce random IO
802
+ // as well as prevent overallocation for mounts that preallocate
803
+ // large amounts of data (such as xfs's allocsize option).
804
+ size_t manifest_preallocation_size = 4 * 1024 * 1024;
805
+
806
+ // Allow the OS to mmap file for reading sst tables.
807
+ // Not recommended for 32-bit OS.
808
+ // When the option is set to true and compression is disabled, the blocks
809
+ // will not be copied and will be read directly from the mmap-ed memory
810
+ // area, and the block will not be inserted into the block cache. However,
811
+ // checksums will still be checked if ReadOptions.verify_checksums is set
812
+ // to be true. It means a checksum check every time a block is read, more
813
+ // than the setup where the option is set to false and the block cache is
814
+ // used. The common use of the options is to run RocksDB on ramfs, where
815
+ // checksum verification is usually not needed.
816
+ // Default: false
817
+ bool allow_mmap_reads = false;
818
+
819
+ // Allow the OS to mmap file for writing.
820
+ // DB::SyncWAL() only works if this is set to false.
821
+ // Default: false
822
+ bool allow_mmap_writes = false;
823
+
824
+ // Enable direct I/O mode for read/write
825
+ // they may or may not improve performance depending on the use case
826
+ //
827
+ // Files will be opened in "direct I/O" mode
828
+ // which means that data r/w from the disk will not be cached or
829
+ // buffered. The hardware buffer of the devices may however still
830
+ // be used. Memory mapped files are not impacted by these parameters.
831
+
832
+ // Use O_DIRECT for user and compaction reads.
833
+ // Default: false
834
+ bool use_direct_reads = false;
835
+
836
+ // Use O_DIRECT for writes in background flush and compactions.
837
+ // Default: false
838
+ bool use_direct_io_for_flush_and_compaction = false;
839
+
840
+ // If false, fallocate() calls are bypassed, which disables file
841
+ // preallocation. The file space preallocation is used to increase the file
842
+ // write/append performance. By default, RocksDB preallocates space for WAL,
843
+ // SST, Manifest files, the extra space is truncated when the file is written.
844
+ // Warning: if you're using btrfs, we would recommend setting
845
+ // `allow_fallocate=false` to disable preallocation. As on btrfs, the extra
846
+ // allocated space cannot be freed, which could be significant if you have
847
+ // lots of files. More details about this limitation:
848
+ // https://github.com/btrfs/btrfs-dev-docs/blob/471c5699336e043114d4bca02adcd57d9dab9c44/data-extent-reference-counts.md
849
+ bool allow_fallocate = true;
850
+
851
+ // Disable child process inherit open files. Default: true
852
+ bool is_fd_close_on_exec = true;
853
+
854
+ // if not zero, dump rocksdb.stats to LOG every stats_dump_period_sec
855
+ //
856
+ // Default: 600 (10 min)
857
+ //
858
+ // Dynamically changeable through SetDBOptions() API.
859
+ unsigned int stats_dump_period_sec = 600;
860
+
861
+ // if not zero, dump rocksdb.stats to RocksDB every stats_persist_period_sec
862
+ // Default: 600
863
+ unsigned int stats_persist_period_sec = 600;
864
+
865
+ // If true, automatically persist stats to a hidden column family (column
866
+ // family name: ___rocksdb_stats_history___) every
867
+ // stats_persist_period_sec seconds; otherwise, write to an in-memory
868
+ // struct. User can query through `GetStatsHistory` API.
869
+ // If user attempts to create a column family with the same name on a DB
870
+ // which have previously set persist_stats_to_disk to true, the column family
871
+ // creation will fail, but the hidden column family will survive, as well as
872
+ // the previously persisted statistics.
873
+ // When peristing stats to disk, the stat name will be limited at 100 bytes.
874
+ // Default: false
875
+ bool persist_stats_to_disk = false;
876
+
877
+ // if not zero, periodically take stats snapshots and store in memory, the
878
+ // memory size for stats snapshots is capped at stats_history_buffer_size
879
+ // Default: 1MB
880
+ size_t stats_history_buffer_size = 1024 * 1024;
881
+
882
+ // If set true, will hint the underlying file system that the file
883
+ // access pattern is random, when a sst file is opened.
884
+ // Default: true
885
+ bool advise_random_on_open = true;
886
+
887
+ // Amount of data to build up in memtables across all column
888
+ // families before writing to disk.
889
+ //
890
+ // This is distinct from write_buffer_size, which enforces a limit
891
+ // for a single memtable.
892
+ //
893
+ // This feature is disabled by default. Specify a non-zero value
894
+ // to enable it.
895
+ //
896
+ // Default: 0 (disabled)
897
+ size_t db_write_buffer_size = 0;
898
+
899
+ // The memory usage of memtable will report to this object. The same object
900
+ // can be passed into multiple DBs and it will track the sum of size of all
901
+ // the DBs. If the total size of all live memtables of all the DBs exceeds
902
+ // a limit, a flush will be triggered in the next DB to which the next write
903
+ // is issued, as long as there is one or more column family not already
904
+ // flushing.
905
+ //
906
+ // If the object is only passed to one DB, the behavior is the same as
907
+ // db_write_buffer_size. When write_buffer_manager is set, the value set will
908
+ // override db_write_buffer_size.
909
+ //
910
+ // This feature is disabled by default. Specify a non-zero value
911
+ // to enable it.
912
+ //
913
+ // Default: null
914
+ std::shared_ptr<WriteBufferManager> write_buffer_manager = nullptr;
915
+
916
+ // Specify the file access pattern once a compaction is started.
917
+ // It will be applied to all input files of a compaction.
918
+ // Default: NORMAL
919
+ enum AccessHint { NONE, NORMAL, SEQUENTIAL, WILLNEED };
920
+ AccessHint access_hint_on_compaction_start = NORMAL;
921
+
922
+ // If non-zero, we perform bigger reads when doing compaction. If you're
923
+ // running RocksDB on spinning disks, you should set this to at least 2MB.
924
+ // That way RocksDB's compaction is doing sequential instead of random reads.
925
+ //
926
+ // Default: 0
927
+ //
928
+ // Dynamically changeable through SetDBOptions() API.
929
+ size_t compaction_readahead_size = 0;
930
+
931
+ // This is a maximum buffer size that is used by WinMmapReadableFile in
932
+ // unbuffered disk I/O mode. We need to maintain an aligned buffer for
933
+ // reads. We allow the buffer to grow until the specified value and then
934
+ // for bigger requests allocate one shot buffers. In unbuffered mode we
935
+ // always bypass read-ahead buffer at ReadaheadRandomAccessFile
936
+ // When read-ahead is required we then make use of compaction_readahead_size
937
+ // value and always try to read ahead. With read-ahead we always
938
+ // pre-allocate buffer to the size instead of growing it up to a limit.
939
+ //
940
+ // This option is currently honored only on Windows
941
+ //
942
+ // Default: 1 Mb
943
+ //
944
+ // Special value: 0 - means do not maintain per instance buffer. Allocate
945
+ // per request buffer and avoid locking.
946
+ size_t random_access_max_buffer_size = 1024 * 1024;
947
+
948
+ // This is the maximum buffer size that is used by WritableFileWriter.
949
+ // With direct IO, we need to maintain an aligned buffer for writes.
950
+ // We allow the buffer to grow until it's size hits the limit in buffered
951
+ // IO and fix the buffer size when using direct IO to ensure alignment of
952
+ // write requests if the logical sector size is unusual
953
+ //
954
+ // Default: 1024 * 1024 (1 MB)
955
+ //
956
+ // Dynamically changeable through SetDBOptions() API.
957
+ size_t writable_file_max_buffer_size = 1024 * 1024;
958
+
959
+ // Use adaptive mutex, which spins in the user space before resorting
960
+ // to kernel. This could reduce context switch when the mutex is not
961
+ // heavily contended. However, if the mutex is hot, we could end up
962
+ // wasting spin time.
963
+ // Default: false
964
+ bool use_adaptive_mutex = false;
965
+
966
+ // Create DBOptions with default values for all fields
967
+ DBOptions();
968
+ // Create DBOptions from Options
969
+ explicit DBOptions(const Options& options);
970
+
971
+ void Dump(Logger* log) const;
972
+
973
+ // Allows OS to incrementally sync files to disk while they are being
974
+ // written, asynchronously, in the background. This operation can be used
975
+ // to smooth out write I/Os over time. Users shouldn't rely on it for
976
+ // persistence guarantee.
977
+ // Issue one request for every bytes_per_sync written. 0 turns it off.
978
+ //
979
+ // You may consider using rate_limiter to regulate write rate to device.
980
+ // When rate limiter is enabled, it automatically enables bytes_per_sync
981
+ // to 1MB.
982
+ //
983
+ // This option applies to table files
984
+ //
985
+ // Default: 0, turned off
986
+ //
987
+ // Note: DOES NOT apply to WAL files. See wal_bytes_per_sync instead
988
+ // Dynamically changeable through SetDBOptions() API.
989
+ uint64_t bytes_per_sync = 0;
990
+
991
+ // Same as bytes_per_sync, but applies to WAL files
992
+ //
993
+ // Default: 0, turned off
994
+ //
995
+ // Dynamically changeable through SetDBOptions() API.
996
+ uint64_t wal_bytes_per_sync = 0;
997
+
998
+ // When true, guarantees WAL files have at most `wal_bytes_per_sync`
999
+ // bytes submitted for writeback at any given time, and SST files have at most
1000
+ // `bytes_per_sync` bytes pending writeback at any given time. This can be
1001
+ // used to handle cases where processing speed exceeds I/O speed during file
1002
+ // generation, which can lead to a huge sync when the file is finished, even
1003
+ // with `bytes_per_sync` / `wal_bytes_per_sync` properly configured.
1004
+ //
1005
+ // - If `sync_file_range` is supported it achieves this by waiting for any
1006
+ // prior `sync_file_range`s to finish before proceeding. In this way,
1007
+ // processing (compression, etc.) can proceed uninhibited in the gap
1008
+ // between `sync_file_range`s, and we block only when I/O falls behind.
1009
+ // - Otherwise the `WritableFile::Sync` method is used. Note this mechanism
1010
+ // always blocks, thus preventing the interleaving of I/O and processing.
1011
+ //
1012
+ // Note: Enabling this option does not provide any additional persistence
1013
+ // guarantees, as it may use `sync_file_range`, which does not write out
1014
+ // metadata.
1015
+ //
1016
+ // Default: false
1017
+ bool strict_bytes_per_sync = false;
1018
+
1019
+ // A vector of EventListeners whose callback functions will be called
1020
+ // when specific RocksDB event happens.
1021
+ std::vector<std::shared_ptr<EventListener>> listeners;
1022
+
1023
+ // If true, then the status of the threads involved in this DB will
1024
+ // be tracked and available via GetThreadList() API.
1025
+ //
1026
+ // Default: false
1027
+ bool enable_thread_tracking = false;
1028
+
1029
+ // The limited write rate to DB if soft_pending_compaction_bytes_limit or
1030
+ // level0_slowdown_writes_trigger is triggered, or we are writing to the
1031
+ // last mem table allowed and we allow more than 3 mem tables. It is
1032
+ // calculated using size of user write requests before compression.
1033
+ // RocksDB may decide to slow down more if the compaction still
1034
+ // gets behind further.
1035
+ // If the value is 0, we will infer a value from `rater_limiter` value
1036
+ // if it is not empty, or 16MB if `rater_limiter` is empty. Note that
1037
+ // if users change the rate in `rate_limiter` after DB is opened,
1038
+ // `delayed_write_rate` won't be adjusted.
1039
+ //
1040
+ // Unit: byte per second.
1041
+ //
1042
+ // Default: 0
1043
+ //
1044
+ // Dynamically changeable through SetDBOptions() API.
1045
+ uint64_t delayed_write_rate = 0;
1046
+
1047
+ // By default, a single write thread queue is maintained. The thread gets
1048
+ // to the head of the queue becomes write batch group leader and responsible
1049
+ // for writing to WAL and memtable for the batch group.
1050
+ //
1051
+ // If enable_pipelined_write is true, separate write thread queue is
1052
+ // maintained for WAL write and memtable write. A write thread first enter WAL
1053
+ // writer queue and then memtable writer queue. Pending thread on the WAL
1054
+ // writer queue thus only have to wait for previous writers to finish their
1055
+ // WAL writing but not the memtable writing. Enabling the feature may improve
1056
+ // write throughput and reduce latency of the prepare phase of two-phase
1057
+ // commit.
1058
+ //
1059
+ // Default: false
1060
+ bool enable_pipelined_write = false;
1061
+
1062
+ // Setting unordered_write to true trades higher write throughput with
1063
+ // relaxing the immutability guarantee of snapshots. This violates the
1064
+ // repeatability one expects from ::Get from a snapshot, as well as
1065
+ // ::MultiGet and Iterator's consistent-point-in-time view property.
1066
+ // If the application cannot tolerate the relaxed guarantees, it can implement
1067
+ // its own mechanisms to work around that and yet benefit from the higher
1068
+ // throughput. Using TransactionDB with WRITE_PREPARED write policy and
1069
+ // two_write_queues=true is one way to achieve immutable snapshots despite
1070
+ // unordered_write.
1071
+ //
1072
+ // By default, i.e., when it is false, rocksdb does not advance the sequence
1073
+ // number for new snapshots unless all the writes with lower sequence numbers
1074
+ // are already finished. This provides the immutability that we except from
1075
+ // snapshots. Moreover, since Iterator and MultiGet internally depend on
1076
+ // snapshots, the snapshot immutability results into Iterator and MultiGet
1077
+ // offering consistent-point-in-time view. If set to true, although
1078
+ // Read-Your-Own-Write property is still provided, the snapshot immutability
1079
+ // property is relaxed: the writes issued after the snapshot is obtained (with
1080
+ // larger sequence numbers) will be still not visible to the reads from that
1081
+ // snapshot, however, there still might be pending writes (with lower sequence
1082
+ // number) that will change the state visible to the snapshot after they are
1083
+ // landed to the memtable.
1084
+ //
1085
+ // Default: false
1086
+ bool unordered_write = false;
1087
+
1088
+ // If true, allow multi-writers to update mem tables in parallel.
1089
+ // Only some memtable_factory-s support concurrent writes; currently it
1090
+ // is implemented only for SkipListFactory. Concurrent memtable writes
1091
+ // are not compatible with inplace_update_support or filter_deletes.
1092
+ // It is strongly recommended to set enable_write_thread_adaptive_yield
1093
+ // if you are going to use this feature.
1094
+ //
1095
+ // Default: true
1096
+ bool allow_concurrent_memtable_write = true;
1097
+
1098
+ // If true, threads synchronizing with the write batch group leader will
1099
+ // wait for up to write_thread_max_yield_usec before blocking on a mutex.
1100
+ // This can substantially improve throughput for concurrent workloads,
1101
+ // regardless of whether allow_concurrent_memtable_write is enabled.
1102
+ //
1103
+ // Default: true
1104
+ bool enable_write_thread_adaptive_yield = true;
1105
+
1106
+ // The maximum limit of number of bytes that are written in a single batch
1107
+ // of WAL or memtable write. It is followed when the leader write size
1108
+ // is larger than 1/8 of this limit.
1109
+ //
1110
+ // Default: 1 MB
1111
+ uint64_t max_write_batch_group_size_bytes = 1 << 20;
1112
+
1113
+ // The maximum number of microseconds that a write operation will use
1114
+ // a yielding spin loop to coordinate with other write threads before
1115
+ // blocking on a mutex. (Assuming write_thread_slow_yield_usec is
1116
+ // set properly) increasing this value is likely to increase RocksDB
1117
+ // throughput at the expense of increased CPU usage.
1118
+ //
1119
+ // Default: 100
1120
+ uint64_t write_thread_max_yield_usec = 100;
1121
+
1122
+ // The latency in microseconds after which a std::this_thread::yield
1123
+ // call (sched_yield on Linux) is considered to be a signal that
1124
+ // other processes or threads would like to use the current core.
1125
+ // Increasing this makes writer threads more likely to take CPU
1126
+ // by spinning, which will show up as an increase in the number of
1127
+ // involuntary context switches.
1128
+ //
1129
+ // Default: 3
1130
+ uint64_t write_thread_slow_yield_usec = 3;
1131
+
1132
+ // If true, then DB::Open() will not update the statistics used to optimize
1133
+ // compaction decision by loading table properties from many files.
1134
+ // Turning off this feature will improve DBOpen time especially in
1135
+ // disk environment.
1136
+ //
1137
+ // Default: false
1138
+ bool skip_stats_update_on_db_open = false;
1139
+
1140
+ // If true, then DB::Open() will not fetch and check sizes of all sst files.
1141
+ // This may significantly speed up startup if there are many sst files,
1142
+ // especially when using non-default Env with expensive GetFileSize().
1143
+ // We'll still check that all required sst files exist.
1144
+ // If paranoid_checks is false, this option is ignored, and sst files are
1145
+ // not checked at all.
1146
+ //
1147
+ // Default: false
1148
+ bool skip_checking_sst_file_sizes_on_db_open = false;
1149
+
1150
+ // Recovery mode to control the consistency while replaying WAL
1151
+ // Default: kPointInTimeRecovery
1152
+ WALRecoveryMode wal_recovery_mode = WALRecoveryMode::kPointInTimeRecovery;
1153
+
1154
+ // if set to false then recovery will fail when a prepared
1155
+ // transaction is encountered in the WAL
1156
+ bool allow_2pc = false;
1157
+
1158
+ // A global cache for table-level rows.
1159
+ // Default: nullptr (disabled)
1160
+ std::shared_ptr<GeneralCache> row_cache = nullptr;
1161
+
1162
+ // A filter object supplied to be invoked while processing write-ahead-logs
1163
+ // (WALs) during recovery. The filter provides a way to inspect log
1164
+ // records, ignoring a particular record or skipping replay.
1165
+ // The filter is invoked at startup and is invoked from a single-thread
1166
+ // currently.
1167
+ WalFilter* wal_filter = nullptr;
1168
+
1169
+ // If true, then DB::Open / CreateColumnFamily / DropColumnFamily
1170
+ // SetOptions will fail if options file is not properly persisted.
1171
+ //
1172
+ // DEFAULT: false
1173
+ bool fail_if_options_file_error = false;
1174
+
1175
+ // If true, then print malloc stats together with rocksdb.stats
1176
+ // when printing to LOG.
1177
+ // DEFAULT: false
1178
+ bool dump_malloc_stats = false;
1179
+
1180
+ // By default RocksDB replay WAL logs and flush them on DB open, which may
1181
+ // create very small SST files. If this option is enabled, RocksDB will try
1182
+ // to avoid (but not guarantee not to) flush during recovery. Also, existing
1183
+ // WAL logs will be kept, so that if crash happened before flush, we still
1184
+ // have logs to recover from.
1185
+ //
1186
+ // DEFAULT: false
1187
+ bool avoid_flush_during_recovery = false;
1188
+
1189
+ // By default RocksDB will flush all memtables on DB close if there are
1190
+ // unpersisted data (i.e. with WAL disabled) The flush can be skip to speedup
1191
+ // DB close. Unpersisted data WILL BE LOST.
1192
+ //
1193
+ // DEFAULT: false
1194
+ //
1195
+ // Dynamically changeable through SetDBOptions() API.
1196
+ bool avoid_flush_during_shutdown = false;
1197
+
1198
+ // Set this option to true during creation of database if you want
1199
+ // to be able to ingest behind (call IngestExternalFile() skipping keys
1200
+ // that already exist, rather than overwriting matching keys).
1201
+ // Setting this option to true will affect 2 things:
1202
+ // 1) Disable some internal optimizations around SST file compression
1203
+ // 2) Reserve bottom-most level for ingested files only.
1204
+ // Note that only universal compaction supports reserving last level
1205
+ // for file ingestion only.
1206
+ // `num_levels` should be >= 3 if this option is turned on.
1207
+ //
1208
+ //
1209
+ // DEFAULT: false
1210
+ // Immutable.
1211
+ bool allow_ingest_behind = false;
1212
+
1213
+ // If enabled it uses two queues for writes, one for the ones with
1214
+ // disable_memtable and one for the ones that also write to memtable. This
1215
+ // allows the memtable writes not to lag behind other writes. It can be used
1216
+ // to optimize MySQL 2PC in which only the commits, which are serial, write to
1217
+ // memtable.
1218
+ bool two_write_queues = false;
1219
+
1220
+ // If true WAL is not flushed automatically after each write. Instead it
1221
+ // relies on manual invocation of FlushWAL to write the WAL buffer to its
1222
+ // file.
1223
+ bool manual_wal_flush = false;
1224
+
1225
+ // This feature is WORK IN PROGRESS
1226
+ // If enabled WAL records will be compressed before they are written.
1227
+ // Only zstd is supported. Compressed WAL records will be read in supported
1228
+ // versions regardless of the wal_compression settings.
1229
+ CompressionType wal_compression = kNoCompression;
1230
+
1231
+ // If true, RocksDB supports flushing multiple column families and committing
1232
+ // their results atomically to MANIFEST. Note that it is not
1233
+ // necessary to set atomic_flush to true if WAL is always enabled since WAL
1234
+ // allows the database to be restored to the last persistent state in WAL.
1235
+ // This option is useful when there are column families with writes NOT
1236
+ // protected by WAL.
1237
+ // For manual flush, application has to specify which column families to
1238
+ // flush atomically in DB::Flush.
1239
+ // For auto-triggered flush, RocksDB atomically flushes ALL column families.
1240
+ //
1241
+ // Currently, any WAL-enabled writes after atomic flush may be replayed
1242
+ // independently if the process crashes later and tries to recover.
1243
+ bool atomic_flush = false;
1244
+
1245
+ // If true, working thread may avoid doing unnecessary and long-latency
1246
+ // operation (such as deleting obsolete files directly or deleting memtable)
1247
+ // and will instead schedule a background job to do it.
1248
+ // Use it if you're latency-sensitive.
1249
+ // If set to true, takes precedence over
1250
+ // ReadOptions::background_purge_on_iterator_cleanup.
1251
+ bool avoid_unnecessary_blocking_io = false;
1252
+
1253
+ // Historically DB ID has always been stored in Identity File in DB folder.
1254
+ // If this flag is true, the DB ID is written to Manifest file in addition
1255
+ // to the Identity file. By doing this 2 problems are solved
1256
+ // 1. We don't checksum the Identity file where as Manifest file is.
1257
+ // 2. Since the source of truth for DB is Manifest file DB ID will sit with
1258
+ // the source of truth. Previously the Identity file could be copied
1259
+ // independent of Manifest and that can result in wrong DB ID.
1260
+ // We recommend setting this flag to true.
1261
+ // Default: false
1262
+ bool write_dbid_to_manifest = false;
1263
+
1264
+ // The number of bytes to prefetch when reading the log. This is mostly useful
1265
+ // for reading a remotely located log, as it can save the number of
1266
+ // round-trips. If 0, then the prefetching is disabled.
1267
+ //
1268
+ // Default: 0
1269
+ size_t log_readahead_size = 0;
1270
+
1271
+ // If user does NOT provide the checksum generator factory, the file checksum
1272
+ // will NOT be used. A new file checksum generator object will be created
1273
+ // when a SST file is created. Therefore, each created FileChecksumGenerator
1274
+ // will only be used from a single thread and so does not need to be
1275
+ // thread-safe.
1276
+ //
1277
+ // Default: nullptr
1278
+ std::shared_ptr<FileChecksumGenFactory> file_checksum_gen_factory = nullptr;
1279
+
1280
+ // By default, RocksDB will attempt to detect any data losses or corruptions
1281
+ // in DB files and return an error to the user, either at DB::Open time or
1282
+ // later during DB operation. The exception to this policy is the WAL file,
1283
+ // whose recovery is controlled by the wal_recovery_mode option.
1284
+ //
1285
+ // Best-efforts recovery (this option set to true) signals a preference for
1286
+ // opening the DB to any point-in-time valid state for each column family,
1287
+ // including the empty/new state, versus the default of returning non-WAL
1288
+ // data losses to the user as errors. In terms of RocksDB user data, this
1289
+ // is like applying WALRecoveryMode::kPointInTimeRecovery to each column
1290
+ // family rather than just the WAL.
1291
+ //
1292
+ // Best-efforts recovery (BER) is specifically designed to recover a DB with
1293
+ // files that are missing or truncated to some smaller size, such as the
1294
+ // result of an incomplete DB "physical" (FileSystem) copy. BER can also
1295
+ // detect when an SST file has been replaced with a different one of the
1296
+ // same size (assuming SST unique IDs are tracked in DB manifest).
1297
+ // BER is not yet designed to produce a usable DB from other corruptions to
1298
+ // DB files (which should generally be detectable by DB::VerifyChecksum()),
1299
+ // and BER does not yet attempt to recover any WAL files.
1300
+ //
1301
+ // For example, if an SST or blob file referenced by the MANIFEST is missing,
1302
+ // BER might be able to find a set of files corresponding to an old "point in
1303
+ // time" version of the column family, possibly from an older MANIFEST
1304
+ // file. Some other kinds of DB files (e.g. CURRENT, LOCK, IDENTITY) are
1305
+ // either ignored or replaced with BER, or quietly fixed regardless of BER
1306
+ // setting. BER does require at least one valid MANIFEST to recover to a
1307
+ // non-trivial DB state, unlike `ldb repair`.
1308
+ //
1309
+ // Currently, best_efforts_recovery=true is not compatible with atomic flush.
1310
+ //
1311
+ // Default: false
1312
+ bool best_efforts_recovery = false;
1313
+
1314
+ // It defines how many times DB::Resume() is called by a separate thread when
1315
+ // background retryable IO Error happens. When background retryable IO
1316
+ // Error happens, SetBGError is called to deal with the error. If the error
1317
+ // can be auto-recovered (e.g., retryable IO Error during Flush or WAL write),
1318
+ // then db resume is called in background to recover from the error. If this
1319
+ // value is 0 or negative, DB::Resume() will not be called automatically.
1320
+ //
1321
+ // Default: INT_MAX
1322
+ int max_bgerror_resume_count = INT_MAX;
1323
+
1324
+ // If max_bgerror_resume_count is >= 2, db resume is called multiple times.
1325
+ // This option decides how long to wait to retry the next resume if the
1326
+ // previous resume fails and satisfy redo resume conditions.
1327
+ //
1328
+ // Default: 1000000 (microseconds).
1329
+ uint64_t bgerror_resume_retry_interval = 1000000;
1330
+
1331
+ // It allows user to opt-in to get error messages containing corrupted
1332
+ // keys/values. Corrupt keys, values will be logged in the
1333
+ // messages/logs/status that will help users with the useful information
1334
+ // regarding affected data. By default value is set false to prevent users
1335
+ // data to be exposed in the logs/messages etc.
1336
+ //
1337
+ // Default: false
1338
+ bool allow_data_in_errors = false;
1339
+
1340
+ // A string identifying the machine hosting the DB. This
1341
+ // will be written as a property in every SST file written by the DB (or
1342
+ // by offline writers such as SstFileWriter and RepairDB). It can be useful
1343
+ // for troubleshooting in memory corruption caused by a failing host when
1344
+ // writing a file, by tracing back to the writing host. These corruptions
1345
+ // may not be caught by the checksum since they happen before checksumming.
1346
+ // If left as default, the table writer will substitute it with the actual
1347
+ // hostname when writing the SST file. If set to an empty string, the
1348
+ // property will not be written to the SST file.
1349
+ //
1350
+ // Default: hostname
1351
+ std::string db_host_id = kHostnameForDbHostId;
1352
+
1353
+ // Use this if your DB want to enable checksum handoff for specific file
1354
+ // types writes. Make sure that the File_system you use support the
1355
+ // crc32c checksum verification
1356
+ // Currently supported file tyes: kWALFile, kTableFile, kDescriptorFile.
1357
+ // NOTE: currently RocksDB only generates crc32c based checksum for the
1358
+ // handoff. If the storage layer has different checksum support, user
1359
+ // should enble this set as empty. Otherwise,it may cause unexpected
1360
+ // write failures.
1361
+ FileTypeSet checksum_handoff_file_types;
1362
+
1363
+ // EXPERIMENTAL
1364
+ // CompactionService is a feature allows the user to run compactions on a
1365
+ // different host or process, which offloads the background load from the
1366
+ // primary host.
1367
+ // It's an experimental feature, the interface will be changed without
1368
+ // backward/forward compatibility support for now. Some known issues are still
1369
+ // under development.
1370
+ std::shared_ptr<CompactionService> compaction_service = nullptr;
1371
+
1372
+ // It indicates, which lowest cache tier we want to
1373
+ // use for a certain DB. Currently we support volatile_tier and
1374
+ // non_volatile_tier. They are layered. By setting it to kVolatileTier, only
1375
+ // the block cache (current implemented volatile_tier) is used. So
1376
+ // cache entries will not spill to secondary cache (current
1377
+ // implemented non_volatile_tier), and block cache lookup misses will not
1378
+ // lookup in the secondary cache. When kNonVolatileBlockTier is used, we use
1379
+ // both block cache and secondary cache.
1380
+ //
1381
+ // Default: kNonVolatileBlockTier
1382
+ CacheTier lowest_used_cache_tier = CacheTier::kNonVolatileBlockTier;
1383
+
1384
+ // If set to false, when compaction or flush sees a SingleDelete followed by
1385
+ // a Delete for the same user key, compaction job will not fail.
1386
+ // Otherwise, compaction job will fail.
1387
+ // This is a temporary option to help existing use cases migrate, and
1388
+ // will be removed in a future release.
1389
+ // Warning: do not set to false unless you are trying to migrate existing
1390
+ // data in which the contract of single delete
1391
+ // (https://github.com/facebook/rocksdb/wiki/Single-Delete) is not enforced,
1392
+ // thus has Delete mixed with SingleDelete for the same user key. Violation
1393
+ // of the contract leads to undefined behaviors with high possibility of data
1394
+ // inconsistency, e.g. deleted old data become visible again, etc.
1395
+ bool enforce_single_del_contracts = true;
1396
+ };
1397
+
1398
+ // Options to control the behavior of a database (passed to DB::Open)
1399
+ struct Options : public DBOptions, public ColumnFamilyOptions {
1400
+ // Create an Options object with default values for all fields.
1401
+ Options() : DBOptions(), ColumnFamilyOptions() {}
1402
+
1403
+ Options(const DBOptions& db_options,
1404
+ const ColumnFamilyOptions& column_family_options)
1405
+ : DBOptions(db_options), ColumnFamilyOptions(column_family_options) {}
1406
+
1407
+ // Change to some default settings from an older version.
1408
+ // NOT MAINTAINED: This function has not been and is not maintained.
1409
+ // DEPRECATED: This function might be removed in a future release.
1410
+ // In general, defaults are changed to suit broad interests. Opting
1411
+ // out of a change on upgrade should be deliberate and considered.
1412
+ Options* OldDefaults(int rocksdb_major_version = 4,
1413
+ int rocksdb_minor_version = 6);
1414
+
1415
+ void Dump(Logger* log) const;
1416
+
1417
+ void DumpCFOptions(Logger* log) const;
1418
+
1419
+ // Some functions that make it easier to optimize RocksDB
1420
+
1421
+ // Set appropriate parameters for bulk loading.
1422
+ // The reason that this is a function that returns "this" instead of a
1423
+ // constructor is to enable chaining of multiple similar calls in the future.
1424
+ //
1425
+
1426
+ // All data will be in level 0 without any automatic compaction.
1427
+ // It's recommended to manually call CompactRange(NULL, NULL) before reading
1428
+ // from the database, because otherwise the read can be very slow.
1429
+ Options* PrepareForBulkLoad();
1430
+
1431
+ // Use this if your DB is very small (like under 1GB) and you don't want to
1432
+ // spend lots of memory for memtables.
1433
+ Options* OptimizeForSmallDb();
1434
+
1435
+ // Disable some checks that should not be necessary in the absence of
1436
+ // software logic errors or CPU+memory hardware errors. This can improve
1437
+ // write speeds but is only recommended for temporary use. Does not
1438
+ // change protection against corrupt storage (e.g. verify_checksums).
1439
+ Options* DisableExtraChecks();
1440
+ };
1441
+
1442
+ // An application can issue a read request (via Get/Iterators) and specify
1443
+ // if that read should process data that ALREADY resides on a specified cache
1444
+ // level. For example, if an application specifies kBlockCacheTier then the
1445
+ // Get call will process data that is already processed in the memtable or
1446
+ // the block cache. It will not page in data from the OS cache or data that
1447
+ // resides in storage.
1448
+ enum ReadTier {
1449
+ kReadAllTier = 0x0, // data in memtable, block cache, OS cache or storage
1450
+ kBlockCacheTier = 0x1, // data in memtable or block cache
1451
+ kPersistedTier = 0x2, // persisted data. When WAL is disabled, this option
1452
+ // will skip data in memtable.
1453
+ // Note that this ReadTier currently only supports
1454
+ // Get and MultiGet and does not support iterators.
1455
+ kMemtableTier = 0x3 // data in memtable. used for memtable-only iterators.
1456
+ };
1457
+
1458
+ // Options that control read operations
1459
+ struct ReadOptions {
1460
+ // *** BEGIN options relevant to point lookups as well as scans ***
1461
+
1462
+ // If "snapshot" is non-nullptr, read as of the supplied snapshot
1463
+ // (which must belong to the DB that is being read and which must
1464
+ // not have been released). If "snapshot" is nullptr, use an implicit
1465
+ // snapshot of the state at the beginning of this read operation.
1466
+ const Snapshot* snapshot = nullptr;
1467
+
1468
+ // Timestamp of operation. Read should return the latest data visible to the
1469
+ // specified timestamp. All timestamps of the same database must be of the
1470
+ // same length and format. The user is responsible for providing a customized
1471
+ // compare function via Comparator to order <key, timestamp> tuples.
1472
+ // For iterator, iter_start_ts is the lower bound (older) and timestamp
1473
+ // serves as the upper bound. Versions of the same record that fall in
1474
+ // the timestamp range will be returned. If iter_start_ts is nullptr,
1475
+ // only the most recent version visible to timestamp is returned.
1476
+ // The user-specified timestamp feature is still under active development,
1477
+ // and the API is subject to change.
1478
+ const Slice* timestamp = nullptr;
1479
+ const Slice* iter_start_ts = nullptr;
1480
+
1481
+ // Deadline for completing an API call (Get/MultiGet/Seek/Next for now)
1482
+ // in microseconds.
1483
+ // It should be set to microseconds since epoch, i.e, gettimeofday or
1484
+ // equivalent plus allowed duration in microseconds. The best way is to use
1485
+ // env->NowMicros() + some timeout.
1486
+ // This is best efforts. The call may exceed the deadline if there is IO
1487
+ // involved and the file system doesn't support deadlines, or due to
1488
+ // checking for deadline periodically rather than for every key if
1489
+ // processing a batch
1490
+ std::chrono::microseconds deadline = std::chrono::microseconds::zero();
1491
+
1492
+ // A timeout in microseconds to be passed to the underlying FileSystem for
1493
+ // reads. As opposed to deadline, this determines the timeout for each
1494
+ // individual file read request. If a MultiGet/Get/Seek/Next etc call
1495
+ // results in multiple reads, each read can last up to io_timeout us.
1496
+ std::chrono::microseconds io_timeout = std::chrono::microseconds::zero();
1497
+
1498
+ // Specify if this read request should process data that ALREADY
1499
+ // resides on a particular cache. If the required data is not
1500
+ // found at the specified cache, then Status::Incomplete is returned.
1501
+ ReadTier read_tier = kReadAllTier;
1502
+
1503
+ // For file reads associated with this option, charge the internal rate
1504
+ // limiter (see `DBOptions::rate_limiter`) at the specified priority. The
1505
+ // special value `Env::IO_TOTAL` disables charging the rate limiter.
1506
+ //
1507
+ // The rate limiting is bypassed no matter this option's value for file reads
1508
+ // on plain tables (these can exist when `ColumnFamilyOptions::table_factory`
1509
+ // is a `PlainTableFactory`) and cuckoo tables (these can exist when
1510
+ // `ColumnFamilyOptions::table_factory` is a `CuckooTableFactory`).
1511
+ //
1512
+ // The bytes charged to rate limiter may not exactly match the file read bytes
1513
+ // since there are some seemingly insignificant reads, like for file
1514
+ // headers/footers, that we currently do not charge to rate limiter.
1515
+ Env::IOPriority rate_limiter_priority = Env::IO_TOTAL;
1516
+
1517
+ // It limits the maximum cumulative value size of the keys in batch while
1518
+ // reading through MultiGet. Once the cumulative value size exceeds this
1519
+ // soft limit then all the remaining keys are returned with status Aborted.
1520
+ uint64_t value_size_soft_limit = std::numeric_limits<uint64_t>::max();
1521
+
1522
+ // If true, all data read from underlying storage will be
1523
+ // verified against corresponding checksums.
1524
+ bool verify_checksums = true;
1525
+
1526
+ // Should the "data block"/"index block" read for this iteration be placed in
1527
+ // block cache?
1528
+ // Callers may wish to set this field to false for bulk scans.
1529
+ // This would help not to the change eviction order of existing items in the
1530
+ // block cache.
1531
+ bool fill_cache = true;
1532
+
1533
+ // If true, range tombstones handling will be skipped in key lookup paths.
1534
+ // For DB instances that don't use DeleteRange() calls, this setting can
1535
+ // be used to optimize the read performance.
1536
+ // Note that, if this assumption (of no previous DeleteRange() calls) is
1537
+ // broken, stale keys could be served in read paths.
1538
+ bool ignore_range_deletions = false;
1539
+
1540
+ // Experimental
1541
+ //
1542
+ // If async_io is enabled, RocksDB will prefetch some of data asynchronously.
1543
+ // RocksDB apply it if reads are sequential and its internal automatic
1544
+ // prefetching.
1545
+ bool async_io = false;
1546
+
1547
+ // Experimental
1548
+ //
1549
+ // If async_io is set, then this flag controls whether we read SST files
1550
+ // in multiple levels asynchronously. Enabling this flag can help reduce
1551
+ // MultiGet latency by maximizing the number of SST files read in
1552
+ // parallel if the keys in the MultiGet batch are in different levels. It
1553
+ // comes at the expense of slightly higher CPU overhead.
1554
+ bool optimize_multiget_for_io = true;
1555
+
1556
+ // *** END options relevant to point lookups (as well as scans) ***
1557
+ // *** BEGIN options only relevant to iterators or scans ***
1558
+
1559
+ // RocksDB does auto-readahead for iterators on noticing more than two reads
1560
+ // for a table file. The readahead starts at 8KB and doubles on every
1561
+ // additional read up to 256KB.
1562
+ // This option can help if most of the range scans are large, and if it is
1563
+ // determined that a larger readahead than that enabled by auto-readahead is
1564
+ // needed.
1565
+ // Using a large readahead size (> 2MB) can typically improve the performance
1566
+ // of forward iteration on spinning disks.
1567
+ size_t readahead_size = 0;
1568
+
1569
+ // A threshold for the number of keys that can be skipped before failing an
1570
+ // iterator seek as incomplete. The default value of 0 should be used to
1571
+ // never fail a request as incomplete, even on skipping too many keys.
1572
+ uint64_t max_skippable_internal_keys = 0;
1573
+
1574
+ // `iterate_lower_bound` defines the smallest key at which the backward
1575
+ // iterator can return an entry. Once the bound is passed, Valid() will be
1576
+ // false. `iterate_lower_bound` is inclusive ie the bound value is a valid
1577
+ // entry.
1578
+ //
1579
+ // If prefix_extractor is not null, the Seek target and `iterate_lower_bound`
1580
+ // need to have the same prefix. This is because ordering is not guaranteed
1581
+ // outside of prefix domain.
1582
+ //
1583
+ // In case of user_defined timestamp, if enabled, iterate_lower_bound should
1584
+ // point to key without timestamp part.
1585
+ const Slice* iterate_lower_bound = nullptr;
1586
+
1587
+ // "iterate_upper_bound" defines the extent up to which the forward iterator
1588
+ // can return entries. Once the bound is reached, Valid() will be false.
1589
+ // "iterate_upper_bound" is exclusive ie the bound value is
1590
+ // not a valid entry. If prefix_extractor is not null:
1591
+ // 1. If options.auto_prefix_mode = true, iterate_upper_bound will be used
1592
+ // to infer whether prefix iterating (e.g. applying prefix bloom filter)
1593
+ // can be used within RocksDB. This is done by comparing
1594
+ // iterate_upper_bound with the seek key.
1595
+ // 2. If options.auto_prefix_mode = false, iterate_upper_bound only takes
1596
+ // effect if it shares the same prefix as the seek key. If
1597
+ // iterate_upper_bound is outside the prefix of the seek key, then keys
1598
+ // returned outside the prefix range will be undefined, just as if
1599
+ // iterate_upper_bound = null.
1600
+ // If iterate_upper_bound is not null, SeekToLast() will position the iterator
1601
+ // at the first key smaller than iterate_upper_bound.
1602
+ //
1603
+ // In case of user_defined timestamp, if enabled, iterate_upper_bound should
1604
+ // point to key without timestamp part.
1605
+ const Slice* iterate_upper_bound = nullptr;
1606
+
1607
+ // Specify to create a tailing iterator -- a special iterator that has a
1608
+ // view of the complete database (i.e. it can also be used to read newly
1609
+ // added data) and is optimized for sequential reads. It will return records
1610
+ // that were inserted into the database after the creation of the iterator.
1611
+ bool tailing = false;
1612
+
1613
+ // This options is not used anymore. It was to turn on a functionality that
1614
+ // has been removed. DEPRECATED
1615
+ bool managed = false;
1616
+
1617
+ // Enable a total order seek regardless of index format (e.g. hash index)
1618
+ // used in the table. Some table format (e.g. plain table) may not support
1619
+ // this option.
1620
+ // If true when calling Get(), we also skip prefix bloom when reading from
1621
+ // block based table, which only affects Get() performance.
1622
+ bool total_order_seek = false;
1623
+
1624
+ // When true, by default use total_order_seek = true, and RocksDB can
1625
+ // selectively enable prefix seek mode if won't generate a different result
1626
+ // from total_order_seek, based on seek key, and iterator upper bound.
1627
+ // BUG: Using Comparator::IsSameLengthImmediateSuccessor and
1628
+ // SliceTransform::FullLengthEnabled to enable prefix mode in cases where
1629
+ // prefix of upper bound differs from prefix of seek key has a flaw.
1630
+ // If present in the DB, "short keys" (shorter than "full length" prefix)
1631
+ // can be omitted from auto_prefix_mode iteration when they would be present
1632
+ // in total_order_seek iteration, regardless of whether the short keys are
1633
+ // "in domain" of the prefix extractor. This is not an issue if no short
1634
+ // keys are added to DB or are not expected to be returned by such
1635
+ // iterators. (We are also assuming the new condition on
1636
+ // IsSameLengthImmediateSuccessor is satisfied; see its BUG section).
1637
+ // A bug example is in DBTest2::AutoPrefixMode1, search for "BUG".
1638
+ bool auto_prefix_mode = false;
1639
+
1640
+ // Enforce that the iterator only iterates over the same prefix as the seek.
1641
+ // This option is effective only for prefix seeks, i.e. prefix_extractor is
1642
+ // non-null for the column family and total_order_seek is false. Unlike
1643
+ // iterate_upper_bound, prefix_same_as_start only works within a prefix
1644
+ // but in both directions.
1645
+ bool prefix_same_as_start = false;
1646
+
1647
+ // Keep the blocks loaded by the iterator pinned in memory as long as the
1648
+ // iterator is not deleted, If used when reading from tables created with
1649
+ // BlockBasedTableOptions::use_delta_encoding = false,
1650
+ // Iterator's property "rocksdb.iterator.is-key-pinned" is guaranteed to
1651
+ // return 1.
1652
+ bool pin_data = false;
1653
+
1654
+ // For iterators, RocksDB does auto-readahead on noticing more than two
1655
+ // sequential reads for a table file if user doesn't provide readahead_size.
1656
+ // The readahead starts at 8KB and doubles on every additional read upto
1657
+ // max_auto_readahead_size only when reads are sequential. However at each
1658
+ // level, if iterator moves over next file, readahead_size starts again from
1659
+ // 8KB.
1660
+ //
1661
+ // By enabling this option, RocksDB will do some enhancements for
1662
+ // prefetching the data.
1663
+ bool adaptive_readahead = false;
1664
+
1665
+ // If true, when PurgeObsoleteFile is called in CleanupIteratorState, we
1666
+ // schedule a background job in the flush job queue and delete obsolete files
1667
+ // in background.
1668
+ bool background_purge_on_iterator_cleanup = false;
1669
+
1670
+ // A callback to determine whether relevant keys for this scan exist in a
1671
+ // given table based on the table's properties. The callback is passed the
1672
+ // properties of each table during iteration. If the callback returns false,
1673
+ // the table will not be scanned. This option only affects Iterators and has
1674
+ // no impact on point lookups.
1675
+ // Default: empty (every table will be scanned)
1676
+ std::function<bool(const TableProperties&)> table_filter;
1677
+
1678
+ // *** END options only relevant to iterators or scans ***
1679
+
1680
+ // ** For RocksDB internal use only **
1681
+ Env::IOActivity io_activity = Env::IOActivity::kUnknown;
1682
+
1683
+ ReadOptions() {}
1684
+ ReadOptions(bool _verify_checksums, bool _fill_cache);
1685
+ explicit ReadOptions(Env::IOActivity _io_activity);
1686
+ };
1687
+
1688
+ // Options that control write operations
1689
+ struct WriteOptions {
1690
+ // If true, the write will be flushed from the operating system
1691
+ // buffer cache (by calling WritableFile::Sync()) before the write
1692
+ // is considered complete. If this flag is true, writes will be
1693
+ // slower.
1694
+ //
1695
+ // If this flag is false, and the machine crashes, some recent
1696
+ // writes may be lost. Note that if it is just the process that
1697
+ // crashes (i.e., the machine does not reboot), no writes will be
1698
+ // lost even if sync==false.
1699
+ //
1700
+ // In other words, a DB write with sync==false has similar
1701
+ // crash semantics as the "write()" system call. A DB write
1702
+ // with sync==true has similar crash semantics to a "write()"
1703
+ // system call followed by "fdatasync()".
1704
+ //
1705
+ // Default: false
1706
+ bool sync;
1707
+
1708
+ // If true, writes will not first go to the write ahead log,
1709
+ // and the write may get lost after a crash. The backup engine
1710
+ // relies on write-ahead logs to back up the memtable, so if
1711
+ // you disable write-ahead logs, you must create backups with
1712
+ // flush_before_backup=true to avoid losing unflushed memtable data.
1713
+ // Default: false
1714
+ bool disableWAL;
1715
+
1716
+ // If true and if user is trying to write to column families that don't exist
1717
+ // (they were dropped), ignore the write (don't return an error). If there
1718
+ // are multiple writes in a WriteBatch, other writes will succeed.
1719
+ // Default: false
1720
+ bool ignore_missing_column_families;
1721
+
1722
+ // If true and we need to wait or sleep for the write request, fails
1723
+ // immediately with Status::Incomplete().
1724
+ // Default: false
1725
+ bool no_slowdown;
1726
+
1727
+ // If true, this write request is of lower priority if compaction is
1728
+ // behind. In this case, no_slowdown = true, the request will be canceled
1729
+ // immediately with Status::Incomplete() returned. Otherwise, it will be
1730
+ // slowed down. The slowdown value is determined by RocksDB to guarantee
1731
+ // it introduces minimum impacts to high priority writes.
1732
+ //
1733
+ // Default: false
1734
+ bool low_pri;
1735
+
1736
+ // If true, this writebatch will maintain the last insert positions of each
1737
+ // memtable as hints in concurrent write. It can improve write performance
1738
+ // in concurrent writes if keys in one writebatch are sequential. In
1739
+ // non-concurrent writes (when concurrent_memtable_writes is false) this
1740
+ // option will be ignored.
1741
+ //
1742
+ // Default: false
1743
+ bool memtable_insert_hint_per_batch;
1744
+
1745
+ // For writes associated with this option, charge the internal rate
1746
+ // limiter (see `DBOptions::rate_limiter`) at the specified priority. The
1747
+ // special value `Env::IO_TOTAL` disables charging the rate limiter.
1748
+ //
1749
+ // Currently the support covers automatic WAL flushes, which happen during
1750
+ // live updates (`Put()`, `Write()`, `Delete()`, etc.)
1751
+ // when `WriteOptions::disableWAL == false`
1752
+ // and `DBOptions::manual_wal_flush == false`.
1753
+ //
1754
+ // Only `Env::IO_USER` and `Env::IO_TOTAL` are allowed
1755
+ // due to implementation constraints.
1756
+ //
1757
+ // Default: `Env::IO_TOTAL`
1758
+ Env::IOPriority rate_limiter_priority;
1759
+
1760
+ // `protection_bytes_per_key` is the number of bytes used to store
1761
+ // protection information for each key entry. Currently supported values are
1762
+ // zero (disabled) and eight.
1763
+ //
1764
+ // Default: zero (disabled).
1765
+ size_t protection_bytes_per_key;
1766
+
1767
+ WriteOptions()
1768
+ : sync(false),
1769
+ disableWAL(false),
1770
+ ignore_missing_column_families(false),
1771
+ no_slowdown(false),
1772
+ low_pri(false),
1773
+ memtable_insert_hint_per_batch(false),
1774
+ rate_limiter_priority(Env::IO_TOTAL),
1775
+ protection_bytes_per_key(0) {}
1776
+ };
1777
+
1778
+ // Options that control flush operations
1779
+ struct FlushOptions {
1780
+ // If true, the flush will wait until the flush is done.
1781
+ // Default: true
1782
+ bool wait;
1783
+ // If true, the flush would proceed immediately even it means writes will
1784
+ // stall for the duration of the flush; if false the operation will wait
1785
+ // until it's possible to do flush w/o causing stall or until required flush
1786
+ // is performed by someone else (foreground call or background thread).
1787
+ // Default: false
1788
+ bool allow_write_stall;
1789
+ FlushOptions() : wait(true), allow_write_stall(false) {}
1790
+ };
1791
+
1792
+ // Create a Logger from provided DBOptions
1793
+ extern Status CreateLoggerFromOptions(const std::string& dbname,
1794
+ const DBOptions& options,
1795
+ std::shared_ptr<Logger>* logger);
1796
+
1797
+ // CompactionOptions are used in CompactFiles() call.
1798
+ struct CompactionOptions {
1799
+ // Compaction output compression type
1800
+ // Default: snappy
1801
+ // If set to `kDisableCompressionOption`, RocksDB will choose compression type
1802
+ // according to the `ColumnFamilyOptions`, taking into account the output
1803
+ // level if `compression_per_level` is specified.
1804
+ CompressionType compression;
1805
+ // Compaction will create files of size `output_file_size_limit`.
1806
+ // Default: MAX, which means that compaction will create a single file
1807
+ uint64_t output_file_size_limit;
1808
+ // If > 0, it will replace the option in the DBOptions for this compaction.
1809
+ uint32_t max_subcompactions;
1810
+
1811
+ CompactionOptions()
1812
+ : compression(kSnappyCompression),
1813
+ output_file_size_limit(std::numeric_limits<uint64_t>::max()),
1814
+ max_subcompactions(0) {}
1815
+ };
1816
+
1817
+ // For level based compaction, we can configure if we want to skip/force
1818
+ // bottommost level compaction.
1819
+ enum class BottommostLevelCompaction {
1820
+ // Skip bottommost level compaction
1821
+ kSkip,
1822
+ // Only compact bottommost level if there is a compaction filter
1823
+ // This is the default option
1824
+ kIfHaveCompactionFilter,
1825
+ // Always compact bottommost level
1826
+ kForce,
1827
+ // Always compact bottommost level but in bottommost level avoid
1828
+ // double-compacting files created in the same compaction
1829
+ kForceOptimized,
1830
+ };
1831
+
1832
+ // For manual compaction, we can configure if we want to skip/force garbage
1833
+ // collection of blob files.
1834
+ enum class BlobGarbageCollectionPolicy {
1835
+ // Force blob file garbage collection.
1836
+ kForce,
1837
+ // Skip blob file garbage collection.
1838
+ kDisable,
1839
+ // Inherit blob file garbage collection policy from ColumnFamilyOptions.
1840
+ kUseDefault,
1841
+ };
1842
+
1843
+ // CompactRangeOptions is used by CompactRange() call.
1844
+ struct CompactRangeOptions {
1845
+ // If true, no other compaction will run at the same time as this
1846
+ // manual compaction.
1847
+ //
1848
+ // Default: false
1849
+ bool exclusive_manual_compaction = false;
1850
+
1851
+ // If true, compacted files will be moved to the minimum level capable
1852
+ // of holding the data or given level (specified non-negative target_level).
1853
+ bool change_level = false;
1854
+ // If change_level is true and target_level have non-negative value, compacted
1855
+ // files will be moved to target_level.
1856
+ int target_level = -1;
1857
+ // Compaction outputs will be placed in options.db_paths[target_path_id].
1858
+ // Behavior is undefined if target_path_id is out of range.
1859
+ uint32_t target_path_id = 0;
1860
+ // By default level based compaction will only compact the bottommost level
1861
+ // if there is a compaction filter
1862
+ BottommostLevelCompaction bottommost_level_compaction =
1863
+ BottommostLevelCompaction::kIfHaveCompactionFilter;
1864
+ // If true, will execute immediately even if doing so would cause the DB to
1865
+ // enter write stall mode. Otherwise, it'll sleep until load is low enough.
1866
+ bool allow_write_stall = false;
1867
+ // If > 0, it will replace the option in the DBOptions for this compaction.
1868
+ uint32_t max_subcompactions = 0;
1869
+ // Set user-defined timestamp low bound, the data with older timestamp than
1870
+ // low bound maybe GCed by compaction. Default: nullptr
1871
+ const Slice* full_history_ts_low = nullptr;
1872
+
1873
+ // Allows cancellation of an in-progress manual compaction.
1874
+ //
1875
+ // Cancellation can be delayed waiting on automatic compactions when used
1876
+ // together with `exclusive_manual_compaction == true`.
1877
+ std::atomic<bool>* canceled = nullptr;
1878
+ // NOTE: Calling DisableManualCompaction() overwrites the uer-provided
1879
+ // canceled variable in CompactRangeOptions.
1880
+ // Typically, when CompactRange is being called in one thread (t1) with
1881
+ // canceled = false, and DisableManualCompaction is being called in the
1882
+ // other thread (t2), manual compaction is disabled normally, even if the
1883
+ // compaction iterator may still scan a few items before *canceled is
1884
+ // set to true
1885
+
1886
+ // If set to kForce, RocksDB will override enable_blob_file_garbage_collection
1887
+ // to true; if set to kDisable, RocksDB will override it to false, and
1888
+ // kUseDefault leaves the setting in effect. This enables customers to both
1889
+ // force-enable and force-disable GC when calling CompactRange.
1890
+ BlobGarbageCollectionPolicy blob_garbage_collection_policy =
1891
+ BlobGarbageCollectionPolicy::kUseDefault;
1892
+
1893
+ // If set to < 0 or > 1, RocksDB leaves blob_garbage_collection_age_cutoff
1894
+ // from ColumnFamilyOptions in effect. Otherwise, it will override the
1895
+ // user-provided setting. This enables customers to selectively override the
1896
+ // age cutoff.
1897
+ double blob_garbage_collection_age_cutoff = -1;
1898
+ };
1899
+
1900
+ // IngestExternalFileOptions is used by IngestExternalFile()
1901
+ struct IngestExternalFileOptions {
1902
+ // Can be set to true to move the files instead of copying them.
1903
+ bool move_files = false;
1904
+ // If set to true, ingestion falls back to copy when move fails.
1905
+ bool failed_move_fall_back_to_copy = true;
1906
+ // If set to false, an ingested file keys could appear in existing snapshots
1907
+ // that where created before the file was ingested.
1908
+ bool snapshot_consistency = true;
1909
+ // If set to false, IngestExternalFile() will fail if the file key range
1910
+ // overlaps with existing keys or tombstones or output of ongoing compaction
1911
+ // during file ingestion in the DB (the conditions under which a global_seqno
1912
+ // must be assigned to the ingested file).
1913
+ bool allow_global_seqno = true;
1914
+ // If set to false and the file key range overlaps with the memtable key range
1915
+ // (memtable flush required), IngestExternalFile will fail.
1916
+ bool allow_blocking_flush = true;
1917
+ // Set to true if you would like duplicate keys in the file being ingested
1918
+ // to be skipped rather than overwriting existing data under that key.
1919
+ // Use case: back-fill of some historical data in the database without
1920
+ // over-writing existing newer version of data.
1921
+ // This option could only be used if the DB has been running
1922
+ // with allow_ingest_behind=true since the dawn of time.
1923
+ // All files will be ingested at the bottommost level with seqno=0.
1924
+ bool ingest_behind = false;
1925
+ // DEPRECATED - Set to true if you would like to write global_seqno to
1926
+ // the external SST file on ingestion for backward compatibility before
1927
+ // RocksDB 5.16.0. Such old versions of RocksDB expect any global_seqno to
1928
+ // be written to the SST file rather than recorded in the DB manifest.
1929
+ // This functionality was deprecated because (a) random writes might be
1930
+ // costly or unsupported on some FileSystems, and (b) the file checksum
1931
+ // changes with such a write.
1932
+ bool write_global_seqno = false;
1933
+ // Set to true if you would like to verify the checksums of each block of the
1934
+ // external SST file before ingestion.
1935
+ // Warning: setting this to true causes slowdown in file ingestion because
1936
+ // the external SST file has to be read.
1937
+ bool verify_checksums_before_ingest = false;
1938
+ // When verify_checksums_before_ingest = true, RocksDB uses default
1939
+ // readahead setting to scan the file while verifying checksums before
1940
+ // ingestion.
1941
+ // Users can override the default value using this option.
1942
+ // Using a large readahead size (> 2MB) can typically improve the performance
1943
+ // of forward iteration on spinning disks.
1944
+ size_t verify_checksums_readahead_size = 0;
1945
+ // Set to TRUE if user wants to verify the sst file checksum of ingested
1946
+ // files. The DB checksum function will generate the checksum of each
1947
+ // ingested file (if file_checksum_gen_factory is set) and compare the
1948
+ // checksum function name and checksum with the ingested checksum information.
1949
+ //
1950
+ // If this option is set to True: 1) if DB does not enable checksum
1951
+ // (file_checksum_gen_factory == nullptr), the ingested checksum information
1952
+ // will be ignored; 2) If DB enable the checksum function, we calculate the
1953
+ // sst file checksum after the file is moved or copied and compare the
1954
+ // checksum and checksum name. If checksum or checksum function name does
1955
+ // not match, ingestion will be failed. If the verification is successful,
1956
+ // checksum and checksum function name will be stored in Manifest.
1957
+ // If this option is set to FALSE, 1) if DB does not enable checksum,
1958
+ // the ingested checksum information will be ignored; 2) if DB enable the
1959
+ // checksum, we only verify the ingested checksum function name and we
1960
+ // trust the ingested checksum. If the checksum function name matches, we
1961
+ // store the checksum in Manifest. DB does not calculate the checksum during
1962
+ // ingestion. However, if no checksum information is provided with the
1963
+ // ingested files, DB will generate the checksum and store in the Manifest.
1964
+ bool verify_file_checksum = true;
1965
+ // Set to TRUE if user wants file to be ingested to the bottommost level. An
1966
+ // error of Status::TryAgain() will be returned if a file cannot fit in the
1967
+ // bottommost level when calling
1968
+ // DB::IngestExternalFile()/DB::IngestExternalFiles(). The user should clear
1969
+ // the bottommost level in the overlapping range before re-attempt.
1970
+ //
1971
+ // ingest_behind takes precedence over fail_if_not_bottommost_level.
1972
+ bool fail_if_not_bottommost_level = false;
1973
+ };
1974
+
1975
+ enum TraceFilterType : uint64_t {
1976
+ // Trace all the operations
1977
+ kTraceFilterNone = 0x0,
1978
+ // Do not trace the get operations
1979
+ kTraceFilterGet = 0x1 << 0,
1980
+ // Do not trace the write operations
1981
+ kTraceFilterWrite = 0x1 << 1,
1982
+ // Do not trace the `Iterator::Seek()` operations
1983
+ kTraceFilterIteratorSeek = 0x1 << 2,
1984
+ // Do not trace the `Iterator::SeekForPrev()` operations
1985
+ kTraceFilterIteratorSeekForPrev = 0x1 << 3,
1986
+ // Do not trace the `MultiGet()` operations
1987
+ kTraceFilterMultiGet = 0x1 << 4,
1988
+ };
1989
+
1990
+ // TraceOptions is used for StartTrace
1991
+ struct TraceOptions {
1992
+ // To avoid the trace file size grows large than the storage space,
1993
+ // user can set the max trace file size in Bytes. Default is 64GB
1994
+ uint64_t max_trace_file_size = uint64_t{64} * 1024 * 1024 * 1024;
1995
+ // Specify trace sampling option, i.e. capture one per how many requests.
1996
+ // Default to 1 (capture every request).
1997
+ uint64_t sampling_frequency = 1;
1998
+ // Note: The filtering happens before sampling.
1999
+ uint64_t filter = kTraceFilterNone;
2000
+ // When true, the order of write records in the trace will match the order of
2001
+ // the corresponding write records in the WAL and applied to the DB. There may
2002
+ // be a performance penalty associated with preserving this ordering.
2003
+ //
2004
+ // Default: false. This means write records in the trace may be in an order
2005
+ // different from the WAL's order.
2006
+ bool preserve_write_order = false;
2007
+ };
2008
+
2009
+ // ImportColumnFamilyOptions is used by ImportColumnFamily()
2010
+ struct ImportColumnFamilyOptions {
2011
+ // Can be set to true to move the files instead of copying them.
2012
+ bool move_files = false;
2013
+ };
2014
+
2015
+ // Options used with DB::GetApproximateSizes()
2016
+ struct SizeApproximationOptions {
2017
+ // Defines whether the returned size should include the recently written
2018
+ // data in the memtables. If set to false, include_files must be true.
2019
+ bool include_memtables = false;
2020
+ // Defines whether the returned size should include data serialized to disk.
2021
+ // If set to false, include_memtables must be true.
2022
+ bool include_files = true;
2023
+ // When approximating the files total size that is used to store a keys range
2024
+ // using DB::GetApproximateSizes, allow approximation with an error margin of
2025
+ // up to total_files_size * files_size_error_margin. This allows to take some
2026
+ // shortcuts in files size approximation, resulting in better performance,
2027
+ // while guaranteeing the resulting error is within a reasonable margin.
2028
+ // E.g., if the value is 0.1, then the error margin of the returned files size
2029
+ // approximation will be within 10%.
2030
+ // If the value is non-positive - a more precise yet more CPU intensive
2031
+ // estimation is performed.
2032
+ double files_size_error_margin = -1.0;
2033
+ };
2034
+
2035
+ struct CompactionServiceOptionsOverride {
2036
+ // Currently pointer configurations are not passed to compaction service
2037
+ // compaction so the user needs to set it. It will be removed once pointer
2038
+ // configuration passing is supported.
2039
+ Env* env = Env::Default();
2040
+ std::shared_ptr<FileChecksumGenFactory> file_checksum_gen_factory = nullptr;
2041
+
2042
+ const Comparator* comparator = BytewiseComparator();
2043
+ std::shared_ptr<MergeOperator> merge_operator = nullptr;
2044
+ const CompactionFilter* compaction_filter = nullptr;
2045
+ std::shared_ptr<CompactionFilterFactory> compaction_filter_factory = nullptr;
2046
+ std::shared_ptr<const SliceTransform> prefix_extractor = nullptr;
2047
+ std::shared_ptr<TableFactory> table_factory;
2048
+ std::shared_ptr<SstPartitionerFactory> sst_partitioner_factory = nullptr;
2049
+
2050
+ // Only subsets of events are triggered in remote compaction worker, like:
2051
+ // `OnTableFileCreated`, `OnTableFileCreationStarted`,
2052
+ // `ShouldBeNotifiedOnFileIO` `OnSubcompactionBegin`,
2053
+ // `OnSubcompactionCompleted`, etc. Worth mentioning, `OnCompactionBegin` and
2054
+ // `OnCompactionCompleted` won't be triggered. They will be triggered on the
2055
+ // primary DB side.
2056
+ std::vector<std::shared_ptr<EventListener>> listeners;
2057
+
2058
+ // statistics is used to collect DB operation metrics, the metrics won't be
2059
+ // returned to CompactionService primary host, to collect that, the user needs
2060
+ // to set it here.
2061
+ std::shared_ptr<Statistics> statistics = nullptr;
2062
+
2063
+ // Only compaction generated SST files use this user defined table properties
2064
+ // collector.
2065
+ std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>
2066
+ table_properties_collector_factories;
2067
+ };
2068
+
2069
+ struct OpenAndCompactOptions {
2070
+ // Allows cancellation of an in-progress compaction.
2071
+ std::atomic<bool>* canceled = nullptr;
2072
+ };
2073
+
2074
+ struct LiveFilesStorageInfoOptions {
2075
+ // Whether to populate FileStorageInfo::file_checksum* or leave blank
2076
+ bool include_checksum_info = false;
2077
+ // Flushes memtables if total size in bytes of live WAL files is >= this
2078
+ // number (and DB is not read-only).
2079
+ // Default: always force a flush without checking sizes.
2080
+ uint64_t wal_size_for_flush = 0;
2081
+ };
2082
+
2083
+ } // namespace ROCKSDB_NAMESPACE