rocksdb-native 0.0.0 → 0.0.1

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 (691) hide show
  1. package/binding.gyp +23 -0
  2. package/binding.js +1 -1
  3. package/package.json +19 -1
  4. package/vendor/rocksdb.cc +79 -0
  5. package/vendor/rocksdb.gyp +414 -0
  6. package/.clang-format +0 -15
  7. package/.github/workflows/test-node.yml +0 -23
  8. package/.gitmodules +0 -4
  9. package/NOTICE +0 -13
  10. package/vendor/rocksdb/.circleci/config.yml +0 -892
  11. package/vendor/rocksdb/.circleci/ubsan_suppression_list.txt +0 -6
  12. package/vendor/rocksdb/.clang-format +0 -5
  13. package/vendor/rocksdb/.github/workflows/sanity_check.yml +0 -47
  14. package/vendor/rocksdb/.lgtm.yml +0 -4
  15. package/vendor/rocksdb/AUTHORS +0 -12
  16. package/vendor/rocksdb/CODE_OF_CONDUCT.md +0 -77
  17. package/vendor/rocksdb/CONTRIBUTING.md +0 -17
  18. package/vendor/rocksdb/DEFAULT_OPTIONS_HISTORY.md +0 -24
  19. package/vendor/rocksdb/DUMP_FORMAT.md +0 -16
  20. package/vendor/rocksdb/HISTORY.md +0 -2399
  21. package/vendor/rocksdb/INSTALL.md +0 -220
  22. package/vendor/rocksdb/LANGUAGE-BINDINGS.md +0 -26
  23. package/vendor/rocksdb/Makefile +0 -2579
  24. package/vendor/rocksdb/PLUGINS.md +0 -8
  25. package/vendor/rocksdb/TARGETS +0 -5599
  26. package/vendor/rocksdb/USERS.md +0 -165
  27. package/vendor/rocksdb/Vagrantfile +0 -39
  28. package/vendor/rocksdb/WINDOWS_PORT.md +0 -228
  29. package/vendor/rocksdb/buckifier/bench-slow.json +0 -6163
  30. package/vendor/rocksdb/buckifier/bench.json +0 -1594
  31. package/vendor/rocksdb/buckifier/buckify_rocksdb.py +0 -333
  32. package/vendor/rocksdb/buckifier/check_buck_targets.sh +0 -32
  33. package/vendor/rocksdb/buckifier/rocks_test_runner.sh +0 -6
  34. package/vendor/rocksdb/buckifier/targets_builder.py +0 -150
  35. package/vendor/rocksdb/buckifier/targets_cfg.py +0 -41
  36. package/vendor/rocksdb/buckifier/util.py +0 -118
  37. package/vendor/rocksdb/build_tools/amalgamate.py +0 -168
  38. package/vendor/rocksdb/build_tools/benchmark_log_tool.py +0 -238
  39. package/vendor/rocksdb/build_tools/build_detect_platform +0 -804
  40. package/vendor/rocksdb/build_tools/check-sources.sh +0 -48
  41. package/vendor/rocksdb/build_tools/dependencies_platform010.sh +0 -22
  42. package/vendor/rocksdb/build_tools/dockerbuild.sh +0 -3
  43. package/vendor/rocksdb/build_tools/error_filter.py +0 -181
  44. package/vendor/rocksdb/build_tools/fb_compile_mongo.sh +0 -55
  45. package/vendor/rocksdb/build_tools/fbcode_config.sh +0 -175
  46. package/vendor/rocksdb/build_tools/fbcode_config_platform010.sh +0 -175
  47. package/vendor/rocksdb/build_tools/format-diff.sh +0 -203
  48. package/vendor/rocksdb/build_tools/gnu_parallel +0 -7971
  49. package/vendor/rocksdb/build_tools/make_package.sh +0 -129
  50. package/vendor/rocksdb/build_tools/ps_with_stack +0 -38
  51. package/vendor/rocksdb/build_tools/regression_build_test.sh +0 -396
  52. package/vendor/rocksdb/build_tools/run_ci_db_test.ps1 +0 -493
  53. package/vendor/rocksdb/build_tools/setup_centos7.sh +0 -45
  54. package/vendor/rocksdb/build_tools/ubuntu20_image/Dockerfile +0 -57
  55. package/vendor/rocksdb/build_tools/update_dependencies.sh +0 -106
  56. package/vendor/rocksdb/build_tools/version.sh +0 -23
  57. package/vendor/rocksdb/common.mk +0 -30
  58. package/vendor/rocksdb/crash_test.mk +0 -107
  59. package/vendor/rocksdb/db/c_test.c +0 -3609
  60. package/vendor/rocksdb/docs/CNAME +0 -1
  61. package/vendor/rocksdb/docs/CONTRIBUTING.md +0 -115
  62. package/vendor/rocksdb/docs/Gemfile +0 -4
  63. package/vendor/rocksdb/docs/LICENSE-DOCUMENTATION +0 -385
  64. package/vendor/rocksdb/docs/TEMPLATE-INFORMATION.md +0 -17
  65. package/vendor/rocksdb/docs/_config.yml +0 -85
  66. package/vendor/rocksdb/docs/_data/authors.yml +0 -81
  67. package/vendor/rocksdb/docs/_data/features.yml +0 -19
  68. package/vendor/rocksdb/docs/_data/nav.yml +0 -30
  69. package/vendor/rocksdb/docs/_data/nav_docs.yml +0 -3
  70. package/vendor/rocksdb/docs/_data/powered_by.yml +0 -1
  71. package/vendor/rocksdb/docs/_data/powered_by_highlight.yml +0 -1
  72. package/vendor/rocksdb/docs/_data/promo.yml +0 -6
  73. package/vendor/rocksdb/docs/_docs/faq.md +0 -48
  74. package/vendor/rocksdb/docs/_docs/getting-started.md +0 -78
  75. package/vendor/rocksdb/docs/_includes/blog_pagination.html +0 -28
  76. package/vendor/rocksdb/docs/_includes/content/gridblocks.html +0 -5
  77. package/vendor/rocksdb/docs/_includes/content/items/gridblock.html +0 -37
  78. package/vendor/rocksdb/docs/_includes/doc.html +0 -25
  79. package/vendor/rocksdb/docs/_includes/doc_paging.html +0 -0
  80. package/vendor/rocksdb/docs/_includes/footer.html +0 -34
  81. package/vendor/rocksdb/docs/_includes/head.html +0 -23
  82. package/vendor/rocksdb/docs/_includes/header.html +0 -19
  83. package/vendor/rocksdb/docs/_includes/hero.html +0 -0
  84. package/vendor/rocksdb/docs/_includes/home_header.html +0 -22
  85. package/vendor/rocksdb/docs/_includes/katex_import.html +0 -3
  86. package/vendor/rocksdb/docs/_includes/katex_render.html +0 -210
  87. package/vendor/rocksdb/docs/_includes/nav/collection_nav.html +0 -64
  88. package/vendor/rocksdb/docs/_includes/nav/collection_nav_group.html +0 -19
  89. package/vendor/rocksdb/docs/_includes/nav/collection_nav_group_item.html +0 -1
  90. package/vendor/rocksdb/docs/_includes/nav/header_nav.html +0 -30
  91. package/vendor/rocksdb/docs/_includes/nav.html +0 -37
  92. package/vendor/rocksdb/docs/_includes/nav_search.html +0 -15
  93. package/vendor/rocksdb/docs/_includes/plugins/all_share.html +0 -3
  94. package/vendor/rocksdb/docs/_includes/plugins/ascii_cinema.html +0 -2
  95. package/vendor/rocksdb/docs/_includes/plugins/button.html +0 -6
  96. package/vendor/rocksdb/docs/_includes/plugins/github_star.html +0 -4
  97. package/vendor/rocksdb/docs/_includes/plugins/github_watch.html +0 -4
  98. package/vendor/rocksdb/docs/_includes/plugins/google_share.html +0 -5
  99. package/vendor/rocksdb/docs/_includes/plugins/iframe.html +0 -6
  100. package/vendor/rocksdb/docs/_includes/plugins/like_button.html +0 -18
  101. package/vendor/rocksdb/docs/_includes/plugins/plugin_row.html +0 -5
  102. package/vendor/rocksdb/docs/_includes/plugins/post_social_plugins.html +0 -41
  103. package/vendor/rocksdb/docs/_includes/plugins/slideshow.html +0 -88
  104. package/vendor/rocksdb/docs/_includes/plugins/twitter_follow.html +0 -12
  105. package/vendor/rocksdb/docs/_includes/plugins/twitter_share.html +0 -11
  106. package/vendor/rocksdb/docs/_includes/post.html +0 -40
  107. package/vendor/rocksdb/docs/_includes/powered_by.html +0 -28
  108. package/vendor/rocksdb/docs/_includes/social_plugins.html +0 -31
  109. package/vendor/rocksdb/docs/_includes/ui/button.html +0 -1
  110. package/vendor/rocksdb/docs/_layouts/basic.html +0 -12
  111. package/vendor/rocksdb/docs/_layouts/blog.html +0 -11
  112. package/vendor/rocksdb/docs/_layouts/blog_default.html +0 -14
  113. package/vendor/rocksdb/docs/_layouts/default.html +0 -12
  114. package/vendor/rocksdb/docs/_layouts/doc_default.html +0 -14
  115. package/vendor/rocksdb/docs/_layouts/doc_page.html +0 -10
  116. package/vendor/rocksdb/docs/_layouts/docs.html +0 -5
  117. package/vendor/rocksdb/docs/_layouts/home.html +0 -26
  118. package/vendor/rocksdb/docs/_layouts/page.html +0 -3
  119. package/vendor/rocksdb/docs/_layouts/plain.html +0 -10
  120. package/vendor/rocksdb/docs/_layouts/post.html +0 -8
  121. package/vendor/rocksdb/docs/_layouts/redirect.html +0 -6
  122. package/vendor/rocksdb/docs/_layouts/top-level.html +0 -10
  123. package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-backup-rocksdb.markdown +0 -135
  124. package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-persist-in-memory-rocksdb-database.markdown +0 -54
  125. package/vendor/rocksdb/docs/_posts/2014-04-02-the-1st-rocksdb-local-meetup-held-on-march-27-2014.markdown +0 -53
  126. package/vendor/rocksdb/docs/_posts/2014-04-07-rocksdb-2-8-release.markdown +0 -40
  127. package/vendor/rocksdb/docs/_posts/2014-04-21-indexing-sst-files-for-better-lookup-performance.markdown +0 -28
  128. package/vendor/rocksdb/docs/_posts/2014-05-14-lock.markdown +0 -88
  129. package/vendor/rocksdb/docs/_posts/2014-05-19-rocksdb-3-0-release.markdown +0 -24
  130. package/vendor/rocksdb/docs/_posts/2014-05-22-rocksdb-3-1-release.markdown +0 -20
  131. package/vendor/rocksdb/docs/_posts/2014-06-23-plaintable-a-new-file-format.markdown +0 -47
  132. package/vendor/rocksdb/docs/_posts/2014-06-27-avoid-expensive-locks-in-get.markdown +0 -89
  133. package/vendor/rocksdb/docs/_posts/2014-06-27-rocksdb-3-2-release.markdown +0 -30
  134. package/vendor/rocksdb/docs/_posts/2014-07-29-rocksdb-3-3-release.markdown +0 -34
  135. package/vendor/rocksdb/docs/_posts/2014-09-12-cuckoo.markdown +0 -74
  136. package/vendor/rocksdb/docs/_posts/2014-09-12-new-bloom-filter-format.markdown +0 -52
  137. package/vendor/rocksdb/docs/_posts/2014-09-15-rocksdb-3-5-release.markdown +0 -38
  138. package/vendor/rocksdb/docs/_posts/2015-01-16-migrating-from-leveldb-to-rocksdb-2.markdown +0 -112
  139. package/vendor/rocksdb/docs/_posts/2015-02-24-reading-rocksdb-options-from-a-file.markdown +0 -41
  140. package/vendor/rocksdb/docs/_posts/2015-02-27-write-batch-with-index.markdown +0 -20
  141. package/vendor/rocksdb/docs/_posts/2015-04-22-integrating-rocksdb-with-mongodb-2.markdown +0 -16
  142. package/vendor/rocksdb/docs/_posts/2015-06-12-rocksdb-in-osquery.markdown +0 -10
  143. package/vendor/rocksdb/docs/_posts/2015-07-15-rocksdb-2015-h2-roadmap.markdown +0 -92
  144. package/vendor/rocksdb/docs/_posts/2015-07-17-spatial-indexing-in-rocksdb.markdown +0 -78
  145. package/vendor/rocksdb/docs/_posts/2015-07-22-rocksdb-is-now-available-in-windows-platform.markdown +0 -30
  146. package/vendor/rocksdb/docs/_posts/2015-07-23-dynamic-level.markdown +0 -29
  147. package/vendor/rocksdb/docs/_posts/2015-10-27-getthreadlist.markdown +0 -193
  148. package/vendor/rocksdb/docs/_posts/2015-11-10-use-checkpoints-for-efficient-snapshots.markdown +0 -45
  149. package/vendor/rocksdb/docs/_posts/2015-11-16-analysis-file-read-latency-by-level.markdown +0 -244
  150. package/vendor/rocksdb/docs/_posts/2016-01-29-compaction_pri.markdown +0 -51
  151. package/vendor/rocksdb/docs/_posts/2016-02-24-rocksdb-4-2-release.markdown +0 -41
  152. package/vendor/rocksdb/docs/_posts/2016-02-25-rocksdb-ama.markdown +0 -20
  153. package/vendor/rocksdb/docs/_posts/2016-03-07-rocksdb-options-file.markdown +0 -24
  154. package/vendor/rocksdb/docs/_posts/2016-04-26-rocksdb-4-5-1-released.markdown +0 -60
  155. package/vendor/rocksdb/docs/_posts/2016-07-26-rocksdb-4-8-released.markdown +0 -48
  156. package/vendor/rocksdb/docs/_posts/2016-09-28-rocksdb-4-11-2-released.markdown +0 -49
  157. package/vendor/rocksdb/docs/_posts/2017-01-06-rocksdb-5-0-1-released.markdown +0 -26
  158. package/vendor/rocksdb/docs/_posts/2017-02-07-rocksdb-5-1-2-released.markdown +0 -15
  159. package/vendor/rocksdb/docs/_posts/2017-02-17-bulkoad-ingest-sst-file.markdown +0 -50
  160. package/vendor/rocksdb/docs/_posts/2017-03-02-rocksdb-5-2-1-released.markdown +0 -22
  161. package/vendor/rocksdb/docs/_posts/2017-05-12-partitioned-index-filter.markdown +0 -34
  162. package/vendor/rocksdb/docs/_posts/2017-05-14-core-local-stats.markdown +0 -106
  163. package/vendor/rocksdb/docs/_posts/2017-05-26-rocksdb-5-4-5-released.markdown +0 -39
  164. package/vendor/rocksdb/docs/_posts/2017-06-26-17-level-based-changes.markdown +0 -60
  165. package/vendor/rocksdb/docs/_posts/2017-06-29-rocksdb-5-5-1-released.markdown +0 -22
  166. package/vendor/rocksdb/docs/_posts/2017-07-25-rocksdb-5-6-1-released.markdown +0 -22
  167. package/vendor/rocksdb/docs/_posts/2017-08-24-pinnableslice.markdown +0 -37
  168. package/vendor/rocksdb/docs/_posts/2017-08-25-flushwal.markdown +0 -26
  169. package/vendor/rocksdb/docs/_posts/2017-09-28-rocksdb-5-8-released.markdown +0 -25
  170. package/vendor/rocksdb/docs/_posts/2017-12-18-17-auto-tuned-rate-limiter.markdown +0 -28
  171. package/vendor/rocksdb/docs/_posts/2017-12-19-write-prepared-txn.markdown +0 -41
  172. package/vendor/rocksdb/docs/_posts/2018-02-05-rocksdb-5-10-2-released.markdown +0 -22
  173. package/vendor/rocksdb/docs/_posts/2018-08-01-rocksdb-tuning-advisor.markdown +0 -58
  174. package/vendor/rocksdb/docs/_posts/2018-08-23-data-block-hash-index.markdown +0 -118
  175. package/vendor/rocksdb/docs/_posts/2018-11-21-delete-range.markdown +0 -292
  176. package/vendor/rocksdb/docs/_posts/2019-03-08-format-version-4.markdown +0 -36
  177. package/vendor/rocksdb/docs/_posts/2019-08-15-unordered-write.markdown +0 -56
  178. package/vendor/rocksdb/docs/_posts/2021-04-12-universal-improvements.markdown +0 -46
  179. package/vendor/rocksdb/docs/_posts/2021-05-26-integrated-blob-db.markdown +0 -101
  180. package/vendor/rocksdb/docs/_posts/2021-05-26-online-validation.markdown +0 -17
  181. package/vendor/rocksdb/docs/_posts/2021-05-27-rocksdb-secondary-cache.markdown +0 -195
  182. package/vendor/rocksdb/docs/_posts/2021-05-31-dictionary-compression.markdown +0 -157
  183. package/vendor/rocksdb/docs/_posts/2021-12-29-ribbon-filter.markdown +0 -281
  184. package/vendor/rocksdb/docs/_posts/2022-07-18-per-key-value-checksum.markdown +0 -142
  185. package/vendor/rocksdb/docs/_posts/2022-10-05-lost-buffered-write-recovery.markdown +0 -123
  186. package/vendor/rocksdb/docs/_posts/2022-10-07-asynchronous-io-in-rocksdb.markdown +0 -133
  187. package/vendor/rocksdb/docs/_posts/2022-10-31-align-compaction-output-file.markdown +0 -107
  188. package/vendor/rocksdb/docs/_posts/2022-11-09-time-aware-tiered-storage.markdown +0 -121
  189. package/vendor/rocksdb/docs/_sass/_base.scss +0 -492
  190. package/vendor/rocksdb/docs/_sass/_blog.scss +0 -47
  191. package/vendor/rocksdb/docs/_sass/_buttons.scss +0 -47
  192. package/vendor/rocksdb/docs/_sass/_footer.scss +0 -82
  193. package/vendor/rocksdb/docs/_sass/_gridBlock.scss +0 -115
  194. package/vendor/rocksdb/docs/_sass/_header.scss +0 -139
  195. package/vendor/rocksdb/docs/_sass/_poweredby.scss +0 -69
  196. package/vendor/rocksdb/docs/_sass/_promo.scss +0 -55
  197. package/vendor/rocksdb/docs/_sass/_react_docs_nav.scss +0 -332
  198. package/vendor/rocksdb/docs/_sass/_react_header_nav.scss +0 -141
  199. package/vendor/rocksdb/docs/_sass/_reset.scss +0 -43
  200. package/vendor/rocksdb/docs/_sass/_search.scss +0 -142
  201. package/vendor/rocksdb/docs/_sass/_slideshow.scss +0 -48
  202. package/vendor/rocksdb/docs/_sass/_syntax-highlighting.scss +0 -129
  203. package/vendor/rocksdb/docs/_sass/_tables.scss +0 -47
  204. package/vendor/rocksdb/docs/_top-level/support.md +0 -22
  205. package/vendor/rocksdb/docs/blog/all.html +0 -20
  206. package/vendor/rocksdb/docs/blog/index.html +0 -12
  207. package/vendor/rocksdb/docs/css/main.scss +0 -159
  208. package/vendor/rocksdb/docs/doc-type-examples/2016-04-07-blog-post-example.md +0 -21
  209. package/vendor/rocksdb/docs/doc-type-examples/docs-hello-world.md +0 -12
  210. package/vendor/rocksdb/docs/doc-type-examples/top-level-example.md +0 -8
  211. package/vendor/rocksdb/docs/docs/index.html +0 -6
  212. package/vendor/rocksdb/docs/feed.xml +0 -30
  213. package/vendor/rocksdb/docs/index.md +0 -9
  214. package/vendor/rocksdb/docs/static/favicon.png +0 -0
  215. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff +0 -0
  216. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff2 +0 -0
  217. package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff +0 -0
  218. package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff2 +0 -0
  219. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff +0 -0
  220. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff2 +0 -0
  221. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff +0 -0
  222. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff2 +0 -0
  223. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff +0 -0
  224. package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff2 +0 -0
  225. package/vendor/rocksdb/docs/static/images/Resize-of-20140327_200754-300x225.jpg +0 -0
  226. package/vendor/rocksdb/docs/static/images/align-compaction-output/compaction_output_file_size_compare.png +0 -0
  227. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_align.png +0 -0
  228. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_normal.png +0 -0
  229. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_trival_move.png +0 -0
  230. package/vendor/rocksdb/docs/static/images/align-compaction-output/file_size_compare.png +0 -0
  231. package/vendor/rocksdb/docs/static/images/align-compaction-output/write_amp_compare.png +0 -0
  232. package/vendor/rocksdb/docs/static/images/asynchronous-io/mget_async.png +0 -0
  233. package/vendor/rocksdb/docs/static/images/asynchronous-io/scan_async.png +0 -0
  234. package/vendor/rocksdb/docs/static/images/binaryseek.png +0 -0
  235. package/vendor/rocksdb/docs/static/images/bloom_fp_vs_bpk.png +0 -0
  236. package/vendor/rocksdb/docs/static/images/compaction/full-range.png +0 -0
  237. package/vendor/rocksdb/docs/static/images/compaction/l0-l1-contend.png +0 -0
  238. package/vendor/rocksdb/docs/static/images/compaction/l1-l2-contend.png +0 -0
  239. package/vendor/rocksdb/docs/static/images/compaction/part-range-old.png +0 -0
  240. package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-binary-seek.png +0 -0
  241. package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-hash-index.png +0 -0
  242. package/vendor/rocksdb/docs/static/images/data-block-hash-index/hash-index-data-structure.png +0 -0
  243. package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-cache-miss.png +0 -0
  244. package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-throughput.png +0 -0
  245. package/vendor/rocksdb/docs/static/images/delrange/delrange_collapsed.png +0 -0
  246. package/vendor/rocksdb/docs/static/images/delrange/delrange_key_schema.png +0 -0
  247. package/vendor/rocksdb/docs/static/images/delrange/delrange_sst_blocks.png +0 -0
  248. package/vendor/rocksdb/docs/static/images/delrange/delrange_uncollapsed.png +0 -0
  249. package/vendor/rocksdb/docs/static/images/delrange/delrange_write_path.png +0 -0
  250. package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_raw_sampled.png +0 -0
  251. package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_sst_blocks.png +0 -0
  252. package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_zstd_trained.png +0 -0
  253. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Legacy_Vs_Integrated.png +0 -0
  254. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_RW_RO_Perf.png +0 -0
  255. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Amp.png +0 -0
  256. package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Perf.png +0 -0
  257. package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-entry.png +0 -0
  258. package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-write.png +0 -0
  259. package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Memtable.png +0 -0
  260. package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch-to-Memtable.png +0 -0
  261. package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch.png +0 -0
  262. package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-fragment.png +0 -0
  263. package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-read.png +0 -0
  264. package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-write.png +0 -0
  265. package/vendor/rocksdb/docs/static/images/kv-checksum/Write-batch.png +0 -0
  266. package/vendor/rocksdb/docs/static/images/kv-checksum/Writebatch-write.png +0 -0
  267. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/angry-cat.png +0 -0
  268. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/basic-setup.png +0 -0
  269. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/happy-cat.png +0 -0
  270. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/replay-extension.png +0 -0
  271. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/test-fs-writable-file.png +0 -0
  272. package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/trace-extension.png +0 -0
  273. package/vendor/rocksdb/docs/static/images/pcache-blockindex.jpg +0 -0
  274. package/vendor/rocksdb/docs/static/images/pcache-fileindex.jpg +0 -0
  275. package/vendor/rocksdb/docs/static/images/pcache-filelayout.jpg +0 -0
  276. package/vendor/rocksdb/docs/static/images/pcache-readiopath.jpg +0 -0
  277. package/vendor/rocksdb/docs/static/images/pcache-tieredstorage.jpg +0 -0
  278. package/vendor/rocksdb/docs/static/images/pcache-writeiopath.jpg +0 -0
  279. package/vendor/rocksdb/docs/static/images/promo-adapt.svg +0 -8
  280. package/vendor/rocksdb/docs/static/images/promo-flash.svg +0 -28
  281. package/vendor/rocksdb/docs/static/images/promo-operations.svg +0 -6
  282. package/vendor/rocksdb/docs/static/images/promo-performance.svg +0 -134
  283. package/vendor/rocksdb/docs/static/images/rate-limiter/auto-tuned-write-KBps-series.png +0 -0
  284. package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-cdf.png +0 -0
  285. package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-series.png +0 -0
  286. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_hit_rate.png +0 -0
  287. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_throughput.png +0 -0
  288. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/arch_diagram.png +0 -0
  289. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/insert_flow.png +0 -0
  290. package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/lookup_flow.png +0 -0
  291. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/compaction_moving_up_conflict.png +0 -0
  292. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/per_key_placement_compaction.png +0 -0
  293. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_design.png +0 -0
  294. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_overview.png +0 -0
  295. package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_problem.png +0 -0
  296. package/vendor/rocksdb/docs/static/images/tree_example1.png +0 -0
  297. package/vendor/rocksdb/docs/static/logo.svg +0 -76
  298. package/vendor/rocksdb/docs/static/og_image.png +0 -0
  299. package/vendor/rocksdb/examples/Makefile +0 -58
  300. package/vendor/rocksdb/examples/c_simple_example.c +0 -96
  301. package/vendor/rocksdb/examples/rocksdb_option_file_example.ini +0 -142
  302. package/vendor/rocksdb/fuzz/Makefile +0 -67
  303. package/vendor/rocksdb/fuzz/proto/db_operation.proto +0 -28
  304. package/vendor/rocksdb/issue_template.md +0 -7
  305. package/vendor/rocksdb/java/GetBenchmarks.md +0 -161
  306. package/vendor/rocksdb/java/HISTORY-JAVA.md +0 -86
  307. package/vendor/rocksdb/java/Makefile +0 -453
  308. package/vendor/rocksdb/java/RELEASE.md +0 -59
  309. package/vendor/rocksdb/java/benchmark/src/main/java/org/rocksdb/benchmark/DbBenchmark.java +0 -1640
  310. package/vendor/rocksdb/java/crossbuild/Vagrantfile +0 -51
  311. package/vendor/rocksdb/java/crossbuild/build-linux-alpine.sh +0 -70
  312. package/vendor/rocksdb/java/crossbuild/build-linux-centos.sh +0 -38
  313. package/vendor/rocksdb/java/crossbuild/build-linux.sh +0 -15
  314. package/vendor/rocksdb/java/crossbuild/docker-build-linux-alpine.sh +0 -17
  315. package/vendor/rocksdb/java/crossbuild/docker-build-linux-centos.sh +0 -38
  316. package/vendor/rocksdb/java/jdb_bench.sh +0 -13
  317. package/vendor/rocksdb/java/jmh/LICENSE-HEADER.txt +0 -5
  318. package/vendor/rocksdb/java/jmh/pom.xml +0 -138
  319. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/ComparatorBenchmarks.java +0 -139
  320. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/GetBenchmarks.java +0 -215
  321. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/MultiGetBenchmarks.java +0 -214
  322. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/PutBenchmarks.java +0 -112
  323. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/FileUtils.java +0 -59
  324. package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/KVUtils.java +0 -72
  325. package/vendor/rocksdb/java/pom.xml.template +0 -178
  326. package/vendor/rocksdb/java/samples/src/main/java/OptimisticTransactionSample.java +0 -184
  327. package/vendor/rocksdb/java/samples/src/main/java/RocksDBColumnFamilySample.java +0 -78
  328. package/vendor/rocksdb/java/samples/src/main/java/RocksDBSample.java +0 -295
  329. package/vendor/rocksdb/java/samples/src/main/java/TransactionSample.java +0 -183
  330. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilter.java +0 -59
  331. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilterFactory.java +0 -77
  332. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparator.java +0 -124
  333. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparatorJniBridge.java +0 -119
  334. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractEventListener.java +0 -334
  335. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractImmutableNativeReference.java +0 -65
  336. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractMutableOptions.java +0 -368
  337. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractNativeReference.java +0 -49
  338. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractRocksIterator.java +0 -146
  339. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractSlice.java +0 -191
  340. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTableFilter.java +0 -20
  341. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTraceWriter.java +0 -70
  342. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTransactionNotifier.java +0 -54
  343. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWalFilter.java +0 -49
  344. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWriteBatch.java +0 -203
  345. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AccessHint.java +0 -53
  346. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedColumnFamilyOptionsInterface.java +0 -463
  347. package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedMutableColumnFamilyOptionsInterface.java +0 -830
  348. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackgroundErrorReason.java +0 -46
  349. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngine.java +0 -259
  350. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngineOptions.java +0 -458
  351. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupInfo.java +0 -76
  352. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BlockBasedTableConfig.java +0 -951
  353. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BloomFilter.java +0 -73
  354. package/vendor/rocksdb/java/src/main/java/org/rocksdb/BuiltinComparator.java +0 -20
  355. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ByteBufferGetStatus.java +0 -50
  356. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Cache.java +0 -40
  357. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraCompactionFilter.java +0 -20
  358. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraValueMergeOperator.java +0 -25
  359. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Checkpoint.java +0 -62
  360. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ChecksumType.java +0 -45
  361. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ClockCache.java +0 -59
  362. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyDescriptor.java +0 -84
  363. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyHandle.java +0 -151
  364. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyMetaData.java +0 -70
  365. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptions.java +0 -1543
  366. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptionsInterface.java +0 -536
  367. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactRangeOptions.java +0 -245
  368. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobInfo.java +0 -161
  369. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobStats.java +0 -295
  370. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptions.java +0 -121
  371. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsFIFO.java +0 -87
  372. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsUniversal.java +0 -273
  373. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionPriority.java +0 -81
  374. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionReason.java +0 -141
  375. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStopStyle.java +0 -55
  376. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStyle.java +0 -81
  377. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorOptions.java +0 -133
  378. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorType.java +0 -48
  379. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionOptions.java +0 -150
  380. package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionType.java +0 -121
  381. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiter.java +0 -44
  382. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiterImpl.java +0 -48
  383. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConfigOptions.java +0 -53
  384. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptions.java +0 -1496
  385. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptionsInterface.java +0 -1756
  386. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DataBlockIndexType.java +0 -32
  387. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DbPath.java +0 -47
  388. package/vendor/rocksdb/java/src/main/java/org/rocksdb/DirectSlice.java +0 -136
  389. package/vendor/rocksdb/java/src/main/java/org/rocksdb/EncodingType.java +0 -55
  390. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Env.java +0 -167
  391. package/vendor/rocksdb/java/src/main/java/org/rocksdb/EnvOptions.java +0 -366
  392. package/vendor/rocksdb/java/src/main/java/org/rocksdb/EventListener.java +0 -335
  393. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Experimental.java +0 -23
  394. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ExternalFileIngestionInfo.java +0 -103
  395. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FileOperationInfo.java +0 -112
  396. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Filter.java +0 -36
  397. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushJobInfo.java +0 -186
  398. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushOptions.java +0 -90
  399. package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushReason.java +0 -53
  400. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashLinkedListMemTableConfig.java +0 -174
  401. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashSkipListMemTableConfig.java +0 -106
  402. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramData.java +0 -75
  403. package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramType.java +0 -214
  404. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Holder.java +0 -46
  405. package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexShorteningMode.java +0 -60
  406. package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexType.java +0 -55
  407. package/vendor/rocksdb/java/src/main/java/org/rocksdb/InfoLogLevel.java +0 -49
  408. package/vendor/rocksdb/java/src/main/java/org/rocksdb/IngestExternalFileOptions.java +0 -227
  409. package/vendor/rocksdb/java/src/main/java/org/rocksdb/KeyMayExist.java +0 -35
  410. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LRUCache.java +0 -106
  411. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LevelMetaData.java +0 -56
  412. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LiveFileMetaData.java +0 -55
  413. package/vendor/rocksdb/java/src/main/java/org/rocksdb/LogFile.java +0 -75
  414. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Logger.java +0 -121
  415. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableConfig.java +0 -29
  416. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableInfo.java +0 -103
  417. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUsageType.java +0 -72
  418. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUtil.java +0 -60
  419. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MergeOperator.java +0 -18
  420. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptions.java +0 -621
  421. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptionsInterface.java +0 -156
  422. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptions.java +0 -292
  423. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptionsInterface.java +0 -440
  424. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionKey.java +0 -16
  425. package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionValue.java +0 -368
  426. package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeComparatorWrapper.java +0 -59
  427. package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeLibraryLoader.java +0 -172
  428. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationStage.java +0 -59
  429. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationType.java +0 -55
  430. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionDB.java +0 -224
  431. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionOptions.java +0 -53
  432. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionString.java +0 -261
  433. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Options.java +0 -2574
  434. package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionsUtil.java +0 -101
  435. package/vendor/rocksdb/java/src/main/java/org/rocksdb/PersistentCache.java +0 -26
  436. package/vendor/rocksdb/java/src/main/java/org/rocksdb/PlainTableConfig.java +0 -251
  437. package/vendor/rocksdb/java/src/main/java/org/rocksdb/PrepopulateBlobCache.java +0 -117
  438. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Priority.java +0 -49
  439. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Range.java +0 -19
  440. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiter.java +0 -227
  441. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiterMode.java +0 -52
  442. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadOptions.java +0 -822
  443. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadTier.java +0 -49
  444. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RemoveEmptyValueCompactionFilter.java +0 -18
  445. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RestoreOptions.java +0 -32
  446. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReusedSynchronisationType.java +0 -65
  447. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksCallbackObject.java +0 -73
  448. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDB.java +0 -4688
  449. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDBException.java +0 -44
  450. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksEnv.java +0 -31
  451. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIterator.java +0 -140
  452. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIteratorInterface.java +0 -127
  453. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMemEnv.java +0 -31
  454. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMutableObject.java +0 -87
  455. package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksObject.java +0 -45
  456. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SanityLevel.java +0 -47
  457. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SizeApproximationFlag.java +0 -31
  458. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SkipListMemTableConfig.java +0 -51
  459. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Slice.java +0 -135
  460. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Snapshot.java +0 -41
  461. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileManager.java +0 -249
  462. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileMetaData.java +0 -162
  463. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReader.java +0 -82
  464. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReaderIterator.java +0 -140
  465. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileWriter.java +0 -237
  466. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFactory.java +0 -15
  467. package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFixedPrefixFactory.java +0 -19
  468. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StateType.java +0 -53
  469. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Statistics.java +0 -153
  470. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollector.java +0 -102
  471. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollectorCallback.java +0 -32
  472. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsCollectorInput.java +0 -35
  473. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsLevel.java +0 -65
  474. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Status.java +0 -155
  475. package/vendor/rocksdb/java/src/main/java/org/rocksdb/StringAppendOperator.java +0 -29
  476. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationBriefInfo.java +0 -107
  477. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationInfo.java +0 -86
  478. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationReason.java +0 -46
  479. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileDeletionInfo.java +0 -86
  480. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFilter.java +0 -21
  481. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFormatConfig.java +0 -22
  482. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableProperties.java +0 -426
  483. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadStatus.java +0 -224
  484. package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadType.java +0 -65
  485. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TickerType.java +0 -802
  486. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TimedEnv.java +0 -30
  487. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceOptions.java +0 -32
  488. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceWriter.java +0 -36
  489. package/vendor/rocksdb/java/src/main/java/org/rocksdb/Transaction.java +0 -2162
  490. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDB.java +0 -401
  491. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDBOptions.java +0 -216
  492. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionLogIterator.java +0 -112
  493. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionOptions.java +0 -189
  494. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalDB.java +0 -65
  495. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalOptions.java +0 -31
  496. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TtlDB.java +0 -242
  497. package/vendor/rocksdb/java/src/main/java/org/rocksdb/TxnDBWritePolicy.java +0 -62
  498. package/vendor/rocksdb/java/src/main/java/org/rocksdb/UInt64AddOperator.java +0 -19
  499. package/vendor/rocksdb/java/src/main/java/org/rocksdb/VectorMemTableConfig.java +0 -46
  500. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WALRecoveryMode.java +0 -82
  501. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WBWIRocksIterator.java +0 -203
  502. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFileType.java +0 -55
  503. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFilter.java +0 -86
  504. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalProcessingOption.java +0 -54
  505. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatch.java +0 -394
  506. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchInterface.java +0 -283
  507. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchWithIndex.java +0 -358
  508. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBufferManager.java +0 -50
  509. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteOptions.java +0 -255
  510. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallCondition.java +0 -44
  511. package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallInfo.java +0 -75
  512. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ByteUtil.java +0 -52
  513. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/BytewiseComparator.java +0 -121
  514. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/Environment.java +0 -245
  515. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/IntComparator.java +0 -67
  516. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ReverseBytewiseComparator.java +0 -88
  517. package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/SizeUnit.java +0 -16
  518. package/vendor/rocksdb/java/src/test/java/org/rocksdb/AbstractTransactionTest.java +0 -979
  519. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineOptionsTest.java +0 -297
  520. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineTest.java +0 -261
  521. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlobOptionsTest.java +0 -353
  522. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlockBasedTableConfigTest.java +0 -415
  523. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BuiltinComparatorTest.java +0 -145
  524. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ByteBufferUnsupportedOperationTest.java +0 -132
  525. package/vendor/rocksdb/java/src/test/java/org/rocksdb/BytewiseComparatorRegressionTest.java +0 -132
  526. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CheckPointTest.java +0 -82
  527. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ClockCacheTest.java +0 -25
  528. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyOptionsTest.java +0 -712
  529. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyTest.java +0 -562
  530. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactRangeOptionsTest.java +0 -102
  531. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionFilterFactoryTest.java +0 -61
  532. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobInfoTest.java +0 -114
  533. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobStatsTest.java +0 -196
  534. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsFIFOTest.java +0 -35
  535. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsTest.java +0 -52
  536. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsUniversalTest.java +0 -80
  537. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionPriorityTest.java +0 -31
  538. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionStopStyleTest.java +0 -31
  539. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ComparatorOptionsTest.java +0 -58
  540. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionOptionsTest.java +0 -71
  541. package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionTypesTest.java +0 -25
  542. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ConcurrentTaskLimiterTest.java +0 -56
  543. package/vendor/rocksdb/java/src/test/java/org/rocksdb/DBOptionsTest.java +0 -902
  544. package/vendor/rocksdb/java/src/test/java/org/rocksdb/DefaultEnvTest.java +0 -113
  545. package/vendor/rocksdb/java/src/test/java/org/rocksdb/DirectSliceTest.java +0 -93
  546. package/vendor/rocksdb/java/src/test/java/org/rocksdb/EnvOptionsTest.java +0 -145
  547. package/vendor/rocksdb/java/src/test/java/org/rocksdb/EventListenerTest.java +0 -725
  548. package/vendor/rocksdb/java/src/test/java/org/rocksdb/FilterTest.java +0 -39
  549. package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushOptionsTest.java +0 -31
  550. package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushTest.java +0 -49
  551. package/vendor/rocksdb/java/src/test/java/org/rocksdb/InfoLogLevelTest.java +0 -109
  552. package/vendor/rocksdb/java/src/test/java/org/rocksdb/IngestExternalFileOptionsTest.java +0 -107
  553. package/vendor/rocksdb/java/src/test/java/org/rocksdb/KeyMayExistTest.java +0 -528
  554. package/vendor/rocksdb/java/src/test/java/org/rocksdb/LRUCacheTest.java +0 -32
  555. package/vendor/rocksdb/java/src/test/java/org/rocksdb/LoggerTest.java +0 -235
  556. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemTableTest.java +0 -108
  557. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemoryUtilTest.java +0 -136
  558. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MergeTest.java +0 -465
  559. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MixedOptionsTest.java +0 -85
  560. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiColumnRegressionTest.java +0 -145
  561. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetManyKeysTest.java +0 -241
  562. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetTest.java +0 -530
  563. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableColumnFamilyOptionsTest.java +0 -167
  564. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableDBOptionsTest.java +0 -85
  565. package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableOptionsGetSetTest.java +0 -429
  566. package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeComparatorWrapperTest.java +0 -90
  567. package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeLibraryLoaderTest.java +0 -41
  568. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionDBTest.java +0 -131
  569. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionOptionsTest.java +0 -38
  570. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionTest.java +0 -446
  571. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsTest.java +0 -1488
  572. package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsUtilTest.java +0 -129
  573. package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlainTableConfigTest.java +0 -89
  574. package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlatformRandomHelper.java +0 -58
  575. package/vendor/rocksdb/java/src/test/java/org/rocksdb/PutMultiplePartsTest.java +0 -164
  576. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RateLimiterTest.java +0 -65
  577. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOnlyTest.java +0 -222
  578. package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOptionsTest.java +0 -374
  579. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBExceptionTest.java +0 -115
  580. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBTest.java +0 -1692
  581. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksIteratorTest.java +0 -289
  582. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksMemEnvTest.java +0 -137
  583. package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksNativeLibraryResource.java +0 -18
  584. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SecondaryDBTest.java +0 -135
  585. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SliceTest.java +0 -80
  586. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SnapshotTest.java +0 -169
  587. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileManagerTest.java +0 -66
  588. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileReaderTest.java +0 -222
  589. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileWriterTest.java +0 -239
  590. package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstPartitionerTest.java +0 -72
  591. package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsCollectorTest.java +0 -55
  592. package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsTest.java +0 -168
  593. package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatsCallbackMock.java +0 -19
  594. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TableFilterTest.java +0 -106
  595. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TimedEnvTest.java +0 -40
  596. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBOptionsTest.java +0 -64
  597. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBTest.java +0 -177
  598. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionLogIteratorTest.java +0 -139
  599. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionOptionsTest.java +0 -72
  600. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionTest.java +0 -488
  601. package/vendor/rocksdb/java/src/test/java/org/rocksdb/TtlDBTest.java +0 -112
  602. package/vendor/rocksdb/java/src/test/java/org/rocksdb/Types.java +0 -43
  603. package/vendor/rocksdb/java/src/test/java/org/rocksdb/VerifyChecksumsTest.java +0 -213
  604. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WALRecoveryModeTest.java +0 -22
  605. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WalFilterTest.java +0 -165
  606. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchHandlerTest.java +0 -76
  607. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchTest.java +0 -528
  608. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchThreadedTest.java +0 -101
  609. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchWithIndexTest.java +0 -1068
  610. package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteOptionsTest.java +0 -75
  611. package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java +0 -21
  612. package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RocksJunitRunner.java +0 -174
  613. package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/TestableEventListener.java +0 -23
  614. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ByteBufferAllocator.java +0 -16
  615. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorIntTest.java +0 -267
  616. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorTest.java +0 -531
  617. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/CapturingWriteBatchHandler.java +0 -190
  618. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/DirectByteBufferAllocator.java +0 -18
  619. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/EnvironmentTest.java +0 -304
  620. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/HeapByteBufferAllocator.java +0 -18
  621. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/IntComparatorTest.java +0 -266
  622. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/JNIComparatorTest.java +0 -180
  623. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ReverseBytewiseComparatorIntTest.java +0 -270
  624. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/SizeUnitTest.java +0 -27
  625. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/TestUtil.java +0 -72
  626. package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/WriteBatchGetter.java +0 -139
  627. package/vendor/rocksdb/java/understanding_options.md +0 -79
  628. package/vendor/rocksdb/src.mk +0 -713
  629. package/vendor/rocksdb/thirdparty.inc +0 -268
  630. package/vendor/rocksdb/tools/Dockerfile +0 -5
  631. package/vendor/rocksdb/tools/advisor/advisor/__init__.py +0 -0
  632. package/vendor/rocksdb/tools/advisor/advisor/bench_runner.py +0 -39
  633. package/vendor/rocksdb/tools/advisor/advisor/config_optimizer_example.py +0 -140
  634. package/vendor/rocksdb/tools/advisor/advisor/db_bench_runner.py +0 -237
  635. package/vendor/rocksdb/tools/advisor/advisor/db_config_optimizer.py +0 -293
  636. package/vendor/rocksdb/tools/advisor/advisor/db_log_parser.py +0 -134
  637. package/vendor/rocksdb/tools/advisor/advisor/db_options_parser.py +0 -348
  638. package/vendor/rocksdb/tools/advisor/advisor/db_stats_fetcher.py +0 -346
  639. package/vendor/rocksdb/tools/advisor/advisor/db_timeseries_parser.py +0 -203
  640. package/vendor/rocksdb/tools/advisor/advisor/ini_parser.py +0 -76
  641. package/vendor/rocksdb/tools/advisor/advisor/rule_parser.py +0 -510
  642. package/vendor/rocksdb/tools/advisor/advisor/rule_parser_example.py +0 -98
  643. package/vendor/rocksdb/tools/advisor/advisor/rules.ini +0 -214
  644. package/vendor/rocksdb/tools/advisor/test/__init__.py +0 -0
  645. package/vendor/rocksdb/tools/advisor/test/input_files/LOG-0 +0 -30
  646. package/vendor/rocksdb/tools/advisor/test/input_files/LOG-1 +0 -25
  647. package/vendor/rocksdb/tools/advisor/test/input_files/OPTIONS-000005 +0 -49
  648. package/vendor/rocksdb/tools/advisor/test/input_files/log_stats_parser_keys_ts +0 -3
  649. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err1.ini +0 -56
  650. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err2.ini +0 -15
  651. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err3.ini +0 -15
  652. package/vendor/rocksdb/tools/advisor/test/input_files/rules_err4.ini +0 -15
  653. package/vendor/rocksdb/tools/advisor/test/input_files/test_rules.ini +0 -47
  654. package/vendor/rocksdb/tools/advisor/test/input_files/triggered_rules.ini +0 -83
  655. package/vendor/rocksdb/tools/advisor/test/test_db_bench_runner.py +0 -141
  656. package/vendor/rocksdb/tools/advisor/test/test_db_log_parser.py +0 -96
  657. package/vendor/rocksdb/tools/advisor/test/test_db_options_parser.py +0 -214
  658. package/vendor/rocksdb/tools/advisor/test/test_db_stats_fetcher.py +0 -121
  659. package/vendor/rocksdb/tools/advisor/test/test_rule_parser.py +0 -226
  660. package/vendor/rocksdb/tools/analyze_txn_stress_test.sh +0 -77
  661. package/vendor/rocksdb/tools/auto_sanity_test.sh +0 -93
  662. package/vendor/rocksdb/tools/backup_db.sh +0 -15
  663. package/vendor/rocksdb/tools/benchmark.sh +0 -1173
  664. package/vendor/rocksdb/tools/benchmark_ci.py +0 -182
  665. package/vendor/rocksdb/tools/benchmark_compare.sh +0 -342
  666. package/vendor/rocksdb/tools/benchmark_leveldb.sh +0 -187
  667. package/vendor/rocksdb/tools/block_cache_analyzer/__init__.py +0 -2
  668. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +0 -2000
  669. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.sh +0 -156
  670. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +0 -734
  671. package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +0 -729
  672. package/vendor/rocksdb/tools/check_all_python.py +0 -22
  673. package/vendor/rocksdb/tools/check_format_compatible.sh +0 -379
  674. package/vendor/rocksdb/tools/db_crashtest.py +0 -1018
  675. package/vendor/rocksdb/tools/dbench_monitor +0 -102
  676. package/vendor/rocksdb/tools/generate_random_db.sh +0 -31
  677. package/vendor/rocksdb/tools/ingest_external_sst.sh +0 -18
  678. package/vendor/rocksdb/tools/ldb_test.py +0 -955
  679. package/vendor/rocksdb/tools/pflag +0 -217
  680. package/vendor/rocksdb/tools/regression_test.sh +0 -525
  681. package/vendor/rocksdb/tools/restore_db.sh +0 -15
  682. package/vendor/rocksdb/tools/rocksdb_dump_test.sh +0 -9
  683. package/vendor/rocksdb/tools/run_blob_bench.sh +0 -223
  684. package/vendor/rocksdb/tools/run_flash_bench.sh +0 -359
  685. package/vendor/rocksdb/tools/run_leveldb.sh +0 -175
  686. package/vendor/rocksdb/tools/sample-dump.dmp +0 -0
  687. package/vendor/rocksdb/tools/verify_random_db.sh +0 -41
  688. package/vendor/rocksdb/tools/write_external_sst.sh +0 -26
  689. package/vendor/rocksdb/tools/write_stress_runner.py +0 -83
  690. package/vendor/rocksdb/util/crc32c_ppc.c +0 -94
  691. package/vendor/rocksdb/util/crc32c_ppc_asm.S +0 -756
