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,1692 +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
- package org.rocksdb;
6
-
7
- import org.junit.*;
8
- import org.junit.rules.ExpectedException;
9
- import org.junit.rules.TemporaryFolder;
10
-
11
- import java.nio.ByteBuffer;
12
- import java.util.*;
13
-
14
- import static java.nio.charset.StandardCharsets.UTF_8;
15
- import static org.assertj.core.api.Assertions.assertThat;
16
- import static org.junit.Assert.fail;
17
-
18
- public class RocksDBTest {
19
-
20
- @ClassRule
21
- public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE =
22
- new RocksNativeLibraryResource();
23
-
24
- @Rule
25
- public TemporaryFolder dbFolder = new TemporaryFolder();
26
-
27
- public static final Random rand = PlatformRandomHelper.
28
- getPlatformSpecificRandomFactory();
29
-
30
- @Test
31
- public void open() throws RocksDBException {
32
- try (final RocksDB db =
33
- RocksDB.open(dbFolder.getRoot().getAbsolutePath())) {
34
- assertThat(db).isNotNull();
35
- }
36
- }
37
-
38
- @Test
39
- public void open_opt() throws RocksDBException {
40
- try (final Options opt = new Options().setCreateIfMissing(true);
41
- final RocksDB db = RocksDB.open(opt,
42
- dbFolder.getRoot().getAbsolutePath())) {
43
- assertThat(db).isNotNull();
44
- }
45
- }
46
-
47
- @Test
48
- public void openWhenOpen() throws RocksDBException {
49
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
50
-
51
- try (final RocksDB ignored = RocksDB.open(dbPath)) {
52
- try (final RocksDB ignored1 = RocksDB.open(dbPath)) {
53
- fail("Should have thrown an exception when opening the same db twice");
54
- } catch (final RocksDBException e) {
55
- assertThat(e.getStatus().getCode()).isEqualTo(Status.Code.IOError);
56
- assertThat(e.getStatus().getSubCode()).isEqualTo(Status.SubCode.None);
57
- assertThat(e.getStatus().getState()).contains("lock ");
58
- }
59
- }
60
- }
61
-
62
- @Test
63
- public void createColumnFamily() throws RocksDBException {
64
- final byte[] col1Name = "col1".getBytes(UTF_8);
65
-
66
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
67
- final ColumnFamilyOptions cfOpts = new ColumnFamilyOptions()
68
- ) {
69
- try (final ColumnFamilyHandle col1 =
70
- db.createColumnFamily(new ColumnFamilyDescriptor(col1Name, cfOpts))) {
71
- assertThat(col1).isNotNull();
72
- assertThat(col1.getName()).isEqualTo(col1Name);
73
- }
74
- }
75
-
76
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
77
- try (final RocksDB ignored = RocksDB.open(dbFolder.getRoot().getAbsolutePath(),
78
- Arrays.asList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
79
- new ColumnFamilyDescriptor(col1Name)),
80
- cfHandles)) {
81
- try {
82
- assertThat(cfHandles.size()).isEqualTo(2);
83
- assertThat(cfHandles.get(1)).isNotNull();
84
- assertThat(cfHandles.get(1).getName()).isEqualTo(col1Name);
85
- } finally {
86
- for (final ColumnFamilyHandle cfHandle :
87
- cfHandles) {
88
- cfHandle.close();
89
- }
90
- }
91
- }
92
- }
93
-
94
-
95
- @Test
96
- public void createColumnFamilies() throws RocksDBException {
97
- final byte[] col1Name = "col1".getBytes(UTF_8);
98
- final byte[] col2Name = "col2".getBytes(UTF_8);
99
-
100
- List<ColumnFamilyHandle> cfHandles;
101
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
102
- final ColumnFamilyOptions cfOpts = new ColumnFamilyOptions()
103
- ) {
104
- cfHandles =
105
- db.createColumnFamilies(cfOpts, Arrays.asList(col1Name, col2Name));
106
- try {
107
- assertThat(cfHandles).isNotNull();
108
- assertThat(cfHandles.size()).isEqualTo(2);
109
- assertThat(cfHandles.get(0).getName()).isEqualTo(col1Name);
110
- assertThat(cfHandles.get(1).getName()).isEqualTo(col2Name);
111
- } finally {
112
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
113
- cfHandle.close();
114
- }
115
- }
116
- }
117
-
118
- cfHandles = new ArrayList<>();
119
- try (final RocksDB ignored = RocksDB.open(dbFolder.getRoot().getAbsolutePath(),
120
- Arrays.asList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
121
- new ColumnFamilyDescriptor(col1Name), new ColumnFamilyDescriptor(col2Name)),
122
- cfHandles)) {
123
- try {
124
- assertThat(cfHandles.size()).isEqualTo(3);
125
- assertThat(cfHandles.get(1)).isNotNull();
126
- assertThat(cfHandles.get(1).getName()).isEqualTo(col1Name);
127
- assertThat(cfHandles.get(2)).isNotNull();
128
- assertThat(cfHandles.get(2).getName()).isEqualTo(col2Name);
129
- } finally {
130
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
131
- cfHandle.close();
132
- }
133
- }
134
- }
135
- }
136
-
137
- @Test
138
- public void createColumnFamiliesfromDescriptors() throws RocksDBException {
139
- final byte[] col1Name = "col1".getBytes(UTF_8);
140
- final byte[] col2Name = "col2".getBytes(UTF_8);
141
-
142
- List<ColumnFamilyHandle> cfHandles;
143
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
144
- final ColumnFamilyOptions cfOpts = new ColumnFamilyOptions()
145
- ) {
146
- cfHandles =
147
- db.createColumnFamilies(Arrays.asList(
148
- new ColumnFamilyDescriptor(col1Name, cfOpts),
149
- new ColumnFamilyDescriptor(col2Name, cfOpts)));
150
- try {
151
- assertThat(cfHandles).isNotNull();
152
- assertThat(cfHandles.size()).isEqualTo(2);
153
- assertThat(cfHandles.get(0).getName()).isEqualTo(col1Name);
154
- assertThat(cfHandles.get(1).getName()).isEqualTo(col2Name);
155
- } finally {
156
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
157
- cfHandle.close();
158
- }
159
- }
160
- }
161
-
162
- cfHandles = new ArrayList<>();
163
- try (final RocksDB ignored = RocksDB.open(dbFolder.getRoot().getAbsolutePath(),
164
- Arrays.asList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
165
- new ColumnFamilyDescriptor(col1Name), new ColumnFamilyDescriptor(col2Name)),
166
- cfHandles)) {
167
- try {
168
- assertThat(cfHandles.size()).isEqualTo(3);
169
- assertThat(cfHandles.get(1)).isNotNull();
170
- assertThat(cfHandles.get(1).getName()).isEqualTo(col1Name);
171
- assertThat(cfHandles.get(2)).isNotNull();
172
- assertThat(cfHandles.get(2).getName()).isEqualTo(col2Name);
173
- } finally {
174
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
175
- cfHandle.close();
176
- }
177
- }
178
- }
179
- }
180
-
181
- @Test
182
- public void put() throws RocksDBException {
183
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
184
- final WriteOptions opt = new WriteOptions(); final ReadOptions optr = new ReadOptions()) {
185
- db.put("key1".getBytes(), "value".getBytes());
186
- db.put(opt, "key2".getBytes(), "12345678".getBytes());
187
- assertThat(db.get("key1".getBytes())).isEqualTo(
188
- "value".getBytes());
189
- assertThat(db.get("key2".getBytes())).isEqualTo(
190
- "12345678".getBytes());
191
-
192
- final ByteBuffer key = ByteBuffer.allocateDirect(12);
193
- final ByteBuffer value = ByteBuffer.allocateDirect(12);
194
- key.position(4);
195
- key.put("key3".getBytes());
196
- key.position(4).limit(8);
197
- value.position(4);
198
- value.put("val3".getBytes());
199
- value.position(4).limit(8);
200
-
201
- db.put(opt, key, value);
202
-
203
- assertThat(key.position()).isEqualTo(8);
204
- assertThat(key.limit()).isEqualTo(8);
205
-
206
- assertThat(value.position()).isEqualTo(8);
207
- assertThat(value.limit()).isEqualTo(8);
208
-
209
- key.position(4);
210
-
211
- final ByteBuffer result = ByteBuffer.allocateDirect(12);
212
- assertThat(db.get(optr, key, result)).isEqualTo(4);
213
- assertThat(result.position()).isEqualTo(0);
214
- assertThat(result.limit()).isEqualTo(4);
215
- assertThat(key.position()).isEqualTo(8);
216
- assertThat(key.limit()).isEqualTo(8);
217
-
218
- final byte[] tmp = new byte[4];
219
- result.get(tmp);
220
- assertThat(tmp).isEqualTo("val3".getBytes());
221
-
222
- key.position(4);
223
-
224
- result.clear().position(9);
225
- assertThat(db.get(optr, key, result)).isEqualTo(4);
226
- assertThat(result.position()).isEqualTo(9);
227
- assertThat(result.limit()).isEqualTo(12);
228
- assertThat(key.position()).isEqualTo(8);
229
- assertThat(key.limit()).isEqualTo(8);
230
- final byte[] tmp2 = new byte[3];
231
- result.get(tmp2);
232
- assertThat(tmp2).isEqualTo("val".getBytes());
233
-
234
- // put
235
- final Segment key3 = sliceSegment("key3");
236
- final Segment key4 = sliceSegment("key4");
237
- final Segment value0 = sliceSegment("value 0");
238
- final Segment value1 = sliceSegment("value 1");
239
- db.put(key3.data, key3.offset, key3.len, value0.data, value0.offset, value0.len);
240
- db.put(opt, key4.data, key4.offset, key4.len, value1.data, value1.offset, value1.len);
241
-
242
- // compare
243
- Assert.assertTrue(value0.isSamePayload(db.get(key3.data, key3.offset, key3.len)));
244
- Assert.assertTrue(value1.isSamePayload(db.get(key4.data, key4.offset, key4.len)));
245
- }
246
- }
247
-
248
- private static Segment sliceSegment(final String key) {
249
- final ByteBuffer rawKey = ByteBuffer.allocate(key.length() + 4);
250
- rawKey.put((byte)0);
251
- rawKey.put((byte)0);
252
- rawKey.put(key.getBytes());
253
-
254
- return new Segment(rawKey.array(), 2, key.length());
255
- }
256
-
257
- private static class Segment {
258
- final byte[] data;
259
- final int offset;
260
- final int len;
261
-
262
- public boolean isSamePayload(final byte[] value) {
263
- if (value == null) {
264
- return false;
265
- }
266
- if (value.length != len) {
267
- return false;
268
- }
269
-
270
- for (int i = 0; i < value.length; i++) {
271
- if (data[i + offset] != value[i]) {
272
- return false;
273
- }
274
- }
275
-
276
- return true;
277
- }
278
-
279
- public Segment(final byte[] value, final int offset, final int len) {
280
- this.data = value;
281
- this.offset = offset;
282
- this.len = len;
283
- }
284
- }
285
-
286
- @Test
287
- public void write() throws RocksDBException {
288
- try (final StringAppendOperator stringAppendOperator = new StringAppendOperator();
289
- final Options options = new Options()
290
- .setMergeOperator(stringAppendOperator)
291
- .setCreateIfMissing(true);
292
- final RocksDB db = RocksDB.open(options,
293
- dbFolder.getRoot().getAbsolutePath());
294
- final WriteOptions opts = new WriteOptions()) {
295
-
296
- try (final WriteBatch wb1 = new WriteBatch()) {
297
- wb1.put("key1".getBytes(), "aa".getBytes());
298
- wb1.merge("key1".getBytes(), "bb".getBytes());
299
-
300
- try (final WriteBatch wb2 = new WriteBatch()) {
301
- wb2.put("key2".getBytes(), "xx".getBytes());
302
- wb2.merge("key2".getBytes(), "yy".getBytes());
303
- db.write(opts, wb1);
304
- db.write(opts, wb2);
305
- }
306
- }
307
-
308
- assertThat(db.get("key1".getBytes())).isEqualTo(
309
- "aa,bb".getBytes());
310
- assertThat(db.get("key2".getBytes())).isEqualTo(
311
- "xx,yy".getBytes());
312
- }
313
- }
314
-
315
- @Test
316
- public void getWithOutValue() throws RocksDBException {
317
- try (final RocksDB db =
318
- RocksDB.open(dbFolder.getRoot().getAbsolutePath())) {
319
- db.put("key1".getBytes(), "value".getBytes());
320
- db.put("key2".getBytes(), "12345678".getBytes());
321
- final byte[] outValue = new byte[5];
322
- // not found value
323
- int getResult = db.get("keyNotFound".getBytes(), outValue);
324
- assertThat(getResult).isEqualTo(RocksDB.NOT_FOUND);
325
- // found value which fits in outValue
326
- getResult = db.get("key1".getBytes(), outValue);
327
- assertThat(getResult).isNotEqualTo(RocksDB.NOT_FOUND);
328
- assertThat(outValue).isEqualTo("value".getBytes());
329
- // found value which fits partially
330
- getResult = db.get("key2".getBytes(), outValue);
331
- assertThat(getResult).isNotEqualTo(RocksDB.NOT_FOUND);
332
- assertThat(outValue).isEqualTo("12345".getBytes());
333
- }
334
- }
335
-
336
- @Test
337
- public void getWithOutValueReadOptions() throws RocksDBException {
338
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
339
- final ReadOptions rOpt = new ReadOptions()) {
340
- db.put("key1".getBytes(), "value".getBytes());
341
- db.put("key2".getBytes(), "12345678".getBytes());
342
- final byte[] outValue = new byte[5];
343
- // not found value
344
- int getResult = db.get(rOpt, "keyNotFound".getBytes(),
345
- outValue);
346
- assertThat(getResult).isEqualTo(RocksDB.NOT_FOUND);
347
- // found value which fits in outValue
348
- getResult = db.get(rOpt, "key1".getBytes(), outValue);
349
- assertThat(getResult).isNotEqualTo(RocksDB.NOT_FOUND);
350
- assertThat(outValue).isEqualTo("value".getBytes());
351
- // found value which fits partially
352
- getResult = db.get(rOpt, "key2".getBytes(), outValue);
353
- assertThat(getResult).isNotEqualTo(RocksDB.NOT_FOUND);
354
- assertThat(outValue).isEqualTo("12345".getBytes());
355
- }
356
- }
357
-
358
- @Rule
359
- public ExpectedException thrown = ExpectedException.none();
360
-
361
- @Test
362
- public void getOutOfArrayMaxSizeValue() throws RocksDBException {
363
- final int numberOfValueSplits = 10;
364
- final int splitSize = Integer.MAX_VALUE / numberOfValueSplits;
365
-
366
- final Runtime runtime = Runtime.getRuntime();
367
- final long neededMemory = ((long) (splitSize)) * (((long) numberOfValueSplits) + 3);
368
- final boolean isEnoughMemory = runtime.maxMemory() - runtime.totalMemory() > neededMemory;
369
- Assume.assumeTrue(isEnoughMemory);
370
-
371
- final byte[] valueSplit = new byte[splitSize];
372
- final byte[] key = "key".getBytes();
373
-
374
- thrown.expect(RocksDBException.class);
375
- thrown.expectMessage("Requested array size exceeds VM limit");
376
-
377
- // merge (numberOfValueSplits + 1) valueSplit's to get value size exceeding Integer.MAX_VALUE
378
- try (final StringAppendOperator stringAppendOperator = new StringAppendOperator();
379
- final Options opt = new Options()
380
- .setCreateIfMissing(true)
381
- .setMergeOperator(stringAppendOperator);
382
- final RocksDB db = RocksDB.open(opt, dbFolder.getRoot().getAbsolutePath())) {
383
- db.put(key, valueSplit);
384
- for (int i = 0; i < numberOfValueSplits; i++) {
385
- db.merge(key, valueSplit);
386
- }
387
- db.get(key);
388
- }
389
- }
390
-
391
- @Test
392
- public void multiGetAsList() throws RocksDBException {
393
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
394
- final ReadOptions rOpt = new ReadOptions()) {
395
- db.put("key1".getBytes(), "value".getBytes());
396
- db.put("key2".getBytes(), "12345678".getBytes());
397
- final List<byte[]> lookupKeys = new ArrayList<>();
398
- lookupKeys.add("key1".getBytes());
399
- lookupKeys.add("key2".getBytes());
400
- List<byte[]> results = db.multiGetAsList(lookupKeys);
401
- assertThat(results).isNotNull();
402
- assertThat(results).hasSize(lookupKeys.size());
403
- assertThat(results).
404
- containsExactly("value".getBytes(), "12345678".getBytes());
405
- // test same method with ReadOptions
406
- results = db.multiGetAsList(rOpt, lookupKeys);
407
- assertThat(results).isNotNull();
408
- assertThat(results).
409
- contains("value".getBytes(), "12345678".getBytes());
410
-
411
- // remove existing key
412
- lookupKeys.remove(1);
413
- // add non existing key
414
- lookupKeys.add("key3".getBytes());
415
- results = db.multiGetAsList(lookupKeys);
416
- assertThat(results).isNotNull();
417
- assertThat(results).
418
- containsExactly("value".getBytes(), null);
419
- // test same call with readOptions
420
- results = db.multiGetAsList(rOpt, lookupKeys);
421
- assertThat(results).isNotNull();
422
- assertThat(results).contains("value".getBytes());
423
- }
424
- }
425
-
426
- @Test
427
- public void merge() throws RocksDBException {
428
- try (final StringAppendOperator stringAppendOperator = new StringAppendOperator();
429
- final Options opt = new Options()
430
- .setCreateIfMissing(true)
431
- .setMergeOperator(stringAppendOperator);
432
- final WriteOptions wOpt = new WriteOptions();
433
- final RocksDB db = RocksDB.open(opt,
434
- dbFolder.getRoot().getAbsolutePath())
435
- ) {
436
- db.put("key1".getBytes(), "value".getBytes());
437
- assertThat(db.get("key1".getBytes())).isEqualTo(
438
- "value".getBytes());
439
- // merge key1 with another value portion
440
- db.merge("key1".getBytes(), "value2".getBytes());
441
- assertThat(db.get("key1".getBytes())).isEqualTo(
442
- "value,value2".getBytes());
443
- // merge key1 with another value portion
444
- db.merge(wOpt, "key1".getBytes(), "value3".getBytes());
445
- assertThat(db.get("key1".getBytes())).isEqualTo(
446
- "value,value2,value3".getBytes());
447
- // merge on non existent key shall insert the value
448
- db.merge(wOpt, "key2".getBytes(), "xxxx".getBytes());
449
- assertThat(db.get("key2".getBytes())).isEqualTo(
450
- "xxxx".getBytes());
451
-
452
- final Segment key3 = sliceSegment("key3");
453
- final Segment key4 = sliceSegment("key4");
454
- final Segment value0 = sliceSegment("value 0");
455
- final Segment value1 = sliceSegment("value 1");
456
-
457
- db.merge(key3.data, key3.offset, key3.len, value0.data, value0.offset, value0.len);
458
- db.merge(wOpt, key4.data, key4.offset, key4.len, value1.data, value1.offset, value1.len);
459
-
460
- // compare
461
- Assert.assertTrue(value0.isSamePayload(db.get(key3.data, key3.offset, key3.len)));
462
- Assert.assertTrue(value1.isSamePayload(db.get(key4.data, key4.offset, key4.len)));
463
- }
464
- }
465
-
466
- @Test
467
- public void delete() throws RocksDBException {
468
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
469
- final WriteOptions wOpt = new WriteOptions()) {
470
- db.put("key1".getBytes(), "value".getBytes());
471
- db.put("key2".getBytes(), "12345678".getBytes());
472
- db.put("key3".getBytes(), "33".getBytes());
473
- assertThat(db.get("key1".getBytes())).isEqualTo(
474
- "value".getBytes());
475
- assertThat(db.get("key2".getBytes())).isEqualTo(
476
- "12345678".getBytes());
477
- assertThat(db.get("key3".getBytes())).isEqualTo("33".getBytes());
478
- db.delete("key1".getBytes());
479
- db.delete(wOpt, "key2".getBytes());
480
- final ByteBuffer key = ByteBuffer.allocateDirect(16);
481
- key.put("key3".getBytes()).flip();
482
- db.delete(wOpt, key);
483
- assertThat(key.position()).isEqualTo(4);
484
- assertThat(key.limit()).isEqualTo(4);
485
-
486
- assertThat(db.get("key1".getBytes())).isNull();
487
- assertThat(db.get("key2".getBytes())).isNull();
488
-
489
- final Segment key3 = sliceSegment("key3");
490
- final Segment key4 = sliceSegment("key4");
491
- db.put("key3".getBytes(), "key3 value".getBytes());
492
- db.put("key4".getBytes(), "key4 value".getBytes());
493
-
494
- db.delete(key3.data, key3.offset, key3.len);
495
- db.delete(wOpt, key4.data, key4.offset, key4.len);
496
-
497
- assertThat(db.get("key3".getBytes())).isNull();
498
- assertThat(db.get("key4".getBytes())).isNull();
499
- }
500
- }
501
-
502
- @Test
503
- public void singleDelete() throws RocksDBException {
504
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
505
- final WriteOptions wOpt = new WriteOptions()) {
506
- db.put("key1".getBytes(), "value".getBytes());
507
- db.put("key2".getBytes(), "12345678".getBytes());
508
- assertThat(db.get("key1".getBytes())).isEqualTo(
509
- "value".getBytes());
510
- assertThat(db.get("key2".getBytes())).isEqualTo(
511
- "12345678".getBytes());
512
- db.singleDelete("key1".getBytes());
513
- db.singleDelete(wOpt, "key2".getBytes());
514
- assertThat(db.get("key1".getBytes())).isNull();
515
- assertThat(db.get("key2".getBytes())).isNull();
516
- }
517
- }
518
-
519
- @Test
520
- public void singleDelete_nonExisting() throws RocksDBException {
521
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath());
522
- final WriteOptions wOpt = new WriteOptions()) {
523
- db.singleDelete("key1".getBytes());
524
- db.singleDelete(wOpt, "key2".getBytes());
525
- assertThat(db.get("key1".getBytes())).isNull();
526
- assertThat(db.get("key2".getBytes())).isNull();
527
- }
528
- }
529
-
530
- @Test
531
- public void deleteRange() throws RocksDBException {
532
- try (final RocksDB db = RocksDB.open(dbFolder.getRoot().getAbsolutePath())) {
533
- db.put("key1".getBytes(), "value".getBytes());
534
- db.put("key2".getBytes(), "12345678".getBytes());
535
- db.put("key3".getBytes(), "abcdefg".getBytes());
536
- db.put("key4".getBytes(), "xyz".getBytes());
537
- assertThat(db.get("key1".getBytes())).isEqualTo("value".getBytes());
538
- assertThat(db.get("key2".getBytes())).isEqualTo("12345678".getBytes());
539
- assertThat(db.get("key3".getBytes())).isEqualTo("abcdefg".getBytes());
540
- assertThat(db.get("key4".getBytes())).isEqualTo("xyz".getBytes());
541
- db.deleteRange("key2".getBytes(), "key4".getBytes());
542
- assertThat(db.get("key1".getBytes())).isEqualTo("value".getBytes());
543
- assertThat(db.get("key2".getBytes())).isNull();
544
- assertThat(db.get("key3".getBytes())).isNull();
545
- assertThat(db.get("key4".getBytes())).isEqualTo("xyz".getBytes());
546
- }
547
- }
548
-
549
- @Test
550
- public void getIntProperty() throws RocksDBException {
551
- try (
552
- final Options options = new Options()
553
- .setCreateIfMissing(true)
554
- .setMaxWriteBufferNumber(10)
555
- .setMinWriteBufferNumberToMerge(10);
556
- final RocksDB db = RocksDB.open(options,
557
- dbFolder.getRoot().getAbsolutePath());
558
- final WriteOptions wOpt = new WriteOptions().setDisableWAL(true)
559
- ) {
560
- db.put(wOpt, "key1".getBytes(), "value1".getBytes());
561
- db.put(wOpt, "key2".getBytes(), "value2".getBytes());
562
- db.put(wOpt, "key3".getBytes(), "value3".getBytes());
563
- db.put(wOpt, "key4".getBytes(), "value4".getBytes());
564
- assertThat(db.getLongProperty("rocksdb.num-entries-active-mem-table"))
565
- .isGreaterThan(0);
566
- assertThat(db.getLongProperty("rocksdb.cur-size-active-mem-table"))
567
- .isGreaterThan(0);
568
- }
569
- }
570
-
571
- @Test
572
- public void fullCompactRange() throws RocksDBException {
573
- try (final Options opt = new Options().
574
- setCreateIfMissing(true).
575
- setDisableAutoCompactions(true).
576
- setCompactionStyle(CompactionStyle.LEVEL).
577
- setNumLevels(4).
578
- setWriteBufferSize(100 << 10).
579
- setLevelZeroFileNumCompactionTrigger(3).
580
- setTargetFileSizeBase(200 << 10).
581
- setTargetFileSizeMultiplier(1).
582
- setMaxBytesForLevelBase(500 << 10).
583
- setMaxBytesForLevelMultiplier(1).
584
- setDisableAutoCompactions(false);
585
- final RocksDB db = RocksDB.open(opt,
586
- dbFolder.getRoot().getAbsolutePath())) {
587
- // fill database with key/value pairs
588
- final byte[] b = new byte[10000];
589
- for (int i = 0; i < 200; i++) {
590
- rand.nextBytes(b);
591
- db.put((String.valueOf(i)).getBytes(), b);
592
- }
593
- db.compactRange();
594
- }
595
- }
596
-
597
- @Test
598
- public void fullCompactRangeColumnFamily()
599
- throws RocksDBException {
600
- try (
601
- final DBOptions opt = new DBOptions().
602
- setCreateIfMissing(true).
603
- setCreateMissingColumnFamilies(true);
604
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions().
605
- setDisableAutoCompactions(true).
606
- setCompactionStyle(CompactionStyle.LEVEL).
607
- setNumLevels(4).
608
- setWriteBufferSize(100 << 10).
609
- setLevelZeroFileNumCompactionTrigger(3).
610
- setTargetFileSizeBase(200 << 10).
611
- setTargetFileSizeMultiplier(1).
612
- setMaxBytesForLevelBase(500 << 10).
613
- setMaxBytesForLevelMultiplier(1).
614
- setDisableAutoCompactions(false)
615
- ) {
616
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
617
- Arrays.asList(
618
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
619
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts));
620
-
621
- // open database
622
- final List<ColumnFamilyHandle> columnFamilyHandles = new ArrayList<>();
623
- try (final RocksDB db = RocksDB.open(opt,
624
- dbFolder.getRoot().getAbsolutePath(),
625
- columnFamilyDescriptors,
626
- columnFamilyHandles)) {
627
- try {
628
- // fill database with key/value pairs
629
- final byte[] b = new byte[10000];
630
- for (int i = 0; i < 200; i++) {
631
- rand.nextBytes(b);
632
- db.put(columnFamilyHandles.get(1),
633
- String.valueOf(i).getBytes(), b);
634
- }
635
- db.compactRange(columnFamilyHandles.get(1));
636
- } finally {
637
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
638
- handle.close();
639
- }
640
- }
641
- }
642
- }
643
- }
644
-
645
- @Test
646
- public void compactRangeWithKeys()
647
- throws RocksDBException {
648
- try (final Options opt = new Options().
649
- setCreateIfMissing(true).
650
- setDisableAutoCompactions(true).
651
- setCompactionStyle(CompactionStyle.LEVEL).
652
- setNumLevels(4).
653
- setWriteBufferSize(100 << 10).
654
- setLevelZeroFileNumCompactionTrigger(3).
655
- setTargetFileSizeBase(200 << 10).
656
- setTargetFileSizeMultiplier(1).
657
- setMaxBytesForLevelBase(500 << 10).
658
- setMaxBytesForLevelMultiplier(1).
659
- setDisableAutoCompactions(false);
660
- final RocksDB db = RocksDB.open(opt,
661
- dbFolder.getRoot().getAbsolutePath())) {
662
- // fill database with key/value pairs
663
- final byte[] b = new byte[10000];
664
- for (int i = 0; i < 200; i++) {
665
- rand.nextBytes(b);
666
- db.put((String.valueOf(i)).getBytes(), b);
667
- }
668
- db.compactRange("0".getBytes(), "201".getBytes());
669
- }
670
- }
671
-
672
- @Test
673
- public void compactRangeWithKeysReduce()
674
- throws RocksDBException {
675
- try (
676
- final Options opt = new Options().
677
- setCreateIfMissing(true).
678
- setDisableAutoCompactions(true).
679
- setCompactionStyle(CompactionStyle.LEVEL).
680
- setNumLevels(4).
681
- setWriteBufferSize(100 << 10).
682
- setLevelZeroFileNumCompactionTrigger(3).
683
- setTargetFileSizeBase(200 << 10).
684
- setTargetFileSizeMultiplier(1).
685
- setMaxBytesForLevelBase(500 << 10).
686
- setMaxBytesForLevelMultiplier(1).
687
- setDisableAutoCompactions(false);
688
- final RocksDB db = RocksDB.open(opt,
689
- dbFolder.getRoot().getAbsolutePath())) {
690
- // fill database with key/value pairs
691
- final byte[] b = new byte[10000];
692
- for (int i = 0; i < 200; i++) {
693
- rand.nextBytes(b);
694
- db.put((String.valueOf(i)).getBytes(), b);
695
- }
696
- try (final FlushOptions flushOptions = new FlushOptions().setWaitForFlush(true)) {
697
- db.flush(flushOptions);
698
- }
699
- try (final CompactRangeOptions compactRangeOpts = new CompactRangeOptions()
700
- .setChangeLevel(true)
701
- .setTargetLevel(-1)
702
- .setTargetPathId(0)) {
703
- db.compactRange(null, "0".getBytes(), "201".getBytes(),
704
- compactRangeOpts);
705
- }
706
- }
707
- }
708
-
709
- @Test
710
- public void compactRangeWithKeysColumnFamily()
711
- throws RocksDBException {
712
- try (final DBOptions opt = new DBOptions().
713
- setCreateIfMissing(true).
714
- setCreateMissingColumnFamilies(true);
715
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions().
716
- setDisableAutoCompactions(true).
717
- setCompactionStyle(CompactionStyle.LEVEL).
718
- setNumLevels(4).
719
- setWriteBufferSize(100 << 10).
720
- setLevelZeroFileNumCompactionTrigger(3).
721
- setTargetFileSizeBase(200 << 10).
722
- setTargetFileSizeMultiplier(1).
723
- setMaxBytesForLevelBase(500 << 10).
724
- setMaxBytesForLevelMultiplier(1).
725
- setDisableAutoCompactions(false)
726
- ) {
727
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
728
- Arrays.asList(
729
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
730
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts)
731
- );
732
-
733
- // open database
734
- final List<ColumnFamilyHandle> columnFamilyHandles =
735
- new ArrayList<>();
736
- try (final RocksDB db = RocksDB.open(opt,
737
- dbFolder.getRoot().getAbsolutePath(),
738
- columnFamilyDescriptors,
739
- columnFamilyHandles)) {
740
- try {
741
- // fill database with key/value pairs
742
- final byte[] b = new byte[10000];
743
- for (int i = 0; i < 200; i++) {
744
- rand.nextBytes(b);
745
- db.put(columnFamilyHandles.get(1),
746
- String.valueOf(i).getBytes(), b);
747
- }
748
- db.compactRange(columnFamilyHandles.get(1),
749
- "0".getBytes(), "201".getBytes());
750
- } finally {
751
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
752
- handle.close();
753
- }
754
- }
755
- }
756
- }
757
- }
758
-
759
- @Test
760
- public void compactRangeWithKeysReduceColumnFamily()
761
- throws RocksDBException {
762
- try (final DBOptions opt = new DBOptions().
763
- setCreateIfMissing(true).
764
- setCreateMissingColumnFamilies(true);
765
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions().
766
- setDisableAutoCompactions(true).
767
- setCompactionStyle(CompactionStyle.LEVEL).
768
- setNumLevels(4).
769
- setWriteBufferSize(100 << 10).
770
- setLevelZeroFileNumCompactionTrigger(3).
771
- setTargetFileSizeBase(200 << 10).
772
- setTargetFileSizeMultiplier(1).
773
- setMaxBytesForLevelBase(500 << 10).
774
- setMaxBytesForLevelMultiplier(1).
775
- setDisableAutoCompactions(false)
776
- ) {
777
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
778
- Arrays.asList(
779
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
780
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts)
781
- );
782
-
783
- final List<ColumnFamilyHandle> columnFamilyHandles = new ArrayList<>();
784
- // open database
785
- try (final RocksDB db = RocksDB.open(opt,
786
- dbFolder.getRoot().getAbsolutePath(),
787
- columnFamilyDescriptors,
788
- columnFamilyHandles)) {
789
- try (final CompactRangeOptions compactRangeOpts = new CompactRangeOptions()
790
- .setChangeLevel(true)
791
- .setTargetLevel(-1)
792
- .setTargetPathId(0)) {
793
- // fill database with key/value pairs
794
- final byte[] b = new byte[10000];
795
- for (int i = 0; i < 200; i++) {
796
- rand.nextBytes(b);
797
- db.put(columnFamilyHandles.get(1),
798
- String.valueOf(i).getBytes(), b);
799
- }
800
- db.compactRange(columnFamilyHandles.get(1), "0".getBytes(),
801
- "201".getBytes(), compactRangeOpts);
802
- } finally {
803
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
804
- handle.close();
805
- }
806
- }
807
- }
808
- }
809
- }
810
-
811
- @Test
812
- public void compactRangeToLevel() throws RocksDBException {
813
- final int NUM_KEYS_PER_L0_FILE = 100;
814
- final int KEY_SIZE = 20;
815
- final int VALUE_SIZE = 300;
816
- final int L0_FILE_SIZE =
817
- NUM_KEYS_PER_L0_FILE * (KEY_SIZE + VALUE_SIZE);
818
- final int NUM_L0_FILES = 10;
819
- final int TEST_SCALE = 5;
820
- final int KEY_INTERVAL = 100;
821
- try (final Options opt = new Options().
822
- setCreateIfMissing(true).
823
- setCompactionStyle(CompactionStyle.LEVEL).
824
- setNumLevels(5).
825
- // a slightly bigger write buffer than L0 file
826
- // so that we can ensure manual flush always
827
- // go before background flush happens.
828
- setWriteBufferSize(L0_FILE_SIZE * 2).
829
- // Disable auto L0 -> L1 compaction
830
- setLevelZeroFileNumCompactionTrigger(20).
831
- setTargetFileSizeBase(L0_FILE_SIZE * 100).
832
- setTargetFileSizeMultiplier(1).
833
- // To disable auto compaction
834
- setMaxBytesForLevelBase(NUM_L0_FILES * L0_FILE_SIZE * 100).
835
- setMaxBytesForLevelMultiplier(2).
836
- setDisableAutoCompactions(true);
837
- final RocksDB db = RocksDB.open(opt,
838
- dbFolder.getRoot().getAbsolutePath())
839
- ) {
840
- // fill database with key/value pairs
841
- final byte[] value = new byte[VALUE_SIZE];
842
- int int_key = 0;
843
- for (int round = 0; round < 5; ++round) {
844
- final int initial_key = int_key;
845
- for (int f = 1; f <= NUM_L0_FILES; ++f) {
846
- for (int i = 0; i < NUM_KEYS_PER_L0_FILE; ++i) {
847
- int_key += KEY_INTERVAL;
848
- rand.nextBytes(value);
849
-
850
- db.put(String.format("%020d", int_key).getBytes(),
851
- value);
852
- }
853
- try (final FlushOptions flushOptions = new FlushOptions().setWaitForFlush(true)) {
854
- db.flush(flushOptions);
855
- }
856
- // Make sure we do create one more L0 files.
857
- assertThat(
858
- db.getProperty("rocksdb.num-files-at-level0")).
859
- isEqualTo("" + f);
860
- }
861
-
862
- // Compact all L0 files we just created
863
- db.compactRange(
864
- String.format("%020d", initial_key).getBytes(),
865
- String.format("%020d", int_key - 1).getBytes());
866
- // Making sure there isn't any L0 files.
867
- assertThat(
868
- db.getProperty("rocksdb.num-files-at-level0")).
869
- isEqualTo("0");
870
- // Making sure there are some L1 files.
871
- // Here we only use != 0 instead of a specific number
872
- // as we don't want the test make any assumption on
873
- // how compaction works.
874
- assertThat(
875
- db.getProperty("rocksdb.num-files-at-level1")).
876
- isNotEqualTo("0");
877
- // Because we only compacted those keys we issued
878
- // in this round, there shouldn't be any L1 -> L2
879
- // compaction. So we expect zero L2 files here.
880
- assertThat(
881
- db.getProperty("rocksdb.num-files-at-level2")).
882
- isEqualTo("0");
883
- }
884
- }
885
- }
886
-
887
- @Test
888
- public void deleteFilesInRange() throws RocksDBException {
889
- final int KEY_SIZE = 20;
890
- final int VALUE_SIZE = 1000;
891
- final int FILE_SIZE = 64000;
892
- final int NUM_FILES = 10;
893
-
894
- final int KEY_INTERVAL = 10000;
895
- /*
896
- * Intention of these options is to end up reliably with 10 files
897
- * we will be deleting using deleteFilesInRange.
898
- * It is writing roughly number of keys that will fit in 10 files (target size)
899
- * It is writing interleaved so that files from memory on L0 will overlap
900
- * Then compaction cleans everything, and we should end up with 10 files
901
- */
902
- try (final Options opt = new Options()
903
- .setCreateIfMissing(true)
904
- .setCompressionType(CompressionType.NO_COMPRESSION)
905
- .setTargetFileSizeBase(FILE_SIZE)
906
- .setWriteBufferSize(FILE_SIZE / 2)
907
- .setDisableAutoCompactions(true);
908
- final RocksDB db = RocksDB.open(opt, dbFolder.getRoot().getAbsolutePath())) {
909
- final int records = FILE_SIZE / (KEY_SIZE + VALUE_SIZE);
910
-
911
- // fill database with key/value pairs
912
- final byte[] value = new byte[VALUE_SIZE];
913
- int key_init = 0;
914
- for (int o = 0; o < NUM_FILES; ++o) {
915
- int int_key = key_init++;
916
- for (int i = 0; i < records; ++i) {
917
- int_key += KEY_INTERVAL;
918
- rand.nextBytes(value);
919
-
920
- db.put(String.format("%020d", int_key).getBytes(), value);
921
- }
922
- }
923
- try (final FlushOptions flushOptions = new FlushOptions().setWaitForFlush(true)) {
924
- db.flush(flushOptions);
925
- }
926
- db.compactRange();
927
- // Make sure we do create one more L0 files.
928
- assertThat(db.getProperty("rocksdb.num-files-at-level0")).isEqualTo("0");
929
-
930
- // Should be 10, but we are OK with asserting +- 2
931
- int files = Integer.parseInt(db.getProperty("rocksdb.num-files-at-level1"));
932
- assertThat(files).isBetween(8, 12);
933
-
934
- // Delete lower 60% (roughly). Result should be 5, but we are OK with asserting +- 2
935
- // Important is that we know something was deleted (JNI call did something)
936
- // Exact assertions are done in C++ unit tests
937
- db.deleteFilesInRanges(null,
938
- Arrays.asList(null, String.format("%020d", records * KEY_INTERVAL * 6 / 10).getBytes()),
939
- false);
940
- files = Integer.parseInt(db.getProperty("rocksdb.num-files-at-level1"));
941
- assertThat(files).isBetween(3, 7);
942
- }
943
- }
944
-
945
- @Test
946
- public void compactRangeToLevelColumnFamily()
947
- throws RocksDBException {
948
- final int NUM_KEYS_PER_L0_FILE = 100;
949
- final int KEY_SIZE = 20;
950
- final int VALUE_SIZE = 300;
951
- final int L0_FILE_SIZE =
952
- NUM_KEYS_PER_L0_FILE * (KEY_SIZE + VALUE_SIZE);
953
- final int NUM_L0_FILES = 10;
954
- final int TEST_SCALE = 5;
955
- final int KEY_INTERVAL = 100;
956
-
957
- try (final DBOptions opt = new DBOptions().
958
- setCreateIfMissing(true).
959
- setCreateMissingColumnFamilies(true);
960
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions().
961
- setCompactionStyle(CompactionStyle.LEVEL).
962
- setNumLevels(5).
963
- // a slightly bigger write buffer than L0 file
964
- // so that we can ensure manual flush always
965
- // go before background flush happens.
966
- setWriteBufferSize(L0_FILE_SIZE * 2).
967
- // Disable auto L0 -> L1 compaction
968
- setLevelZeroFileNumCompactionTrigger(20).
969
- setTargetFileSizeBase(L0_FILE_SIZE * 100).
970
- setTargetFileSizeMultiplier(1).
971
- // To disable auto compaction
972
- setMaxBytesForLevelBase(NUM_L0_FILES * L0_FILE_SIZE * 100).
973
- setMaxBytesForLevelMultiplier(2).
974
- setDisableAutoCompactions(true)
975
- ) {
976
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
977
- Arrays.asList(
978
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
979
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts)
980
- );
981
-
982
- final List<ColumnFamilyHandle> columnFamilyHandles = new ArrayList<>();
983
- // open database
984
- try (final RocksDB db = RocksDB.open(opt,
985
- dbFolder.getRoot().getAbsolutePath(),
986
- columnFamilyDescriptors,
987
- columnFamilyHandles)) {
988
- try {
989
- // fill database with key/value pairs
990
- final byte[] value = new byte[VALUE_SIZE];
991
- int int_key = 0;
992
- for (int round = 0; round < 5; ++round) {
993
- final int initial_key = int_key;
994
- for (int f = 1; f <= NUM_L0_FILES; ++f) {
995
- for (int i = 0; i < NUM_KEYS_PER_L0_FILE; ++i) {
996
- int_key += KEY_INTERVAL;
997
- rand.nextBytes(value);
998
-
999
- db.put(columnFamilyHandles.get(1),
1000
- String.format("%020d", int_key).getBytes(),
1001
- value);
1002
- }
1003
- try (final FlushOptions flushOptions = new FlushOptions().setWaitForFlush(true)) {
1004
- db.flush(flushOptions, columnFamilyHandles.get(1));
1005
- }
1006
- // Make sure we do create one more L0 files.
1007
- assertThat(
1008
- db.getProperty(columnFamilyHandles.get(1),
1009
- "rocksdb.num-files-at-level0")).
1010
- isEqualTo("" + f);
1011
- }
1012
-
1013
- // Compact all L0 files we just created
1014
- db.compactRange(
1015
- columnFamilyHandles.get(1),
1016
- String.format("%020d", initial_key).getBytes(),
1017
- String.format("%020d", int_key - 1).getBytes());
1018
- // Making sure there isn't any L0 files.
1019
- assertThat(
1020
- db.getProperty(columnFamilyHandles.get(1),
1021
- "rocksdb.num-files-at-level0")).
1022
- isEqualTo("0");
1023
- // Making sure there are some L1 files.
1024
- // Here we only use != 0 instead of a specific number
1025
- // as we don't want the test make any assumption on
1026
- // how compaction works.
1027
- assertThat(
1028
- db.getProperty(columnFamilyHandles.get(1),
1029
- "rocksdb.num-files-at-level1")).
1030
- isNotEqualTo("0");
1031
- // Because we only compacted those keys we issued
1032
- // in this round, there shouldn't be any L1 -> L2
1033
- // compaction. So we expect zero L2 files here.
1034
- assertThat(
1035
- db.getProperty(columnFamilyHandles.get(1),
1036
- "rocksdb.num-files-at-level2")).
1037
- isEqualTo("0");
1038
- }
1039
- } finally {
1040
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
1041
- handle.close();
1042
- }
1043
- }
1044
- }
1045
- }
1046
- }
1047
-
1048
- @Test
1049
- public void continueBackgroundWorkAfterCancelAllBackgroundWork() throws RocksDBException {
1050
- final int KEY_SIZE = 20;
1051
- final int VALUE_SIZE = 300;
1052
- try (final DBOptions opt = new DBOptions().
1053
- setCreateIfMissing(true).
1054
- setCreateMissingColumnFamilies(true);
1055
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions()
1056
- ) {
1057
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
1058
- Arrays.asList(
1059
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
1060
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts)
1061
- );
1062
-
1063
- final List<ColumnFamilyHandle> columnFamilyHandles = new ArrayList<>();
1064
- // open the database
1065
- try (final RocksDB db = RocksDB.open(opt,
1066
- dbFolder.getRoot().getAbsolutePath(),
1067
- columnFamilyDescriptors,
1068
- columnFamilyHandles)) {
1069
- try {
1070
- db.cancelAllBackgroundWork(true);
1071
- try {
1072
- db.put(new byte[KEY_SIZE], new byte[VALUE_SIZE]);
1073
- try (final FlushOptions flushOptions = new FlushOptions().setWaitForFlush(true)) {
1074
- db.flush(flushOptions);
1075
- }
1076
- fail("Expected RocksDBException to be thrown if we attempt to trigger a flush after" +
1077
- " all background work is cancelled.");
1078
- } catch (final RocksDBException ignored) {
1079
- }
1080
- } finally {
1081
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
1082
- handle.close();
1083
- }
1084
- }
1085
- }
1086
- }
1087
- }
1088
-
1089
- @Test
1090
- public void cancelAllBackgroundWorkTwice() throws RocksDBException {
1091
- try (final Options options = new Options().setCreateIfMissing(true);
1092
- final RocksDB db = RocksDB.open(options,
1093
- dbFolder.getRoot().getAbsolutePath())
1094
- ) {
1095
- // Cancel all background work synchronously
1096
- db.cancelAllBackgroundWork(true);
1097
- // Cancel all background work asynchronously
1098
- db.cancelAllBackgroundWork(false);
1099
- }
1100
- }
1101
-
1102
- @Test
1103
- public void pauseContinueBackgroundWork() throws RocksDBException {
1104
- try (final Options options = new Options().setCreateIfMissing(true);
1105
- final RocksDB db = RocksDB.open(options,
1106
- dbFolder.getRoot().getAbsolutePath())
1107
- ) {
1108
- db.pauseBackgroundWork();
1109
- db.continueBackgroundWork();
1110
- db.pauseBackgroundWork();
1111
- db.continueBackgroundWork();
1112
- }
1113
- }
1114
-
1115
- @Test
1116
- public void enableDisableFileDeletions() throws RocksDBException {
1117
- try (final Options options = new Options().setCreateIfMissing(true);
1118
- final RocksDB db = RocksDB.open(options,
1119
- dbFolder.getRoot().getAbsolutePath())
1120
- ) {
1121
- db.disableFileDeletions();
1122
- db.enableFileDeletions(false);
1123
- db.disableFileDeletions();
1124
- db.enableFileDeletions(true);
1125
- }
1126
- }
1127
-
1128
- @Test
1129
- public void setOptions() throws RocksDBException {
1130
- try (final DBOptions options = new DBOptions()
1131
- .setCreateIfMissing(true)
1132
- .setCreateMissingColumnFamilies(true);
1133
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions()
1134
- .setWriteBufferSize(4096)) {
1135
-
1136
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
1137
- Arrays.asList(
1138
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
1139
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts));
1140
-
1141
- // open database
1142
- final List<ColumnFamilyHandle> columnFamilyHandles = new ArrayList<>();
1143
- try (final RocksDB db = RocksDB.open(options,
1144
- dbFolder.getRoot().getAbsolutePath(), columnFamilyDescriptors, columnFamilyHandles)) {
1145
- try {
1146
- final MutableColumnFamilyOptions mutableOptions =
1147
- MutableColumnFamilyOptions.builder()
1148
- .setWriteBufferSize(2048)
1149
- .build();
1150
-
1151
- db.setOptions(columnFamilyHandles.get(1), mutableOptions);
1152
-
1153
- } finally {
1154
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
1155
- handle.close();
1156
- }
1157
- }
1158
- }
1159
- }
1160
- }
1161
-
1162
- @Test
1163
- public void destroyDB() throws RocksDBException {
1164
- try (final Options options = new Options().setCreateIfMissing(true)) {
1165
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1166
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1167
- db.put("key1".getBytes(), "value".getBytes());
1168
- }
1169
- assertThat(dbFolder.getRoot().exists()
1170
- && Objects.requireNonNull(dbFolder.getRoot().listFiles()).length != 0)
1171
- .isTrue();
1172
- RocksDB.destroyDB(dbPath, options);
1173
- assertThat(dbFolder.getRoot().exists()
1174
- && Objects.requireNonNull(dbFolder.getRoot().listFiles()).length != 0)
1175
- .isFalse();
1176
- }
1177
- }
1178
-
1179
- @Test(expected = RocksDBException.class)
1180
- public void destroyDBFailIfOpen() throws RocksDBException {
1181
- try (final Options options = new Options().setCreateIfMissing(true)) {
1182
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1183
- try (final RocksDB ignored = RocksDB.open(options, dbPath)) {
1184
- // Fails as the db is open and locked.
1185
- RocksDB.destroyDB(dbPath, options);
1186
- }
1187
- }
1188
- }
1189
-
1190
- @Test
1191
- public void getApproximateSizes() throws RocksDBException {
1192
- final byte[] key1 = "key1".getBytes(UTF_8);
1193
- final byte[] key2 = "key2".getBytes(UTF_8);
1194
- final byte[] key3 = "key3".getBytes(UTF_8);
1195
- try (final Options options = new Options().setCreateIfMissing(true)) {
1196
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1197
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1198
- db.put(key1, key1);
1199
- db.put(key2, key2);
1200
- db.put(key3, key3);
1201
-
1202
- final long[] sizes = db.getApproximateSizes(
1203
- Arrays.asList(
1204
- new Range(new Slice(key1), new Slice(key1)),
1205
- new Range(new Slice(key2), new Slice(key3))
1206
- ),
1207
- SizeApproximationFlag.INCLUDE_FILES,
1208
- SizeApproximationFlag.INCLUDE_MEMTABLES);
1209
-
1210
- assertThat(sizes.length).isEqualTo(2);
1211
- assertThat(sizes[0]).isEqualTo(0);
1212
- assertThat(sizes[1]).isGreaterThanOrEqualTo(1);
1213
- }
1214
- }
1215
- }
1216
-
1217
- @Test
1218
- public void getApproximateMemTableStats() throws RocksDBException {
1219
- final byte[] key1 = "key1".getBytes(UTF_8);
1220
- final byte[] key2 = "key2".getBytes(UTF_8);
1221
- final byte[] key3 = "key3".getBytes(UTF_8);
1222
- try (final Options options = new Options().setCreateIfMissing(true)) {
1223
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1224
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1225
- db.put(key1, key1);
1226
- db.put(key2, key2);
1227
- db.put(key3, key3);
1228
-
1229
- final RocksDB.CountAndSize stats =
1230
- db.getApproximateMemTableStats(
1231
- new Range(new Slice(key1), new Slice(key3)));
1232
-
1233
- assertThat(stats).isNotNull();
1234
- assertThat(stats.count).isGreaterThan(1);
1235
- assertThat(stats.size).isGreaterThan(1);
1236
- }
1237
- }
1238
- }
1239
-
1240
- @Test
1241
- public void getApproximateMemTableStatsSingleKey() throws RocksDBException {
1242
- final byte[] key1 = "key1".getBytes(UTF_8);
1243
- final byte[] key3 = "key3".getBytes(UTF_8);
1244
- try (final Options options = new Options().setCreateIfMissing(true)) {
1245
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1246
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1247
- db.put(key1, key1);
1248
-
1249
- final RocksDB.CountAndSize stats =
1250
- db.getApproximateMemTableStats(new Range(new Slice(key1), new Slice(key3)));
1251
-
1252
- assertThat(stats).isNotNull();
1253
- assertThat(stats.count).isEqualTo(1);
1254
- assertThat(stats.size).isGreaterThan(1);
1255
- }
1256
- }
1257
- }
1258
-
1259
- @Ignore("TODO(AR) re-enable when ready!")
1260
- @Test
1261
- public void compactFiles() throws RocksDBException {
1262
- final int kTestKeySize = 16;
1263
- final int kTestValueSize = 984;
1264
- final int kEntrySize = kTestKeySize + kTestValueSize;
1265
- final int kEntriesPerBuffer = 100;
1266
- final int writeBufferSize = kEntrySize * kEntriesPerBuffer;
1267
- final byte[] cfName = "pikachu".getBytes(UTF_8);
1268
-
1269
- try (final Options options = new Options()
1270
- .setCreateIfMissing(true)
1271
- .setWriteBufferSize(writeBufferSize)
1272
- .setCompactionStyle(CompactionStyle.LEVEL)
1273
- .setTargetFileSizeBase(writeBufferSize)
1274
- .setMaxBytesForLevelBase(writeBufferSize * 2)
1275
- .setLevel0StopWritesTrigger(2)
1276
- .setMaxBytesForLevelMultiplier(2)
1277
- .setCompressionType(CompressionType.NO_COMPRESSION)
1278
- .setMaxSubcompactions(4)) {
1279
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1280
- try (final RocksDB db = RocksDB.open(options, dbPath);
1281
- final ColumnFamilyOptions cfOptions = new ColumnFamilyOptions(options)) {
1282
- db.createColumnFamily(new ColumnFamilyDescriptor(cfName,
1283
- cfOptions)).close();
1284
- }
1285
-
1286
- try (final ColumnFamilyOptions cfOptions = new ColumnFamilyOptions(options)) {
1287
- final List<ColumnFamilyDescriptor> cfDescriptors = Arrays.asList(
1288
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY, cfOptions),
1289
- new ColumnFamilyDescriptor(cfName, cfOptions)
1290
- );
1291
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
1292
- try (final DBOptions dbOptions = new DBOptions(options);
1293
- final RocksDB db = RocksDB.open(dbOptions, dbPath, cfDescriptors, cfHandles)) {
1294
- try (final FlushOptions flushOptions = new FlushOptions()
1295
- .setWaitForFlush(true)
1296
- .setAllowWriteStall(true);
1297
- final CompactionOptions compactionOptions = new CompactionOptions()) {
1298
- final Random rnd = new Random(301);
1299
- for (int key = 64 * kEntriesPerBuffer; key >= 0; --key) {
1300
- final byte[] value = new byte[kTestValueSize];
1301
- rnd.nextBytes(value);
1302
- db.put(cfHandles.get(1), Integer.toString(key).getBytes(UTF_8),
1303
- value);
1304
- }
1305
- db.flush(flushOptions, cfHandles);
1306
-
1307
- final RocksDB.LiveFiles liveFiles = db.getLiveFiles();
1308
- final List<String> compactedFiles =
1309
- db.compactFiles(compactionOptions, cfHandles.get(1),
1310
- liveFiles.files, 1, -1, null);
1311
- assertThat(compactedFiles).isNotEmpty();
1312
- } finally {
1313
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
1314
- cfHandle.close();
1315
- }
1316
- }
1317
- }
1318
- }
1319
- }
1320
- }
1321
-
1322
- @Test
1323
- public void enableAutoCompaction() throws RocksDBException {
1324
- try (final DBOptions options = new DBOptions()
1325
- .setCreateIfMissing(true)) {
1326
- final List<ColumnFamilyDescriptor> cfDescs =
1327
- Collections.singletonList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
1328
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
1329
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1330
- try (final RocksDB db = RocksDB.open(options, dbPath, cfDescs, cfHandles)) {
1331
- try {
1332
- db.enableAutoCompaction(cfHandles);
1333
- } finally {
1334
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
1335
- cfHandle.close();
1336
- }
1337
- }
1338
- }
1339
- }
1340
- }
1341
-
1342
- @Test
1343
- public void numberLevels() throws RocksDBException {
1344
- try (final Options options = new Options().setCreateIfMissing(true)) {
1345
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1346
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1347
- assertThat(db.numberLevels()).isEqualTo(7);
1348
- }
1349
- }
1350
- }
1351
-
1352
- @Test
1353
- public void maxMemCompactionLevel() throws RocksDBException {
1354
- try (final Options options = new Options().setCreateIfMissing(true)) {
1355
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1356
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1357
- assertThat(db.maxMemCompactionLevel()).isEqualTo(0);
1358
- }
1359
- }
1360
- }
1361
-
1362
- @Test
1363
- public void level0StopWriteTrigger() throws RocksDBException {
1364
- try (final Options options = new Options().setCreateIfMissing(true)) {
1365
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1366
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1367
- assertThat(db.level0StopWriteTrigger()).isEqualTo(36);
1368
- }
1369
- }
1370
- }
1371
-
1372
- @Test
1373
- public void getName() throws RocksDBException {
1374
- try (final Options options = new Options().setCreateIfMissing(true)) {
1375
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1376
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1377
- assertThat(db.getName()).isEqualTo(dbPath);
1378
- }
1379
- }
1380
- }
1381
-
1382
- @Test
1383
- public void getEnv() throws RocksDBException {
1384
- try (final Options options = new Options().setCreateIfMissing(true)) {
1385
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1386
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1387
- assertThat(db.getEnv()).isEqualTo(Env.getDefault());
1388
- }
1389
- }
1390
- }
1391
-
1392
- @Test
1393
- public void flush() throws RocksDBException {
1394
- try (final Options options = new Options().setCreateIfMissing(true)) {
1395
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1396
- try (final RocksDB db = RocksDB.open(options, dbPath);
1397
- final FlushOptions flushOptions = new FlushOptions()) {
1398
- db.flush(flushOptions);
1399
- }
1400
- }
1401
- }
1402
-
1403
- @Test
1404
- public void flushWal() throws RocksDBException {
1405
- try (final Options options = new Options().setCreateIfMissing(true)) {
1406
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1407
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1408
- db.flushWal(true);
1409
- }
1410
- }
1411
- }
1412
-
1413
- @Test
1414
- public void syncWal() throws RocksDBException {
1415
- try (final Options options = new Options().setCreateIfMissing(true)) {
1416
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1417
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1418
- db.syncWal();
1419
- }
1420
- }
1421
- }
1422
-
1423
- @Test
1424
- public void getLiveFiles() throws RocksDBException {
1425
- try (final Options options = new Options().setCreateIfMissing(true)) {
1426
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1427
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1428
- final RocksDB.LiveFiles livefiles = db.getLiveFiles(true);
1429
- assertThat(livefiles).isNotNull();
1430
- assertThat(livefiles.manifestFileSize).isEqualTo(66);
1431
- assertThat(livefiles.files.size()).isEqualTo(3);
1432
- assertThat(livefiles.files.get(0)).isEqualTo("/CURRENT");
1433
- assertThat(livefiles.files.get(1)).isEqualTo("/MANIFEST-000005");
1434
- assertThat(livefiles.files.get(2)).isEqualTo("/OPTIONS-000007");
1435
- }
1436
- }
1437
- }
1438
-
1439
- @Test
1440
- public void getSortedWalFiles() throws RocksDBException {
1441
- try (final Options options = new Options().setCreateIfMissing(true)) {
1442
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1443
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1444
- db.put("key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1445
- final List<LogFile> logFiles = db.getSortedWalFiles();
1446
- assertThat(logFiles).isNotNull();
1447
- assertThat(logFiles.size()).isEqualTo(1);
1448
- assertThat(logFiles.get(0).type())
1449
- .isEqualTo(WalFileType.kAliveLogFile);
1450
- }
1451
- }
1452
- }
1453
-
1454
- @Test
1455
- public void deleteFile() throws RocksDBException {
1456
- try (final Options options = new Options().setCreateIfMissing(true)) {
1457
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1458
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1459
- db.deleteFile("unknown");
1460
- }
1461
- }
1462
- }
1463
-
1464
- @Test
1465
- public void getLiveFilesMetaData() throws RocksDBException {
1466
- try (final Options options = new Options().setCreateIfMissing(true)) {
1467
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1468
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1469
- db.put("key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1470
- final List<LiveFileMetaData> liveFilesMetaData
1471
- = db.getLiveFilesMetaData();
1472
- assertThat(liveFilesMetaData).isEmpty();
1473
- }
1474
- }
1475
- }
1476
-
1477
- @Test
1478
- public void getColumnFamilyMetaData() throws RocksDBException {
1479
- try (final DBOptions options = new DBOptions()
1480
- .setCreateIfMissing(true)) {
1481
- final List<ColumnFamilyDescriptor> cfDescs =
1482
- Collections.singletonList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
1483
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
1484
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1485
- try (final RocksDB db = RocksDB.open(options, dbPath, cfDescs, cfHandles)) {
1486
- db.put(cfHandles.get(0), "key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1487
- try {
1488
- final ColumnFamilyMetaData cfMetadata =
1489
- db.getColumnFamilyMetaData(cfHandles.get(0));
1490
- assertThat(cfMetadata).isNotNull();
1491
- assertThat(cfMetadata.name()).isEqualTo(RocksDB.DEFAULT_COLUMN_FAMILY);
1492
- assertThat(cfMetadata.levels().size()).isEqualTo(7);
1493
- } finally {
1494
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
1495
- cfHandle.close();
1496
- }
1497
- }
1498
- }
1499
- }
1500
- }
1501
-
1502
- @Test
1503
- public void verifyChecksum() throws RocksDBException {
1504
- try (final Options options = new Options().setCreateIfMissing(true)) {
1505
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1506
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1507
- db.verifyChecksum();
1508
- }
1509
- }
1510
- }
1511
-
1512
- @Test
1513
- public void getPropertiesOfAllTables() throws RocksDBException {
1514
- try (final DBOptions options = new DBOptions()
1515
- .setCreateIfMissing(true)) {
1516
- final List<ColumnFamilyDescriptor> cfDescs =
1517
- Collections.singletonList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
1518
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
1519
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1520
- try (final RocksDB db = RocksDB.open(options, dbPath, cfDescs, cfHandles)) {
1521
- db.put(cfHandles.get(0), "key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1522
- try {
1523
- final Map<String, TableProperties> properties =
1524
- db.getPropertiesOfAllTables(cfHandles.get(0));
1525
- assertThat(properties).isNotNull();
1526
- } finally {
1527
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
1528
- cfHandle.close();
1529
- }
1530
- }
1531
- }
1532
- }
1533
- }
1534
-
1535
- @Test
1536
- public void getPropertiesOfTablesInRange() throws RocksDBException {
1537
- try (final DBOptions options = new DBOptions()
1538
- .setCreateIfMissing(true)) {
1539
- final List<ColumnFamilyDescriptor> cfDescs =
1540
- Collections.singletonList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
1541
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
1542
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1543
- try (final RocksDB db = RocksDB.open(options, dbPath, cfDescs, cfHandles)) {
1544
- db.put(cfHandles.get(0), "key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1545
- db.put(cfHandles.get(0), "key2".getBytes(UTF_8), "value2".getBytes(UTF_8));
1546
- db.put(cfHandles.get(0), "key3".getBytes(UTF_8), "value3".getBytes(UTF_8));
1547
- try {
1548
- final Range range = new Range(
1549
- new Slice("key1".getBytes(UTF_8)),
1550
- new Slice("key3".getBytes(UTF_8)));
1551
- final Map<String, TableProperties> properties =
1552
- db.getPropertiesOfTablesInRange(cfHandles.get(0), Collections.singletonList(range));
1553
- assertThat(properties).isNotNull();
1554
- } finally {
1555
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
1556
- cfHandle.close();
1557
- }
1558
- }
1559
- }
1560
- }
1561
- }
1562
-
1563
- @Test
1564
- public void suggestCompactRange() throws RocksDBException {
1565
- try (final DBOptions options = new DBOptions()
1566
- .setCreateIfMissing(true)) {
1567
- final List<ColumnFamilyDescriptor> cfDescs =
1568
- Collections.singletonList(new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY));
1569
- final List<ColumnFamilyHandle> cfHandles = new ArrayList<>();
1570
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1571
- try (final RocksDB db = RocksDB.open(options, dbPath, cfDescs, cfHandles)) {
1572
- db.put(cfHandles.get(0), "key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1573
- db.put(cfHandles.get(0), "key2".getBytes(UTF_8), "value2".getBytes(UTF_8));
1574
- db.put(cfHandles.get(0), "key3".getBytes(UTF_8), "value3".getBytes(UTF_8));
1575
- try {
1576
- final Range range = db.suggestCompactRange(cfHandles.get(0));
1577
- assertThat(range).isNotNull();
1578
- } finally {
1579
- for (final ColumnFamilyHandle cfHandle : cfHandles) {
1580
- cfHandle.close();
1581
- }
1582
- }
1583
- }
1584
- }
1585
- }
1586
-
1587
- @Test
1588
- public void promoteL0() throws RocksDBException {
1589
- try (final Options options = new Options().setCreateIfMissing(true)) {
1590
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1591
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1592
- db.promoteL0(2);
1593
- }
1594
- }
1595
- }
1596
-
1597
- @Test
1598
- public void startTrace() throws RocksDBException {
1599
- try (final Options options = new Options().setCreateIfMissing(true)) {
1600
- final String dbPath = dbFolder.getRoot().getAbsolutePath();
1601
- try (final RocksDB db = RocksDB.open(options, dbPath)) {
1602
- final TraceOptions traceOptions = new TraceOptions();
1603
-
1604
- try (final InMemoryTraceWriter traceWriter = new InMemoryTraceWriter()) {
1605
- db.startTrace(traceOptions, traceWriter);
1606
-
1607
- db.put("key1".getBytes(UTF_8), "value1".getBytes(UTF_8));
1608
-
1609
- db.endTrace();
1610
-
1611
- final List<byte[]> writes = traceWriter.getWrites();
1612
- assertThat(writes.size()).isGreaterThan(0);
1613
- }
1614
- }
1615
- }
1616
- }
1617
-
1618
- @Test
1619
- public void setDBOptions() throws RocksDBException {
1620
- try (final DBOptions options = new DBOptions()
1621
- .setCreateIfMissing(true)
1622
- .setCreateMissingColumnFamilies(true);
1623
- final ColumnFamilyOptions new_cf_opts = new ColumnFamilyOptions()
1624
- .setWriteBufferSize(4096)) {
1625
-
1626
- final List<ColumnFamilyDescriptor> columnFamilyDescriptors =
1627
- Arrays.asList(
1628
- new ColumnFamilyDescriptor(RocksDB.DEFAULT_COLUMN_FAMILY),
1629
- new ColumnFamilyDescriptor("new_cf".getBytes(), new_cf_opts));
1630
-
1631
- // open database
1632
- final List<ColumnFamilyHandle> columnFamilyHandles = new ArrayList<>();
1633
- try (final RocksDB db = RocksDB.open(options,
1634
- dbFolder.getRoot().getAbsolutePath(), columnFamilyDescriptors, columnFamilyHandles)) {
1635
- try {
1636
- final MutableDBOptions mutableOptions =
1637
- MutableDBOptions.builder()
1638
- .setBytesPerSync(1024 * 1027 * 7)
1639
- .setAvoidFlushDuringShutdown(false)
1640
- .build();
1641
-
1642
- db.setDBOptions(mutableOptions);
1643
- } finally {
1644
- for (final ColumnFamilyHandle handle : columnFamilyHandles) {
1645
- handle.close();
1646
- }
1647
- }
1648
- }
1649
- }
1650
- }
1651
-
1652
- @Test
1653
- public void rocksdbVersion() {
1654
- final RocksDB.Version version = RocksDB.rocksdbVersion();
1655
- assertThat(version).isNotNull();
1656
- assertThat(version.getMajor()).isGreaterThan(1);
1657
- }
1658
-
1659
- private static class InMemoryTraceWriter extends AbstractTraceWriter {
1660
- private final List<byte[]> writes = new ArrayList<>();
1661
- private volatile boolean closed = false;
1662
-
1663
- @Override
1664
- public void write(final Slice slice) {
1665
- if (closed) {
1666
- return;
1667
- }
1668
- final byte[] data = slice.data();
1669
- final byte[] dataCopy = new byte[data.length];
1670
- System.arraycopy(data, 0, dataCopy, 0, data.length);
1671
- writes.add(dataCopy);
1672
- }
1673
-
1674
- @Override
1675
- public void closeWriter() {
1676
- closed = true;
1677
- }
1678
-
1679
- @Override
1680
- public long getFileSize() {
1681
- long size = 0;
1682
- for (final byte[] write : writes) {
1683
- size += write.length;
1684
- }
1685
- return size;
1686
- }
1687
-
1688
- public List<byte[]> getWrites() {
1689
- return writes;
1690
- }
1691
- }
1692
- }