@@ -1,1640 +0,0 @@
1
- // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2
- // This source code is licensed under both the GPLv2 (found in the
3
- // COPYING file in the root directory) and Apache 2.0 License
4
- // (found in the LICENSE.Apache file in the root directory).
5
- /**
6
- * Copyright (C) 2011 the original author or authors.
7
- * See the notice.md file distributed with this work for additional
8
- * information regarding copyright ownership.
9
- *
10
- * Licensed under the Apache License, Version 2.0 (the "License");
11
- * you may not use this file except in compliance with the License.
12
- * You may obtain a copy of the License at
13
- *
14
- * http://www.apache.org/licenses/LICENSE-2.0
15
- *
16
- * Unless required by applicable law or agreed to in writing, software
17
- * distributed under the License is distributed on an "AS IS" BASIS,
18
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
- * See the License for the specific language governing permissions and
20
- * limitations under the License.
21
- */
22
- package org.rocksdb.benchmark;
23
-
24
- import java.io.IOException;
25
- import java.lang.Runnable;
26
- import java.lang.Math;
27
- import java.io.File;
28
- import java.lang.reflect.Constructor;
29
- import java.lang.reflect.InvocationTargetException;
30
- import java.nio.ByteBuffer;
31
- import java.nio.file.Files;
32
- import java.util.Collection;
33
- import java.util.Date;
34
- import java.util.EnumMap;
35
- import java.util.List;
36
- import java.util.Map;
37
- import java.util.Random;
38
- import java.util.concurrent.TimeUnit;
39
- import java.util.Arrays;
40
- import java.util.ArrayList;
41
- import java.util.concurrent.Callable;
42
- import java.util.concurrent.Executors;
43
- import java.util.concurrent.ExecutorService;
44
- import java.util.concurrent.Future;
45
- import java.util.concurrent.TimeUnit;
46
- import org.rocksdb.*;
47
- import org.rocksdb.RocksMemEnv;
48
- import org.rocksdb.util.SizeUnit;
49
-
50
- class Stats {
51
- int id_;
52
- long start_;
53
- long finish_;
54
- double seconds_;
55
- long done_;
56
- long found_;
57
- long lastOpTime_;
58
- long nextReport_;
59
- long bytes_;
60
- StringBuilder message_;
61
- boolean excludeFromMerge_;
62
-
63
- // TODO(yhchiang): use the following arguments:
64
- // (Long)Flag.stats_interval
65
- // (Integer)Flag.stats_per_interval
66
-
67
- Stats(int id) {
68
- id_ = id;
69
- nextReport_ = 100;
70
- done_ = 0;
71
- bytes_ = 0;
72
- seconds_ = 0;
73
- start_ = System.nanoTime();
74
- lastOpTime_ = start_;
75
- finish_ = start_;
76
- found_ = 0;
77
- message_ = new StringBuilder("");
78
- excludeFromMerge_ = false;
79
- }
80
-
81
- void merge(final Stats other) {
82
- if (other.excludeFromMerge_) {
83
- return;
84
- }
85
-
86
- done_ += other.done_;
87
- found_ += other.found_;
88
- bytes_ += other.bytes_;
89
- seconds_ += other.seconds_;
90
- if (other.start_ < start_) start_ = other.start_;
91
- if (other.finish_ > finish_) finish_ = other.finish_;
92
-
93
- // Just keep the messages from one thread
94
- if (message_.length() == 0) {
95
- message_ = other.message_;
96
- }
97
- }
98
-
99
- void stop() {
100
- finish_ = System.nanoTime();
101
- seconds_ = (double) (finish_ - start_) * 1e-9;
102
- }
103
-
104
- void addMessage(String msg) {
105
- if (message_.length() > 0) {
106
- message_.append(" ");
107
- }
108
- message_.append(msg);
109
- }
110
-
111
- void setId(int id) { id_ = id; }
112
- void setExcludeFromMerge() { excludeFromMerge_ = true; }
113
-
114
- void finishedSingleOp(int bytes) {
115
- done_++;
116
- lastOpTime_ = System.nanoTime();
117
- bytes_ += bytes;
118
- if (done_ >= nextReport_) {
119
- if (nextReport_ < 1000) {
120
- nextReport_ += 100;
121
- } else if (nextReport_ < 5000) {
122
- nextReport_ += 500;
123
- } else if (nextReport_ < 10000) {
124
- nextReport_ += 1000;
125
- } else if (nextReport_ < 50000) {
126
- nextReport_ += 5000;
127
- } else if (nextReport_ < 100000) {
128
- nextReport_ += 10000;
129
- } else if (nextReport_ < 500000) {
130
- nextReport_ += 50000;
131
- } else {
132
- nextReport_ += 100000;
133
- }
134
- System.err.printf("... Task %s finished %d ops%30s\r", id_, done_, "");
135
- }
136
- }
137
-
138
- void report(String name) {
139
- // Pretend at least one op was done in case we are running a benchmark
140
- // that does not call FinishedSingleOp().
141
- if (done_ < 1) done_ = 1;
142
-
143
- StringBuilder extra = new StringBuilder("");
144
- if (bytes_ > 0) {
145
- // Rate is computed on actual elapsed time, not the sum of per-thread
146
- // elapsed times.
147
- double elapsed = (finish_ - start_) * 1e-9;
148
- extra.append(String.format("%6.1f MB/s", (bytes_ / 1048576.0) / elapsed));
149
- }
150
- extra.append(message_.toString());
151
- double elapsed = (finish_ - start_);
152
- double throughput = (double) done_ / (elapsed * 1e-9);
153
-
154
- System.out.format("%-12s : %11.3f micros/op %d ops/sec;%s%s\n",
155
- name, (elapsed * 1e-6) / done_,
156
- (long) throughput, (extra.length() == 0 ? "" : " "), extra.toString());
157
- }
158
- }
159
-
160
- public class DbBenchmark {
161
- enum Order {
162
- SEQUENTIAL,
163
- RANDOM
164
- }
165
-
166
- enum DBState {
167
- FRESH,
168
- EXISTING
169
- }
170
-
171
- static {
172
- RocksDB.loadLibrary();
173
- }
174
-
175
- abstract class BenchmarkTask implements Callable<Stats> {
176
- // TODO(yhchiang): use (Integer)Flag.perf_level.
177
- public BenchmarkTask(
178
- int tid, long randSeed, long numEntries, long keyRange) {
179
- tid_ = tid;
180
- rand_ = new Random(randSeed + tid * 1000);
181
- numEntries_ = numEntries;
182
- keyRange_ = keyRange;
183
- stats_ = new Stats(tid);
184
- }
185
-
186
- @Override public Stats call() throws RocksDBException {
187
- stats_.start_ = System.nanoTime();
188
- runTask();
189
- stats_.finish_ = System.nanoTime();
190
- return stats_;
191
- }
192
-
193
- abstract protected void runTask() throws RocksDBException;
194
-
195
- protected int tid_;
196
- protected Random rand_;
197
- protected long numEntries_;
198
- protected long keyRange_;
199
- protected Stats stats_;
200
-
201
- protected void getFixedKey(byte[] key, long sn) {
202
- generateKeyFromLong(key, sn);
203
- }
204
-
205
- protected void getRandomKey(byte[] key, long range) {
206
- generateKeyFromLong(key, Math.abs(rand_.nextLong() % range));
207
- }
208
- }
209
-
210
- abstract class WriteTask extends BenchmarkTask {
211
- public WriteTask(
212
- int tid, long randSeed, long numEntries, long keyRange,
213
- WriteOptions writeOpt, long entriesPerBatch) {
214
- super(tid, randSeed, numEntries, keyRange);
215
- writeOpt_ = writeOpt;
216
- entriesPerBatch_ = entriesPerBatch;
217
- maxWritesPerSecond_ = -1;
218
- }
219
-
220
- public WriteTask(
221
- int tid, long randSeed, long numEntries, long keyRange,
222
- WriteOptions writeOpt, long entriesPerBatch, long maxWritesPerSecond) {
223
- super(tid, randSeed, numEntries, keyRange);
224
- writeOpt_ = writeOpt;
225
- entriesPerBatch_ = entriesPerBatch;
226
- maxWritesPerSecond_ = maxWritesPerSecond;
227
- }
228
-
229
- @Override public void runTask() throws RocksDBException {
230
- if (numEntries_ != DbBenchmark.this.num_) {
231
- stats_.message_.append(String.format(" (%d ops)", numEntries_));
232
- }
233
- byte[] key = new byte[keySize_];
234
- byte[] value = new byte[valueSize_];
235
-
236
- try {
237
- if (entriesPerBatch_ == 1) {
238
- for (long i = 0; i < numEntries_; ++i) {
239
- getKey(key, i, keyRange_);
240
- DbBenchmark.this.gen_.generate(value);
241
- db_.put(writeOpt_, key, value);
242
- stats_.finishedSingleOp(keySize_ + valueSize_);
243
- writeRateControl(i);
244
- if (isFinished()) {
245
- return;
246
- }
247
- }
248
- } else {
249
- for (long i = 0; i < numEntries_; i += entriesPerBatch_) {
250
- WriteBatch batch = new WriteBatch();
251
- for (long j = 0; j < entriesPerBatch_; j++) {
252
- getKey(key, i + j, keyRange_);
253
- DbBenchmark.this.gen_.generate(value);
254
- batch.put(key, value);
255
- stats_.finishedSingleOp(keySize_ + valueSize_);
256
- }
257
- db_.write(writeOpt_, batch);
258
- batch.dispose();
259
- writeRateControl(i);
260
- if (isFinished()) {
261
- return;
262
- }
263
- }
264
- }
265
- } catch (InterruptedException e) {
266
- // thread has been terminated.
267
- }
268
- }
269
-
270
- protected void writeRateControl(long writeCount)
271
- throws InterruptedException {
272
- if (maxWritesPerSecond_ <= 0) return;
273
- long minInterval =
274
- writeCount * TimeUnit.SECONDS.toNanos(1) / maxWritesPerSecond_;
275
- long interval = System.nanoTime() - stats_.start_;
276
- if (minInterval - interval > TimeUnit.MILLISECONDS.toNanos(1)) {
277
- TimeUnit.NANOSECONDS.sleep(minInterval - interval);
278
- }
279
- }
280
-
281
- abstract protected void getKey(byte[] key, long id, long range);
282
- protected WriteOptions writeOpt_;
283
- protected long entriesPerBatch_;
284
- protected long maxWritesPerSecond_;
285
- }
286
-
287
- class WriteSequentialTask extends WriteTask {
288
- public WriteSequentialTask(
289
- int tid, long randSeed, long numEntries, long keyRange,
290
- WriteOptions writeOpt, long entriesPerBatch) {
291
- super(tid, randSeed, numEntries, keyRange,
292
- writeOpt, entriesPerBatch);
293
- }
294
- public WriteSequentialTask(
295
- int tid, long randSeed, long numEntries, long keyRange,
296
- WriteOptions writeOpt, long entriesPerBatch,
297
- long maxWritesPerSecond) {
298
- super(tid, randSeed, numEntries, keyRange,
299
- writeOpt, entriesPerBatch,
300
- maxWritesPerSecond);
301
- }
302
- @Override protected void getKey(byte[] key, long id, long range) {
303
- getFixedKey(key, id);
304
- }
305
- }
306
-
307
- class WriteRandomTask extends WriteTask {
308
- public WriteRandomTask(
309
- int tid, long randSeed, long numEntries, long keyRange,
310
- WriteOptions writeOpt, long entriesPerBatch) {
311
- super(tid, randSeed, numEntries, keyRange,
312
- writeOpt, entriesPerBatch);
313
- }
314
- public WriteRandomTask(
315
- int tid, long randSeed, long numEntries, long keyRange,
316
- WriteOptions writeOpt, long entriesPerBatch,
317
- long maxWritesPerSecond) {
318
- super(tid, randSeed, numEntries, keyRange,
319
- writeOpt, entriesPerBatch,
320
- maxWritesPerSecond);
321
- }
322
- @Override protected void getKey(byte[] key, long id, long range) {
323
- getRandomKey(key, range);
324
- }
325
- }
326
-
327
- class WriteUniqueRandomTask extends WriteTask {
328
- static final int MAX_BUFFER_SIZE = 10000000;
329
- public WriteUniqueRandomTask(
330
- int tid, long randSeed, long numEntries, long keyRange,
331
- WriteOptions writeOpt, long entriesPerBatch) {
332
- super(tid, randSeed, numEntries, keyRange,
333
- writeOpt, entriesPerBatch);
334
- initRandomKeySequence();
335
- }
336
- public WriteUniqueRandomTask(
337
- int tid, long randSeed, long numEntries, long keyRange,
338
- WriteOptions writeOpt, long entriesPerBatch,
339
- long maxWritesPerSecond) {
340
- super(tid, randSeed, numEntries, keyRange,
341
- writeOpt, entriesPerBatch,
342
- maxWritesPerSecond);
343
- initRandomKeySequence();
344
- }
345
- @Override protected void getKey(byte[] key, long id, long range) {
346
- generateKeyFromLong(key, nextUniqueRandom());
347
- }
348
-
349
- protected void initRandomKeySequence() {
350
- bufferSize_ = MAX_BUFFER_SIZE;
351
- if (bufferSize_ > keyRange_) {
352
- bufferSize_ = (int) keyRange_;
353
- }
354
- currentKeyCount_ = bufferSize_;
355
- keyBuffer_ = new long[MAX_BUFFER_SIZE];
356
- for (int k = 0; k < bufferSize_; ++k) {
357
- keyBuffer_[k] = k;
358
- }
359
- }
360
-
361
- /**
362
- * Semi-randomly return the next unique key. It is guaranteed to be
363
- * fully random if keyRange_ <= MAX_BUFFER_SIZE.
364
- */
365
- long nextUniqueRandom() {
366
- if (bufferSize_ == 0) {
367
- System.err.println("bufferSize_ == 0.");
368
- return 0;
369
- }
370
- int r = rand_.nextInt(bufferSize_);
371
- // randomly pick one from the keyBuffer
372
- long randKey = keyBuffer_[r];
373
- if (currentKeyCount_ < keyRange_) {
374
- // if we have not yet inserted all keys, insert next new key to [r].
375
- keyBuffer_[r] = currentKeyCount_++;
376
- } else {
377
- // move the last element to [r] and decrease the size by 1.
378
- keyBuffer_[r] = keyBuffer_[--bufferSize_];
379
- }
380
- return randKey;
381
- }
382
-
383
- int bufferSize_;
384
- long currentKeyCount_;
385
- long[] keyBuffer_;
386
- }
387
-
388
- class ReadRandomTask extends BenchmarkTask {
389
- public ReadRandomTask(
390
- int tid, long randSeed, long numEntries, long keyRange) {
391
- super(tid, randSeed, numEntries, keyRange);
392
- }
393
- @Override public void runTask() throws RocksDBException {
394
- byte[] key = new byte[keySize_];
395
- byte[] value = new byte[valueSize_];
396
- for (long i = 0; i < numEntries_; i++) {
397
- getRandomKey(key, keyRange_);
398
- int len = db_.get(key, value);
399
- if (len != RocksDB.NOT_FOUND) {
400
- stats_.found_++;
401
- stats_.finishedSingleOp(keySize_ + valueSize_);
402
- } else {
403
- stats_.finishedSingleOp(keySize_);
404
- }
405
- if (isFinished()) {
406
- return;
407
- }
408
- }
409
- }
410
- }
411
-
412
- class ReadSequentialTask extends BenchmarkTask {
413
- public ReadSequentialTask(
414
- int tid, long randSeed, long numEntries, long keyRange) {
415
- super(tid, randSeed, numEntries, keyRange);
416
- }
417
- @Override public void runTask() throws RocksDBException {
418
- RocksIterator iter = db_.newIterator();
419
- long i;
420
- for (iter.seekToFirst(), i = 0;
421
- iter.isValid() && i < numEntries_;
422
- iter.next(), ++i) {
423
- stats_.found_++;
424
- stats_.finishedSingleOp(iter.key().length + iter.value().length);
425
- if (isFinished()) {
426
- iter.dispose();
427
- return;
428
- }
429
- }
430
- iter.dispose();
431
- }
432
- }
433
-
434
- public DbBenchmark(Map<Flag, Object> flags) throws Exception {
435
- benchmarks_ = (List<String>) flags.get(Flag.benchmarks);
436
- num_ = (Integer) flags.get(Flag.num);
437
- threadNum_ = (Integer) flags.get(Flag.threads);
438
- reads_ = (Integer) (flags.get(Flag.reads) == null ?
439
- flags.get(Flag.num) : flags.get(Flag.reads));
440
- keySize_ = (Integer) flags.get(Flag.key_size);
441
- valueSize_ = (Integer) flags.get(Flag.value_size);
442
- compressionRatio_ = (Double) flags.get(Flag.compression_ratio);
443
- useExisting_ = (Boolean) flags.get(Flag.use_existing_db);
444
- randSeed_ = (Long) flags.get(Flag.seed);
445
- databaseDir_ = (String) flags.get(Flag.db);
446
- writesPerSeconds_ = (Integer) flags.get(Flag.writes_per_second);
447
- memtable_ = (String) flags.get(Flag.memtablerep);
448
- maxWriteBufferNumber_ = (Integer) flags.get(Flag.max_write_buffer_number);
449
- prefixSize_ = (Integer) flags.get(Flag.prefix_size);
450
- keysPerPrefix_ = (Integer) flags.get(Flag.keys_per_prefix);
451
- hashBucketCount_ = (Long) flags.get(Flag.hash_bucket_count);
452
- usePlainTable_ = (Boolean) flags.get(Flag.use_plain_table);
453
- useMemenv_ = (Boolean) flags.get(Flag.use_mem_env);
454
- flags_ = flags;
455
- finishLock_ = new Object();
456
- // options.setPrefixSize((Integer)flags_.get(Flag.prefix_size));
457
- // options.setKeysPerPrefix((Long)flags_.get(Flag.keys_per_prefix));
458
- compressionType_ = (String) flags.get(Flag.compression_type);
459
- compression_ = CompressionType.NO_COMPRESSION;
460
- try {
461
- if (compressionType_!=null) {
462
- final CompressionType compressionType =
463
- CompressionType.getCompressionType(compressionType_);
464
- if (compressionType != null &&
465
- compressionType != CompressionType.NO_COMPRESSION) {
466
- System.loadLibrary(compressionType.getLibraryName());
467
- }
468
-
469
- }
470
- } catch (UnsatisfiedLinkError e) {
471
- System.err.format("Unable to load %s library:%s%n" +
472
- "No compression is used.%n",
473
- compressionType_, e.toString());
474
- compressionType_ = "none";
475
- }
476
- gen_ = new RandomGenerator(randSeed_, compressionRatio_);
477
- }
478
-
479
- private void prepareReadOptions(ReadOptions options) {
480
- options.setVerifyChecksums((Boolean)flags_.get(Flag.verify_checksum));
481
- options.setTailing((Boolean)flags_.get(Flag.use_tailing_iterator));
482
- }
483
-
484
- private void prepareWriteOptions(WriteOptions options) {
485
- options.setSync((Boolean)flags_.get(Flag.sync));
486
- options.setDisableWAL((Boolean)flags_.get(Flag.disable_wal));
487
- }
488
-
489
- private void prepareOptions(Options options) throws RocksDBException {
490
- if (!useExisting_) {
491
- options.setCreateIfMissing(true);
492
- } else {
493
- options.setCreateIfMissing(false);
494
- }
495
- if (useMemenv_) {
496
- options.setEnv(new RocksMemEnv(Env.getDefault()));
497
- }
498
- switch (memtable_) {
499
- case "skip_list":
500
- options.setMemTableConfig(new SkipListMemTableConfig());
501
- break;
502
- case "vector":
503
- options.setMemTableConfig(new VectorMemTableConfig());
504
- break;
505
- case "hash_linkedlist":
506
- options.setMemTableConfig(
507
- new HashLinkedListMemTableConfig()
508
- .setBucketCount(hashBucketCount_));
509
- options.useFixedLengthPrefixExtractor(prefixSize_);
510
- break;
511
- case "hash_skiplist":
512
- case "prefix_hash":
513
- options.setMemTableConfig(
514
- new HashSkipListMemTableConfig()
515
- .setBucketCount(hashBucketCount_));
516
- options.useFixedLengthPrefixExtractor(prefixSize_);
517
- break;
518
- default:
519
- System.err.format(
520
- "unable to detect the specified memtable, " +
521
- "use the default memtable factory %s%n",
522
- options.memTableFactoryName());
523
- break;
524
- }
525
- if (usePlainTable_) {
526
- options.setTableFormatConfig(
527
- new PlainTableConfig().setKeySize(keySize_));
528
- } else {
529
- BlockBasedTableConfig table_options = new BlockBasedTableConfig();
530
- table_options.setBlockSize((Long)flags_.get(Flag.block_size))
531
- .setBlockCacheSize((Long)flags_.get(Flag.cache_size))
532
- .setCacheNumShardBits(
533
- (Integer)flags_.get(Flag.cache_numshardbits));
534
- options.setTableFormatConfig(table_options);
535
- }
536
- options.setWriteBufferSize(
537
- (Long)flags_.get(Flag.write_buffer_size));
538
- options.setMaxWriteBufferNumber(
539
- (Integer)flags_.get(Flag.max_write_buffer_number));
540
- options.setMaxBackgroundCompactions(
541
- (Integer)flags_.get(Flag.max_background_compactions));
542
- options.getEnv().setBackgroundThreads(
543
- (Integer)flags_.get(Flag.max_background_compactions));
544
- options.setMaxBackgroundFlushes(
545
- (Integer)flags_.get(Flag.max_background_flushes));
546
- options.setMaxBackgroundJobs((Integer) flags_.get(Flag.max_background_jobs));
547
- options.setMaxOpenFiles(
548
- (Integer)flags_.get(Flag.open_files));
549
- options.setUseFsync(
550
- (Boolean)flags_.get(Flag.use_fsync));
551
- options.setWalDir(
552
- (String)flags_.get(Flag.wal_dir));
553
- options.setDeleteObsoleteFilesPeriodMicros(
554
- (Integer)flags_.get(Flag.delete_obsolete_files_period_micros));
555
- options.setTableCacheNumshardbits(
556
- (Integer)flags_.get(Flag.table_cache_numshardbits));
557
- options.setAllowMmapReads(
558
- (Boolean)flags_.get(Flag.mmap_read));
559
- options.setAllowMmapWrites(
560
- (Boolean)flags_.get(Flag.mmap_write));
561
- options.setAdviseRandomOnOpen(
562
- (Boolean)flags_.get(Flag.advise_random_on_open));
563
- options.setUseAdaptiveMutex(
564
- (Boolean)flags_.get(Flag.use_adaptive_mutex));
565
- options.setBytesPerSync(
566
- (Long)flags_.get(Flag.bytes_per_sync));
567
- options.setBloomLocality(
568
- (Integer)flags_.get(Flag.bloom_locality));
569
- options.setMinWriteBufferNumberToMerge(
570
- (Integer)flags_.get(Flag.min_write_buffer_number_to_merge));
571
- options.setMemtablePrefixBloomSizeRatio((Double) flags_.get(Flag.memtable_bloom_size_ratio));
572
- options.setMemtableWholeKeyFiltering((Boolean) flags_.get(Flag.memtable_whole_key_filtering));
573
- options.setNumLevels(
574
- (Integer)flags_.get(Flag.num_levels));
575
- options.setTargetFileSizeBase(
576
- (Integer)flags_.get(Flag.target_file_size_base));
577
- options.setTargetFileSizeMultiplier((Integer)flags_.get(Flag.target_file_size_multiplier));
578
- options.setMaxBytesForLevelBase(
579
- (Integer)flags_.get(Flag.max_bytes_for_level_base));
580
- options.setMaxBytesForLevelMultiplier((Double) flags_.get(Flag.max_bytes_for_level_multiplier));
581
- options.setLevelZeroStopWritesTrigger(
582
- (Integer)flags_.get(Flag.level0_stop_writes_trigger));
583
- options.setLevelZeroSlowdownWritesTrigger(
584
- (Integer)flags_.get(Flag.level0_slowdown_writes_trigger));
585
- options.setLevelZeroFileNumCompactionTrigger(
586
- (Integer)flags_.get(Flag.level0_file_num_compaction_trigger));
587
- options.setMaxCompactionBytes(
588
- (Long) flags_.get(Flag.max_compaction_bytes));
589
- options.setDisableAutoCompactions(
590
- (Boolean)flags_.get(Flag.disable_auto_compactions));
591
- options.setMaxSuccessiveMerges(
592
- (Integer)flags_.get(Flag.max_successive_merges));
593
- options.setWalTtlSeconds((Long)flags_.get(Flag.wal_ttl_seconds));
594
- options.setWalSizeLimitMB((Long)flags_.get(Flag.wal_size_limit_MB));
595
- if(flags_.get(Flag.java_comparator) != null) {
596
- options.setComparator(
597
- (AbstractComparator)flags_.get(Flag.java_comparator));
598
- }
599
-
600
- /* TODO(yhchiang): enable the following parameters
601
- options.setCompressionType((String)flags_.get(Flag.compression_type));
602
- options.setCompressionLevel((Integer)flags_.get(Flag.compression_level));
603
- options.setMinLevelToCompress((Integer)flags_.get(Flag.min_level_to_compress));
604
- options.setStatistics((Boolean)flags_.get(Flag.statistics));
605
- options.setUniversalSizeRatio(
606
- (Integer)flags_.get(Flag.universal_size_ratio));
607
- options.setUniversalMinMergeWidth(
608
- (Integer)flags_.get(Flag.universal_min_merge_width));
609
- options.setUniversalMaxMergeWidth(
610
- (Integer)flags_.get(Flag.universal_max_merge_width));
611
- options.setUniversalMaxSizeAmplificationPercent(
612
- (Integer)flags_.get(Flag.universal_max_size_amplification_percent));
613
- options.setUniversalCompressionSizePercent(
614
- (Integer)flags_.get(Flag.universal_compression_size_percent));
615
- // TODO(yhchiang): add RocksDB.openForReadOnly() to enable Flag.readonly
616
- // TODO(yhchiang): enable Flag.merge_operator by switch
617
- options.setAccessHintOnCompactionStart(
618
- (String)flags_.get(Flag.compaction_fadvice));
619
- // available values of fadvice are "NONE", "NORMAL", "SEQUENTIAL", "WILLNEED" for fadvice
620
- */
621
- }
622
-
623
- private void run() throws RocksDBException {
624
- if (!useExisting_) {
625
- destroyDb();
626
- }
627
- Options options = new Options();
628
- prepareOptions(options);
629
- open(options);
630
-
631
- printHeader(options);
632
-
633
- for (String benchmark : benchmarks_) {
634
- List<Callable<Stats>> tasks = new ArrayList<Callable<Stats>>();
635
- List<Callable<Stats>> bgTasks = new ArrayList<Callable<Stats>>();
636
- WriteOptions writeOpt = new WriteOptions();
637
- prepareWriteOptions(writeOpt);
638
- ReadOptions readOpt = new ReadOptions();
639
- prepareReadOptions(readOpt);
640
- int currentTaskId = 0;
641
- boolean known = true;
642
-
643
- switch (benchmark) {
644
- case "fillseq":
645
- tasks.add(new WriteSequentialTask(
646
- currentTaskId++, randSeed_, num_, num_, writeOpt, 1));
647
- break;
648
- case "fillbatch":
649
- tasks.add(
650
- new WriteSequentialTask(currentTaskId++, randSeed_, num_, num_, writeOpt, 1000));
651
- break;
652
- case "fillrandom":
653
- tasks.add(new WriteRandomTask(
654
- currentTaskId++, randSeed_, num_, num_, writeOpt, 1));
655
- break;
656
- case "filluniquerandom":
657
- tasks.add(new WriteUniqueRandomTask(
658
- currentTaskId++, randSeed_, num_, num_, writeOpt, 1));
659
- break;
660
- case "fillsync":
661
- writeOpt.setSync(true);
662
- tasks.add(new WriteRandomTask(
663
- currentTaskId++, randSeed_, num_ / 1000, num_ / 1000,
664
- writeOpt, 1));
665
- break;
666
- case "readseq":
667
- for (int t = 0; t < threadNum_; ++t) {
668
- tasks.add(new ReadSequentialTask(
669
- currentTaskId++, randSeed_, reads_ / threadNum_, num_));
670
- }
671
- break;
672
- case "readrandom":
673
- for (int t = 0; t < threadNum_; ++t) {
674
- tasks.add(new ReadRandomTask(
675
- currentTaskId++, randSeed_, reads_ / threadNum_, num_));
676
- }
677
- break;
678
- case "readwhilewriting":
679
- WriteTask writeTask = new WriteRandomTask(
680
- -1, randSeed_, Long.MAX_VALUE, num_, writeOpt, 1, writesPerSeconds_);
681
- writeTask.stats_.setExcludeFromMerge();
682
- bgTasks.add(writeTask);
683
- for (int t = 0; t < threadNum_; ++t) {
684
- tasks.add(new ReadRandomTask(
685
- currentTaskId++, randSeed_, reads_ / threadNum_, num_));
686
- }
687
- break;
688
- case "readhot":
689
- for (int t = 0; t < threadNum_; ++t) {
690
- tasks.add(new ReadRandomTask(
691
- currentTaskId++, randSeed_, reads_ / threadNum_, num_ / 100));
692
- }
693
- break;
694
- case "delete":
695
- destroyDb();
696
- open(options);
697
- break;
698
- default:
699
- known = false;
700
- System.err.println("Unknown benchmark: " + benchmark);
701
- break;
702
- }
703
- if (known) {
704
- ExecutorService executor = Executors.newCachedThreadPool();
705
- ExecutorService bgExecutor = Executors.newCachedThreadPool();
706
- try {
707
- // measure only the main executor time
708
- List<Future<Stats>> bgResults = new ArrayList<Future<Stats>>();
709
- for (Callable bgTask : bgTasks) {
710
- bgResults.add(bgExecutor.submit(bgTask));
711
- }
712
- start();
713
- List<Future<Stats>> results = executor.invokeAll(tasks);
714
- executor.shutdown();
715
- boolean finished = executor.awaitTermination(10, TimeUnit.SECONDS);
716
- if (!finished) {
717
- System.out.format(
718
- "Benchmark %s was not finished before timeout.",
719
- benchmark);
720
- executor.shutdownNow();
721
- }
722
- setFinished(true);
723
- bgExecutor.shutdown();
724
- finished = bgExecutor.awaitTermination(10, TimeUnit.SECONDS);
725
- if (!finished) {
726
- System.out.format(
727
- "Benchmark %s was not finished before timeout.",
728
- benchmark);
729
- bgExecutor.shutdownNow();
730
- }
731
-
732
- stop(benchmark, results, currentTaskId);
733
- } catch (InterruptedException e) {
734
- System.err.println(e);
735
- }
736
- }
737
- writeOpt.dispose();
738
- readOpt.dispose();
739
- }
740
- options.dispose();
741
- db_.close();
742
- }
743
-
744
- private void printHeader(Options options) {
745
- int kKeySize = 16;
746
- System.out.printf("Keys: %d bytes each\n", kKeySize);
747
- System.out.printf("Values: %d bytes each (%d bytes after compression)\n",
748
- valueSize_,
749
- (int) (valueSize_ * compressionRatio_ + 0.5));
750
- System.out.printf("Entries: %d\n", num_);
751
- System.out.printf("RawSize: %.1f MB (estimated)\n",
752
- ((double)(kKeySize + valueSize_) * num_) / SizeUnit.MB);
753
- System.out.printf("FileSize: %.1f MB (estimated)\n",
754
- (((kKeySize + valueSize_ * compressionRatio_) * num_) / SizeUnit.MB));
755
- System.out.format("Memtable Factory: %s%n", options.memTableFactoryName());
756
- System.out.format("Prefix: %d bytes%n", prefixSize_);
757
- System.out.format("Compression: %s%n", compressionType_);
758
- printWarnings();
759
- System.out.printf("------------------------------------------------\n");
760
- }
761
-
762
- void printWarnings() {
763
- boolean assertsEnabled = false;
764
- assert assertsEnabled = true; // Intentional side effect!!!
765
- if (assertsEnabled) {
766
- System.out.printf(
767
- "WARNING: Assertions are enabled; benchmarks unnecessarily slow\n");
768
- }
769
- }
770
-
771
- private void open(Options options) throws RocksDBException {
772
- System.out.println("Using database directory: " + databaseDir_);
773
- db_ = RocksDB.open(options, databaseDir_);
774
- }
775
-
776
- private void start() {
777
- setFinished(false);
778
- startTime_ = System.nanoTime();
779
- }
780
-
781
- private void stop(
782
- String benchmark, List<Future<Stats>> results, int concurrentThreads) {
783
- long endTime = System.nanoTime();
784
- double elapsedSeconds =
785
- 1.0d * (endTime - startTime_) / TimeUnit.SECONDS.toNanos(1);
786
-
787
- Stats stats = new Stats(-1);
788
- int taskFinishedCount = 0;
789
- for (Future<Stats> result : results) {
790
- if (result.isDone()) {
791
- try {
792
- Stats taskStats = result.get(3, TimeUnit.SECONDS);
793
- if (!result.isCancelled()) {
794
- taskFinishedCount++;
795
- }
796
- stats.merge(taskStats);
797
- } catch (Exception e) {
798
- // then it's not successful, the output will indicate this
799
- }
800
- }
801
- }
802
- String extra = "";
803
- if (benchmark.indexOf("read") >= 0) {
804
- extra = String.format(" %d / %d found; ", stats.found_, stats.done_);
805
- } else {
806
- extra = String.format(" %d ops done; ", stats.done_);
807
- }
808
-
809
- System.out.printf(
810
- "%-16s : %11.5f micros/op; %6.1f MB/s;%s %d / %d task(s) finished.\n",
811
- benchmark, elapsedSeconds / stats.done_ * 1e6,
812
- (stats.bytes_ / 1048576.0) / elapsedSeconds, extra,
813
- taskFinishedCount, concurrentThreads);
814
- }
815
-
816
- public void generateKeyFromLong(byte[] slice, long n) {
817
- assert(n >= 0);
818
- int startPos = 0;
819
-
820
- if (keysPerPrefix_ > 0) {
821
- long numPrefix = (num_ + keysPerPrefix_ - 1) / keysPerPrefix_;
822
- long prefix = n % numPrefix;
823
- int bytesToFill = Math.min(prefixSize_, 8);
824
- for (int i = 0; i < bytesToFill; ++i) {
825
- slice[i] = (byte) (prefix % 256);
826
- prefix /= 256;
827
- }
828
- for (int i = 8; i < bytesToFill; ++i) {
829
- slice[i] = '0';
830
- }
831
- startPos = bytesToFill;
832
- }
833
-
834
- for (int i = slice.length - 1; i >= startPos; --i) {
835
- slice[i] = (byte) ('0' + (n % 10));
836
- n /= 10;
837
- }
838
- }
839
-
840
- private void destroyDb() {
841
- if (db_ != null) {
842
- db_.close();
843
- }
844
- // TODO(yhchiang): develop our own FileUtil
845
- // FileUtil.deleteDir(databaseDir_);
846
- }
847
-
848
- private void printStats() {
849
- }
850
-
851
- static void printHelp() {
852
- System.out.println("usage:");
853
- for (Flag flag : Flag.values()) {
854
- System.out.format(" --%s%n\t%s%n",
855
- flag.name(),
856
- flag.desc());
857
- if (flag.getDefaultValue() != null) {
858
- System.out.format("\tDEFAULT: %s%n",
859
- flag.getDefaultValue().toString());
860
- }
861
- }
862
- }
863
-
864
- public static void main(String[] args) throws Exception {
865
- Map<Flag, Object> flags = new EnumMap<Flag, Object>(Flag.class);
866
- for (Flag flag : Flag.values()) {
867
- if (flag.getDefaultValue() != null) {
868
- flags.put(flag, flag.getDefaultValue());
869
- }
870
- }
871
- for (String arg : args) {
872
- boolean valid = false;
873
- if (arg.equals("--help") || arg.equals("-h")) {
874
- printHelp();
875
- System.exit(0);
876
- }
877
- if (arg.startsWith("--")) {
878
- try {
879
- String[] parts = arg.substring(2).split("=");
880
- if (parts.length >= 1) {
881
- Flag key = Flag.valueOf(parts[0]);
882
- if (key != null) {
883
- Object value = null;
884
- if (parts.length >= 2) {
885
- value = key.parseValue(parts[1]);
886
- }
887
- flags.put(key, value);
888
- valid = true;
889
- }
890
- }
891
- }
892
- catch (Exception e) {
893
- }
894
- }
895
- if (!valid) {
896
- System.err.println("Invalid argument " + arg);
897
- System.exit(1);
898
- }
899
- }
900
- new DbBenchmark(flags).run();
901
- }
902
-
903
- private enum Flag {
904
- benchmarks(Arrays.asList("fillseq", "readrandom", "fillrandom"),
905
- "Comma-separated list of operations to run in the specified order\n"
906
- + "\tActual benchmarks:\n"
907
- + "\t\tfillseq -- write N values in sequential key order in async mode.\n"
908
- + "\t\tfillrandom -- write N values in random key order in async mode.\n"
909
- + "\t\tfillbatch -- write N/1000 batch where each batch has 1000 values\n"
910
- + "\t\t in sequential key order in sync mode.\n"
911
- + "\t\tfillsync -- write N/100 values in random key order in sync mode.\n"
912
- + "\t\tfill100K -- write N/1000 100K values in random order in async mode.\n"
913
- + "\t\treadseq -- read N times sequentially.\n"
914
- + "\t\treadrandom -- read N times in random order.\n"
915
- + "\t\treadhot -- read N times in random order from 1% section of DB.\n"
916
- + "\t\treadwhilewriting -- measure the read performance of multiple readers\n"
917
- + "\t\t with a bg single writer. The write rate of the bg\n"
918
- + "\t\t is capped by --writes_per_second.\n"
919
- + "\tMeta Operations:\n"
920
- + "\t\tdelete -- delete DB") {
921
- @Override public Object parseValue(String value) {
922
- return new ArrayList<String>(Arrays.asList(value.split(",")));
923
- }
924
- },
925
- compression_ratio(0.5d,
926
- "Arrange to generate values that shrink to this fraction of\n" +
927
- "\ttheir original size after compression.") {
928
- @Override public Object parseValue(String value) {
929
- return Double.parseDouble(value);
930
- }
931
- },
932
- use_existing_db(false,
933
- "If true, do not destroy the existing database. If you set this\n" +
934
- "\tflag and also specify a benchmark that wants a fresh database,\n" +
935
- "\tthat benchmark will fail.") {
936
- @Override public Object parseValue(String value) {
937
- return parseBoolean(value);
938
- }
939
- },
940
- num(1000000,
941
- "Number of key/values to place in database.") {
942
- @Override public Object parseValue(String value) {
943
- return Integer.parseInt(value);
944
- }
945
- },
946
- threads(1,
947
- "Number of concurrent threads to run.") {
948
- @Override public Object parseValue(String value) {
949
- return Integer.parseInt(value);
950
- }
951
- },
952
- reads(null,
953
- "Number of read operations to do. If negative, do --nums reads.") {
954
- @Override public Object parseValue(String value) {
955
- return Integer.parseInt(value);
956
- }
957
- },
958
- key_size(16,
959
- "The size of each key in bytes.") {
960
- @Override public Object parseValue(String value) {
961
- return Integer.parseInt(value);
962
- }
963
- },
964
- value_size(100,
965
- "The size of each value in bytes.") {
966
- @Override public Object parseValue(String value) {
967
- return Integer.parseInt(value);
968
- }
969
- },
970
- write_buffer_size(4L * SizeUnit.MB,
971
- "Number of bytes to buffer in memtable before compacting\n" +
972
- "\t(initialized to default value by 'main'.)") {
973
- @Override public Object parseValue(String value) {
974
- return Long.parseLong(value);
975
- }
976
- },
977
- max_write_buffer_number(2,
978
- "The number of in-memory memtables. Each memtable is of size\n" +
979
- "\twrite_buffer_size.") {
980
- @Override public Object parseValue(String value) {
981
- return Integer.parseInt(value);
982
- }
983
- },
984
- prefix_size(0, "Controls the prefix size for HashSkipList, HashLinkedList,\n" +
985
- "\tand plain table.") {
986
- @Override public Object parseValue(String value) {
987
- return Integer.parseInt(value);
988
- }
989
- },
990
- keys_per_prefix(0, "Controls the average number of keys generated\n" +
991
- "\tper prefix, 0 means no special handling of the prefix,\n" +
992
- "\ti.e. use the prefix comes with the generated random number.") {
993
- @Override public Object parseValue(String value) {
994
- return Integer.parseInt(value);
995
- }
996
- },
997
- memtablerep("skip_list",
998
- "The memtable format. Available options are\n" +
999
- "\tskip_list,\n" +
1000
- "\tvector,\n" +
1001
- "\thash_linkedlist,\n" +
1002
- "\thash_skiplist (prefix_hash.)") {
1003
- @Override public Object parseValue(String value) {
1004
- return value;
1005
- }
1006
- },
1007
- hash_bucket_count(SizeUnit.MB,
1008
- "The number of hash buckets used in the hash-bucket-based\n" +
1009
- "\tmemtables. Memtables that currently support this argument are\n" +
1010
- "\thash_linkedlist and hash_skiplist.") {
1011
- @Override public Object parseValue(String value) {
1012
- return Long.parseLong(value);
1013
- }
1014
- },
1015
- writes_per_second(10000,
1016
- "The write-rate of the background writer used in the\n" +
1017
- "\t`readwhilewriting` benchmark. Non-positive number indicates\n" +
1018
- "\tusing an unbounded write-rate in `readwhilewriting` benchmark.") {
1019
- @Override public Object parseValue(String value) {
1020
- return Integer.parseInt(value);
1021
- }
1022
- },
1023
- use_plain_table(false,
1024
- "Use plain-table sst format.") {
1025
- @Override public Object parseValue(String value) {
1026
- return parseBoolean(value);
1027
- }
1028
- },
1029
- cache_size(-1L,
1030
- "Number of bytes to use as a cache of uncompressed data.\n" +
1031
- "\tNegative means use default settings.") {
1032
- @Override public Object parseValue(String value) {
1033
- return Long.parseLong(value);
1034
- }
1035
- },
1036
- seed(0L,
1037
- "Seed base for random number generators.") {
1038
- @Override public Object parseValue(String value) {
1039
- return Long.parseLong(value);
1040
- }
1041
- },
1042
- num_levels(7,
1043
- "The total number of levels.") {
1044
- @Override public Object parseValue(String value) {
1045
- return Integer.parseInt(value);
1046
- }
1047
- },
1048
- numdistinct(1000L,
1049
- "Number of distinct keys to use. Used in RandomWithVerify to\n" +
1050
- "\tread/write on fewer keys so that gets are more likely to find the\n" +
1051
- "\tkey and puts are more likely to update the same key.") {
1052
- @Override public Object parseValue(String value) {
1053
- return Long.parseLong(value);
1054
- }
1055
- },
1056
- merge_keys(-1L,
1057
- "Number of distinct keys to use for MergeRandom and\n" +
1058
- "\tReadRandomMergeRandom.\n" +
1059
- "\tIf negative, there will be FLAGS_num keys.") {
1060
- @Override public Object parseValue(String value) {
1061
- return Long.parseLong(value);
1062
- }
1063
- },
1064
- bloom_locality(0,"Control bloom filter probes locality.") {
1065
- @Override public Object parseValue(String value) {
1066
- return Integer.parseInt(value);
1067
- }
1068
- },
1069
- duration(0,"Time in seconds for the random-ops tests to run.\n" +
1070
- "\tWhen 0 then num & reads determine the test duration.") {
1071
- @Override public Object parseValue(String value) {
1072
- return Integer.parseInt(value);
1073
- }
1074
- },
1075
- num_multi_db(0,
1076
- "Number of DBs used in the benchmark. 0 means single DB.") {
1077
- @Override public Object parseValue(String value) {
1078
- return Integer.parseInt(value);
1079
- }
1080
- },
1081
- histogram(false,"Print histogram of operation timings.") {
1082
- @Override public Object parseValue(String value) {
1083
- return parseBoolean(value);
1084
- }
1085
- },
1086
- min_write_buffer_number_to_merge(
1087
- defaultOptions_.minWriteBufferNumberToMerge(),
1088
- "The minimum number of write buffers that will be merged together\n" +
1089
- "\tbefore writing to storage. This is cheap because it is an\n" +
1090
- "\tin-memory merge. If this feature is not enabled, then all these\n" +
1091
- "\twrite buffers are flushed to L0 as separate files and this\n" +
1092
- "\tincreases read amplification because a get request has to check\n" +
1093
- "\tin all of these files. Also, an in-memory merge may result in\n" +
1094
- "\twriting less data to storage if there are duplicate records\n" +
1095
- "\tin each of these individual write buffers.") {
1096
- @Override public Object parseValue(String value) {
1097
- return Integer.parseInt(value);
1098
- }
1099
- },
1100
- max_background_compactions(
1101
- defaultOptions_.maxBackgroundCompactions(),
1102
- "The maximum number of concurrent background compactions\n" +
1103
- "\tthat can occur in parallel.") {
1104
- @Override public Object parseValue(String value) {
1105
- return Integer.parseInt(value);
1106
- }
1107
- },
1108
- max_background_flushes(
1109
- defaultOptions_.maxBackgroundFlushes(),
1110
- "The maximum number of concurrent background flushes\n" +
1111
- "\tthat can occur in parallel.") {
1112
- @Override public Object parseValue(String value) {
1113
- return Integer.parseInt(value);
1114
- }
1115
- },
1116
- max_background_jobs(defaultOptions_.maxBackgroundJobs(),
1117
- "The maximum number of concurrent background jobs\n"
1118
- + "\tthat can occur in parallel.") {
1119
- @Override
1120
- public Object parseValue(String value) {
1121
- return Integer.parseInt(value);
1122
- }
1123
- },
1124
- /* TODO(yhchiang): enable the following
1125
- compaction_style((int32_t) defaultOptions_.compactionStyle(),
1126
- "style of compaction: level-based vs universal.") {
1127
- @Override public Object parseValue(String value) {
1128
- return Integer.parseInt(value);
1129
- }
1130
- },*/
1131
- universal_size_ratio(0,
1132
- "Percentage flexibility while comparing file size\n" +
1133
- "\t(for universal compaction only).") {
1134
- @Override public Object parseValue(String value) {
1135
- return Integer.parseInt(value);
1136
- }
1137
- },
1138
- universal_min_merge_width(0,"The minimum number of files in a\n" +
1139
- "\tsingle compaction run (for universal compaction only).") {
1140
- @Override public Object parseValue(String value) {
1141
- return Integer.parseInt(value);
1142
- }
1143
- },
1144
- universal_max_merge_width(0,"The max number of files to compact\n" +
1145
- "\tin universal style compaction.") {
1146
- @Override public Object parseValue(String value) {
1147
- return Integer.parseInt(value);
1148
- }
1149
- },
1150
- universal_max_size_amplification_percent(0,
1151
- "The max size amplification for universal style compaction.") {
1152
- @Override public Object parseValue(String value) {
1153
- return Integer.parseInt(value);
1154
- }
1155
- },
1156
- universal_compression_size_percent(-1,
1157
- "The percentage of the database to compress for universal\n" +
1158
- "\tcompaction. -1 means compress everything.") {
1159
- @Override public Object parseValue(String value) {
1160
- return Integer.parseInt(value);
1161
- }
1162
- },
1163
- block_size(defaultBlockBasedTableOptions_.blockSize(),
1164
- "Number of bytes in a block.") {
1165
- @Override public Object parseValue(String value) {
1166
- return Long.parseLong(value);
1167
- }
1168
- },
1169
- compressed_cache_size(-1L,
1170
- "Number of bytes to use as a cache of compressed data.") {
1171
- @Override public Object parseValue(String value) {
1172
- return Long.parseLong(value);
1173
- }
1174
- },
1175
- open_files(defaultOptions_.maxOpenFiles(),
1176
- "Maximum number of files to keep open at the same time\n" +
1177
- "\t(use default if == 0)") {
1178
- @Override public Object parseValue(String value) {
1179
- return Integer.parseInt(value);
1180
- }
1181
- },
1182
- bloom_bits(-1,"Bloom filter bits per key. Negative means\n" +
1183
- "\tuse default settings.") {
1184
- @Override public Object parseValue(String value) {
1185
- return Integer.parseInt(value);
1186
- }
1187
- },
1188
- memtable_bloom_size_ratio(0.0d, "Ratio of memtable used by the bloom filter.\n"
1189
- + "\t0 means no bloom filter.") {
1190
- @Override public Object parseValue(String value) {
1191
- return Double.parseDouble(value);
1192
- }
1193
- },
1194
- memtable_whole_key_filtering(false, "Enable whole key bloom filter in memtable.") {
1195
- @Override
1196
- public Object parseValue(String value) {
1197
- return parseBoolean(value);
1198
- }
1199
- },
1200
- cache_numshardbits(-1,"Number of shards for the block cache\n" +
1201
- "\tis 2 ** cache_numshardbits. Negative means use default settings.\n" +
1202
- "\tThis is applied only if FLAGS_cache_size is non-negative.") {
1203
- @Override public Object parseValue(String value) {
1204
- return Integer.parseInt(value);
1205
- }
1206
- },
1207
- verify_checksum(false,"Verify checksum for every block read\n" +
1208
- "\tfrom storage.") {
1209
- @Override public Object parseValue(String value) {
1210
- return parseBoolean(value);
1211
- }
1212
- },
1213
- statistics(false,"Database statistics.") {
1214
- @Override public Object parseValue(String value) {
1215
- return parseBoolean(value);
1216
- }
1217
- },
1218
- writes(-1L, "Number of write operations to do. If negative, do\n" +
1219
- "\t--num reads.") {
1220
- @Override public Object parseValue(String value) {
1221
- return Long.parseLong(value);
1222
- }
1223
- },
1224
- sync(false,"Sync all writes to disk.") {
1225
- @Override public Object parseValue(String value) {
1226
- return parseBoolean(value);
1227
- }
1228
- },
1229
- use_fsync(false,"If true, issue fsync instead of fdatasync.") {
1230
- @Override public Object parseValue(String value) {
1231
- return parseBoolean(value);
1232
- }
1233
- },
1234
- disable_wal(false,"If true, do not write WAL for write.") {
1235
- @Override public Object parseValue(String value) {
1236
- return parseBoolean(value);
1237
- }
1238
- },
1239
- wal_dir("", "If not empty, use the given dir for WAL.") {
1240
- @Override public Object parseValue(String value) {
1241
- return value;
1242
- }
1243
- },
1244
- target_file_size_base(2 * 1048576,"Target file size at level-1") {
1245
- @Override public Object parseValue(String value) {
1246
- return Integer.parseInt(value);
1247
- }
1248
- },
1249
- target_file_size_multiplier(1,
1250
- "A multiplier to compute target level-N file size (N >= 2)") {
1251
- @Override public Object parseValue(String value) {
1252
- return Integer.parseInt(value);
1253
- }
1254
- },
1255
- max_bytes_for_level_base(10 * 1048576,
1256
- "Max bytes for level-1") {
1257
- @Override public Object parseValue(String value) {
1258
- return Integer.parseInt(value);
1259
- }
1260
- },
1261
- max_bytes_for_level_multiplier(10.0d,
1262
- "A multiplier to compute max bytes for level-N (N >= 2)") {
1263
- @Override public Object parseValue(String value) {
1264
- return Double.parseDouble(value);
1265
- }
1266
- },
1267
- level0_stop_writes_trigger(12,"Number of files in level-0\n" +
1268
- "\tthat will trigger put stop.") {
1269
- @Override public Object parseValue(String value) {
1270
- return Integer.parseInt(value);
1271
- }
1272
- },
1273
- level0_slowdown_writes_trigger(8,"Number of files in level-0\n" +
1274
- "\tthat will slow down writes.") {
1275
- @Override public Object parseValue(String value) {
1276
- return Integer.parseInt(value);
1277
- }
1278
- },
1279
- level0_file_num_compaction_trigger(4,"Number of files in level-0\n" +
1280
- "\twhen compactions start.") {
1281
- @Override public Object parseValue(String value) {
1282
- return Integer.parseInt(value);
1283
- }
1284
- },
1285
- readwritepercent(90,"Ratio of reads to reads/writes (expressed\n" +
1286
- "\tas percentage) for the ReadRandomWriteRandom workload. The\n" +
1287
- "\tdefault value 90 means 90% operations out of all reads and writes\n" +
1288
- "\toperations are reads. In other words, 9 gets for every 1 put.") {
1289
- @Override public Object parseValue(String value) {
1290
- return Integer.parseInt(value);
1291
- }
1292
- },
1293
- mergereadpercent(70,"Ratio of merges to merges&reads (expressed\n" +
1294
- "\tas percentage) for the ReadRandomMergeRandom workload. The\n" +
1295
- "\tdefault value 70 means 70% out of all read and merge operations\n" +
1296
- "\tare merges. In other words, 7 merges for every 3 gets.") {
1297
- @Override public Object parseValue(String value) {
1298
- return Integer.parseInt(value);
1299
- }
1300
- },
1301
- deletepercent(2,"Percentage of deletes out of reads/writes/\n" +
1302
- "\tdeletes (used in RandomWithVerify only). RandomWithVerify\n" +
1303
- "\tcalculates writepercent as (100 - FLAGS_readwritepercent -\n" +
1304
- "\tdeletepercent), so deletepercent must be smaller than (100 -\n" +
1305
- "\tFLAGS_readwritepercent)") {
1306
- @Override public Object parseValue(String value) {
1307
- return Integer.parseInt(value);
1308
- }
1309
- },
1310
- delete_obsolete_files_period_micros(0,"Option to delete\n" +
1311
- "\tobsolete files periodically. 0 means that obsolete files are\n" +
1312
- "\tdeleted after every compaction run.") {
1313
- @Override public Object parseValue(String value) {
1314
- return Integer.parseInt(value);
1315
- }
1316
- },
1317
- compression_type("snappy",
1318
- "Algorithm used to compress the database.") {
1319
- @Override public Object parseValue(String value) {
1320
- return value;
1321
- }
1322
- },
1323
- compression_level(-1,
1324
- "Compression level. For zlib this should be -1 for the\n" +
1325
- "\tdefault level, or between 0 and 9.") {
1326
- @Override public Object parseValue(String value) {
1327
- return Integer.parseInt(value);
1328
- }
1329
- },
1330
- min_level_to_compress(-1,"If non-negative, compression starts\n" +
1331
- "\tfrom this level. Levels with number < min_level_to_compress are\n" +
1332
- "\tnot compressed. Otherwise, apply compression_type to\n" +
1333
- "\tall levels.") {
1334
- @Override public Object parseValue(String value) {
1335
- return Integer.parseInt(value);
1336
- }
1337
- },
1338
- table_cache_numshardbits(4,"") {
1339
- @Override public Object parseValue(String value) {
1340
- return Integer.parseInt(value);
1341
- }
1342
- },
1343
- stats_interval(0L, "Stats are reported every N operations when\n" +
1344
- "\tthis is greater than zero. When 0 the interval grows over time.") {
1345
- @Override public Object parseValue(String value) {
1346
- return Long.parseLong(value);
1347
- }
1348
- },
1349
- stats_per_interval(0,"Reports additional stats per interval when\n" +
1350
- "\tthis is greater than 0.") {
1351
- @Override public Object parseValue(String value) {
1352
- return Integer.parseInt(value);
1353
- }
1354
- },
1355
- perf_level(0,"Level of perf collection.") {
1356
- @Override public Object parseValue(String value) {
1357
- return Integer.parseInt(value);
1358
- }
1359
- },
1360
- max_compaction_bytes(0L, "Limit number of bytes in one compaction to be lower than this\n" +
1361
- "\threshold. But it's not guaranteed.") {
1362
- @Override public Object parseValue(String value) {
1363
- return Long.parseLong(value);
1364
- }
1365
- },
1366
- readonly(false,"Run read only benchmarks.") {
1367
- @Override public Object parseValue(String value) {
1368
- return parseBoolean(value);
1369
- }
1370
- },
1371
- disable_auto_compactions(false,"Do not auto trigger compactions.") {
1372
- @Override public Object parseValue(String value) {
1373
- return parseBoolean(value);
1374
- }
1375
- },
1376
- wal_ttl_seconds(0L,"Set the TTL for the WAL Files in seconds.") {
1377
- @Override public Object parseValue(String value) {
1378
- return Long.parseLong(value);
1379
- }
1380
- },
1381
- wal_size_limit_MB(0L,"Set the size limit for the WAL Files\n" +
1382
- "\tin MB.") {
1383
- @Override public Object parseValue(String value) {
1384
- return Long.parseLong(value);
1385
- }
1386
- },
1387
- /* TODO(yhchiang): enable the following
1388
- direct_reads(rocksdb::EnvOptions().use_direct_reads,
1389
- "Allow direct I/O reads.") {
1390
- @Override public Object parseValue(String value) {
1391
- return parseBoolean(value);
1392
- }
1393
- },
1394
- direct_writes(rocksdb::EnvOptions().use_direct_reads,
1395
- "Allow direct I/O reads.") {
1396
- @Override public Object parseValue(String value) {
1397
- return parseBoolean(value);
1398
- }
1399
- },
1400
- */
1401
- mmap_read(false,
1402
- "Allow reads to occur via mmap-ing files.") {
1403
- @Override public Object parseValue(String value) {
1404
- return parseBoolean(value);
1405
- }
1406
- },
1407
- mmap_write(false,
1408
- "Allow writes to occur via mmap-ing files.") {
1409
- @Override public Object parseValue(String value) {
1410
- return parseBoolean(value);
1411
- }
1412
- },
1413
- advise_random_on_open(defaultOptions_.adviseRandomOnOpen(),
1414
- "Advise random access on table file open.") {
1415
- @Override public Object parseValue(String value) {
1416
- return parseBoolean(value);
1417
- }
1418
- },
1419
- compaction_fadvice("NORMAL",
1420
- "Access pattern advice when a file is compacted.") {
1421
- @Override public Object parseValue(String value) {
1422
- return value;
1423
- }
1424
- },
1425
- use_tailing_iterator(false,
1426
- "Use tailing iterator to access a series of keys instead of get.") {
1427
- @Override public Object parseValue(String value) {
1428
- return parseBoolean(value);
1429
- }
1430
- },
1431
- use_adaptive_mutex(defaultOptions_.useAdaptiveMutex(),
1432
- "Use adaptive mutex.") {
1433
- @Override public Object parseValue(String value) {
1434
- return parseBoolean(value);
1435
- }
1436
- },
1437
- bytes_per_sync(defaultOptions_.bytesPerSync(),
1438
- "Allows OS to incrementally sync files to disk while they are\n" +
1439
- "\tbeing written, in the background. Issue one request for every\n" +
1440
- "\tbytes_per_sync written. 0 turns it off.") {
1441
- @Override public Object parseValue(String value) {
1442
- return Long.parseLong(value);
1443
- }
1444
- },
1445
- filter_deletes(false," On true, deletes use bloom-filter and drop\n" +
1446
- "\tthe delete if key not present.") {
1447
- @Override public Object parseValue(String value) {
1448
- return parseBoolean(value);
1449
- }
1450
- },
1451
- max_successive_merges(0,"Maximum number of successive merge\n" +
1452
- "\toperations on a key in the memtable.") {
1453
- @Override public Object parseValue(String value) {
1454
- return Integer.parseInt(value);
1455
- }
1456
- },
1457
- db(getTempDir("rocksdb-jni"),
1458
- "Use the db with the following name.") {
1459
- @Override public Object parseValue(String value) {
1460
- return value;
1461
- }
1462
- },
1463
- use_mem_env(false, "Use RocksMemEnv instead of default filesystem based\n" +
1464
- "environment.") {
1465
- @Override public Object parseValue(String value) {
1466
- return parseBoolean(value);
1467
- }
1468
- },
1469
- java_comparator(null, "Class name of a Java Comparator to use instead\n" +
1470
- "\tof the default C++ ByteWiseComparatorImpl. Must be available on\n" +
1471
- "\tthe classpath") {
1472
- @Override
1473
- protected Object parseValue(final String value) {
1474
- try {
1475
- final ComparatorOptions copt = new ComparatorOptions();
1476
- final Class<AbstractComparator> clsComparator =
1477
- (Class<AbstractComparator>)Class.forName(value);
1478
- final Constructor cstr =
1479
- clsComparator.getConstructor(ComparatorOptions.class);
1480
- return cstr.newInstance(copt);
1481
- } catch(final ClassNotFoundException cnfe) {
1482
- throw new IllegalArgumentException("Java Comparator '" + value + "'" +
1483
- " not found on the classpath", cnfe);
1484
- } catch(final NoSuchMethodException nsme) {
1485
- throw new IllegalArgumentException("Java Comparator '" + value + "'" +
1486
- " does not have a public ComparatorOptions constructor", nsme);
1487
- } catch(final IllegalAccessException | InstantiationException
1488
- | InvocationTargetException ie) {
1489
- throw new IllegalArgumentException("Unable to construct Java" +
1490
- " Comparator '" + value + "'", ie);
1491
- }
1492
- }
1493
- };
1494
-
1495
- private Flag(Object defaultValue, String desc) {
1496
- defaultValue_ = defaultValue;
1497
- desc_ = desc;
1498
- }
1499
-
1500
- public Object getDefaultValue() {
1501
- return defaultValue_;
1502
- }
1503
-
1504
- public String desc() {
1505
- return desc_;
1506
- }
1507
-
1508
- public boolean parseBoolean(String value) {
1509
- if (value.equals("1")) {
1510
- return true;
1511
- } else if (value.equals("0")) {
1512
- return false;
1513
- }
1514
- return Boolean.parseBoolean(value);
1515
- }
1516
-
1517
- protected abstract Object parseValue(String value);
1518
-
1519
- private final Object defaultValue_;
1520
- private final String desc_;
1521
- }
1522
-
1523
- private final static String DEFAULT_TEMP_DIR = "/tmp";
1524
-
1525
- private static String getTempDir(final String dirName) {
1526
- try {
1527
- return Files.createTempDirectory(dirName).toAbsolutePath().toString();
1528
- } catch(final IOException ioe) {
1529
- System.err.println("Unable to create temp directory, defaulting to: " +
1530
- DEFAULT_TEMP_DIR);
1531
- return DEFAULT_TEMP_DIR + File.pathSeparator + dirName;
1532
- }
1533
- }
1534
-
1535
- private static class RandomGenerator {
1536
- private final byte[] data_;
1537
- private int dataLength_;
1538
- private int position_;
1539
- private double compressionRatio_;
1540
- Random rand_;
1541
-
1542
- private RandomGenerator(long seed, double compressionRatio) {
1543
- // We use a limited amount of data over and over again and ensure
1544
- // that it is larger than the compression window (32KB), and also
1545
- byte[] value = new byte[100];
1546
- // large enough to serve all typical value sizes we want to write.
1547
- rand_ = new Random(seed);
1548
- dataLength_ = value.length * 10000;
1549
- data_ = new byte[dataLength_];
1550
- compressionRatio_ = compressionRatio;
1551
- int pos = 0;
1552
- while (pos < dataLength_) {
1553
- compressibleBytes(value);
1554
- System.arraycopy(value, 0, data_, pos,
1555
- Math.min(value.length, dataLength_ - pos));
1556
- pos += value.length;
1557
- }
1558
- }
1559
-
1560
- private void compressibleBytes(byte[] value) {
1561
- int baseLength = value.length;
1562
- if (compressionRatio_ < 1.0d) {
1563
- baseLength = (int) (compressionRatio_ * value.length + 0.5);
1564
- }
1565
- if (baseLength <= 0) {
1566
- baseLength = 1;
1567
- }
1568
- int pos;
1569
- for (pos = 0; pos < baseLength; ++pos) {
1570
- value[pos] = (byte) (' ' + rand_.nextInt(95)); // ' ' .. '~'
1571
- }
1572
- while (pos < value.length) {
1573
- System.arraycopy(value, 0, value, pos,
1574
- Math.min(baseLength, value.length - pos));
1575
- pos += baseLength;
1576
- }
1577
- }
1578
-
1579
- private void generate(byte[] value) {
1580
- if (position_ + value.length > data_.length) {
1581
- position_ = 0;
1582
- assert(value.length <= data_.length);
1583
- }
1584
- position_ += value.length;
1585
- System.arraycopy(data_, position_ - value.length,
1586
- value, 0, value.length);
1587
- }
1588
- }
1589
-
1590
- boolean isFinished() {
1591
- synchronized(finishLock_) {
1592
- return isFinished_;
1593
- }
1594
- }
1595
-
1596
- void setFinished(boolean flag) {
1597
- synchronized(finishLock_) {
1598
- isFinished_ = flag;
1599
- }
1600
- }
1601
-
1602
- RocksDB db_;
1603
- final List<String> benchmarks_;
1604
- final int num_;
1605
- final int reads_;
1606
- final int keySize_;
1607
- final int valueSize_;
1608
- final int threadNum_;
1609
- final int writesPerSeconds_;
1610
- final long randSeed_;
1611
- final boolean useExisting_;
1612
- final String databaseDir_;
1613
- double compressionRatio_;
1614
- RandomGenerator gen_;
1615
- long startTime_;
1616
-
1617
- // env
1618
- boolean useMemenv_;
1619
-
1620
- // memtable related
1621
- final int maxWriteBufferNumber_;
1622
- final int prefixSize_;
1623
- final int keysPerPrefix_;
1624
- final String memtable_;
1625
- final long hashBucketCount_;
1626
-
1627
- // sst format related
1628
- boolean usePlainTable_;
1629
-
1630
- Object finishLock_;
1631
- boolean isFinished_;
1632
- Map<Flag, Object> flags_;
1633
- // as the scope of a static member equals to the scope of the problem,
1634
- // we let its c++ pointer to be disposed in its finalizer.
1635
- static Options defaultOptions_ = new Options();
1636
- static BlockBasedTableConfig defaultBlockBasedTableOptions_ =
1637
- new BlockBasedTableConfig();
1638
- String compressionType_;
1639
- CompressionType compression_;
1640
- }