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.
- package/binding.gyp +23 -0
- package/binding.js +1 -1
- package/package.json +19 -1
- package/vendor/rocksdb.cc +79 -0
- package/vendor/rocksdb.gyp +414 -0
- package/.clang-format +0 -15
- package/.github/workflows/test-node.yml +0 -23
- package/.gitmodules +0 -4
- package/NOTICE +0 -13
- package/vendor/rocksdb/.circleci/config.yml +0 -892
- package/vendor/rocksdb/.circleci/ubsan_suppression_list.txt +0 -6
- package/vendor/rocksdb/.clang-format +0 -5
- package/vendor/rocksdb/.github/workflows/sanity_check.yml +0 -47
- package/vendor/rocksdb/.lgtm.yml +0 -4
- package/vendor/rocksdb/AUTHORS +0 -12
- package/vendor/rocksdb/CODE_OF_CONDUCT.md +0 -77
- package/vendor/rocksdb/CONTRIBUTING.md +0 -17
- package/vendor/rocksdb/DEFAULT_OPTIONS_HISTORY.md +0 -24
- package/vendor/rocksdb/DUMP_FORMAT.md +0 -16
- package/vendor/rocksdb/HISTORY.md +0 -2399
- package/vendor/rocksdb/INSTALL.md +0 -220
- package/vendor/rocksdb/LANGUAGE-BINDINGS.md +0 -26
- package/vendor/rocksdb/Makefile +0 -2579
- package/vendor/rocksdb/PLUGINS.md +0 -8
- package/vendor/rocksdb/TARGETS +0 -5599
- package/vendor/rocksdb/USERS.md +0 -165
- package/vendor/rocksdb/Vagrantfile +0 -39
- package/vendor/rocksdb/WINDOWS_PORT.md +0 -228
- package/vendor/rocksdb/buckifier/bench-slow.json +0 -6163
- package/vendor/rocksdb/buckifier/bench.json +0 -1594
- package/vendor/rocksdb/buckifier/buckify_rocksdb.py +0 -333
- package/vendor/rocksdb/buckifier/check_buck_targets.sh +0 -32
- package/vendor/rocksdb/buckifier/rocks_test_runner.sh +0 -6
- package/vendor/rocksdb/buckifier/targets_builder.py +0 -150
- package/vendor/rocksdb/buckifier/targets_cfg.py +0 -41
- package/vendor/rocksdb/buckifier/util.py +0 -118
- package/vendor/rocksdb/build_tools/amalgamate.py +0 -168
- package/vendor/rocksdb/build_tools/benchmark_log_tool.py +0 -238
- package/vendor/rocksdb/build_tools/build_detect_platform +0 -804
- package/vendor/rocksdb/build_tools/check-sources.sh +0 -48
- package/vendor/rocksdb/build_tools/dependencies_platform010.sh +0 -22
- package/vendor/rocksdb/build_tools/dockerbuild.sh +0 -3
- package/vendor/rocksdb/build_tools/error_filter.py +0 -181
- package/vendor/rocksdb/build_tools/fb_compile_mongo.sh +0 -55
- package/vendor/rocksdb/build_tools/fbcode_config.sh +0 -175
- package/vendor/rocksdb/build_tools/fbcode_config_platform010.sh +0 -175
- package/vendor/rocksdb/build_tools/format-diff.sh +0 -203
- package/vendor/rocksdb/build_tools/gnu_parallel +0 -7971
- package/vendor/rocksdb/build_tools/make_package.sh +0 -129
- package/vendor/rocksdb/build_tools/ps_with_stack +0 -38
- package/vendor/rocksdb/build_tools/regression_build_test.sh +0 -396
- package/vendor/rocksdb/build_tools/run_ci_db_test.ps1 +0 -493
- package/vendor/rocksdb/build_tools/setup_centos7.sh +0 -45
- package/vendor/rocksdb/build_tools/ubuntu20_image/Dockerfile +0 -57
- package/vendor/rocksdb/build_tools/update_dependencies.sh +0 -106
- package/vendor/rocksdb/build_tools/version.sh +0 -23
- package/vendor/rocksdb/common.mk +0 -30
- package/vendor/rocksdb/crash_test.mk +0 -107
- package/vendor/rocksdb/db/c_test.c +0 -3609
- package/vendor/rocksdb/docs/CNAME +0 -1
- package/vendor/rocksdb/docs/CONTRIBUTING.md +0 -115
- package/vendor/rocksdb/docs/Gemfile +0 -4
- package/vendor/rocksdb/docs/LICENSE-DOCUMENTATION +0 -385
- package/vendor/rocksdb/docs/TEMPLATE-INFORMATION.md +0 -17
- package/vendor/rocksdb/docs/_config.yml +0 -85
- package/vendor/rocksdb/docs/_data/authors.yml +0 -81
- package/vendor/rocksdb/docs/_data/features.yml +0 -19
- package/vendor/rocksdb/docs/_data/nav.yml +0 -30
- package/vendor/rocksdb/docs/_data/nav_docs.yml +0 -3
- package/vendor/rocksdb/docs/_data/powered_by.yml +0 -1
- package/vendor/rocksdb/docs/_data/powered_by_highlight.yml +0 -1
- package/vendor/rocksdb/docs/_data/promo.yml +0 -6
- package/vendor/rocksdb/docs/_docs/faq.md +0 -48
- package/vendor/rocksdb/docs/_docs/getting-started.md +0 -78
- package/vendor/rocksdb/docs/_includes/blog_pagination.html +0 -28
- package/vendor/rocksdb/docs/_includes/content/gridblocks.html +0 -5
- package/vendor/rocksdb/docs/_includes/content/items/gridblock.html +0 -37
- package/vendor/rocksdb/docs/_includes/doc.html +0 -25
- package/vendor/rocksdb/docs/_includes/doc_paging.html +0 -0
- package/vendor/rocksdb/docs/_includes/footer.html +0 -34
- package/vendor/rocksdb/docs/_includes/head.html +0 -23
- package/vendor/rocksdb/docs/_includes/header.html +0 -19
- package/vendor/rocksdb/docs/_includes/hero.html +0 -0
- package/vendor/rocksdb/docs/_includes/home_header.html +0 -22
- package/vendor/rocksdb/docs/_includes/katex_import.html +0 -3
- package/vendor/rocksdb/docs/_includes/katex_render.html +0 -210
- package/vendor/rocksdb/docs/_includes/nav/collection_nav.html +0 -64
- package/vendor/rocksdb/docs/_includes/nav/collection_nav_group.html +0 -19
- package/vendor/rocksdb/docs/_includes/nav/collection_nav_group_item.html +0 -1
- package/vendor/rocksdb/docs/_includes/nav/header_nav.html +0 -30
- package/vendor/rocksdb/docs/_includes/nav.html +0 -37
- package/vendor/rocksdb/docs/_includes/nav_search.html +0 -15
- package/vendor/rocksdb/docs/_includes/plugins/all_share.html +0 -3
- package/vendor/rocksdb/docs/_includes/plugins/ascii_cinema.html +0 -2
- package/vendor/rocksdb/docs/_includes/plugins/button.html +0 -6
- package/vendor/rocksdb/docs/_includes/plugins/github_star.html +0 -4
- package/vendor/rocksdb/docs/_includes/plugins/github_watch.html +0 -4
- package/vendor/rocksdb/docs/_includes/plugins/google_share.html +0 -5
- package/vendor/rocksdb/docs/_includes/plugins/iframe.html +0 -6
- package/vendor/rocksdb/docs/_includes/plugins/like_button.html +0 -18
- package/vendor/rocksdb/docs/_includes/plugins/plugin_row.html +0 -5
- package/vendor/rocksdb/docs/_includes/plugins/post_social_plugins.html +0 -41
- package/vendor/rocksdb/docs/_includes/plugins/slideshow.html +0 -88
- package/vendor/rocksdb/docs/_includes/plugins/twitter_follow.html +0 -12
- package/vendor/rocksdb/docs/_includes/plugins/twitter_share.html +0 -11
- package/vendor/rocksdb/docs/_includes/post.html +0 -40
- package/vendor/rocksdb/docs/_includes/powered_by.html +0 -28
- package/vendor/rocksdb/docs/_includes/social_plugins.html +0 -31
- package/vendor/rocksdb/docs/_includes/ui/button.html +0 -1
- package/vendor/rocksdb/docs/_layouts/basic.html +0 -12
- package/vendor/rocksdb/docs/_layouts/blog.html +0 -11
- package/vendor/rocksdb/docs/_layouts/blog_default.html +0 -14
- package/vendor/rocksdb/docs/_layouts/default.html +0 -12
- package/vendor/rocksdb/docs/_layouts/doc_default.html +0 -14
- package/vendor/rocksdb/docs/_layouts/doc_page.html +0 -10
- package/vendor/rocksdb/docs/_layouts/docs.html +0 -5
- package/vendor/rocksdb/docs/_layouts/home.html +0 -26
- package/vendor/rocksdb/docs/_layouts/page.html +0 -3
- package/vendor/rocksdb/docs/_layouts/plain.html +0 -10
- package/vendor/rocksdb/docs/_layouts/post.html +0 -8
- package/vendor/rocksdb/docs/_layouts/redirect.html +0 -6
- package/vendor/rocksdb/docs/_layouts/top-level.html +0 -10
- package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-backup-rocksdb.markdown +0 -135
- package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-persist-in-memory-rocksdb-database.markdown +0 -54
- package/vendor/rocksdb/docs/_posts/2014-04-02-the-1st-rocksdb-local-meetup-held-on-march-27-2014.markdown +0 -53
- package/vendor/rocksdb/docs/_posts/2014-04-07-rocksdb-2-8-release.markdown +0 -40
- package/vendor/rocksdb/docs/_posts/2014-04-21-indexing-sst-files-for-better-lookup-performance.markdown +0 -28
- package/vendor/rocksdb/docs/_posts/2014-05-14-lock.markdown +0 -88
- package/vendor/rocksdb/docs/_posts/2014-05-19-rocksdb-3-0-release.markdown +0 -24
- package/vendor/rocksdb/docs/_posts/2014-05-22-rocksdb-3-1-release.markdown +0 -20
- package/vendor/rocksdb/docs/_posts/2014-06-23-plaintable-a-new-file-format.markdown +0 -47
- package/vendor/rocksdb/docs/_posts/2014-06-27-avoid-expensive-locks-in-get.markdown +0 -89
- package/vendor/rocksdb/docs/_posts/2014-06-27-rocksdb-3-2-release.markdown +0 -30
- package/vendor/rocksdb/docs/_posts/2014-07-29-rocksdb-3-3-release.markdown +0 -34
- package/vendor/rocksdb/docs/_posts/2014-09-12-cuckoo.markdown +0 -74
- package/vendor/rocksdb/docs/_posts/2014-09-12-new-bloom-filter-format.markdown +0 -52
- package/vendor/rocksdb/docs/_posts/2014-09-15-rocksdb-3-5-release.markdown +0 -38
- package/vendor/rocksdb/docs/_posts/2015-01-16-migrating-from-leveldb-to-rocksdb-2.markdown +0 -112
- package/vendor/rocksdb/docs/_posts/2015-02-24-reading-rocksdb-options-from-a-file.markdown +0 -41
- package/vendor/rocksdb/docs/_posts/2015-02-27-write-batch-with-index.markdown +0 -20
- package/vendor/rocksdb/docs/_posts/2015-04-22-integrating-rocksdb-with-mongodb-2.markdown +0 -16
- package/vendor/rocksdb/docs/_posts/2015-06-12-rocksdb-in-osquery.markdown +0 -10
- package/vendor/rocksdb/docs/_posts/2015-07-15-rocksdb-2015-h2-roadmap.markdown +0 -92
- package/vendor/rocksdb/docs/_posts/2015-07-17-spatial-indexing-in-rocksdb.markdown +0 -78
- package/vendor/rocksdb/docs/_posts/2015-07-22-rocksdb-is-now-available-in-windows-platform.markdown +0 -30
- package/vendor/rocksdb/docs/_posts/2015-07-23-dynamic-level.markdown +0 -29
- package/vendor/rocksdb/docs/_posts/2015-10-27-getthreadlist.markdown +0 -193
- package/vendor/rocksdb/docs/_posts/2015-11-10-use-checkpoints-for-efficient-snapshots.markdown +0 -45
- package/vendor/rocksdb/docs/_posts/2015-11-16-analysis-file-read-latency-by-level.markdown +0 -244
- package/vendor/rocksdb/docs/_posts/2016-01-29-compaction_pri.markdown +0 -51
- package/vendor/rocksdb/docs/_posts/2016-02-24-rocksdb-4-2-release.markdown +0 -41
- package/vendor/rocksdb/docs/_posts/2016-02-25-rocksdb-ama.markdown +0 -20
- package/vendor/rocksdb/docs/_posts/2016-03-07-rocksdb-options-file.markdown +0 -24
- package/vendor/rocksdb/docs/_posts/2016-04-26-rocksdb-4-5-1-released.markdown +0 -60
- package/vendor/rocksdb/docs/_posts/2016-07-26-rocksdb-4-8-released.markdown +0 -48
- package/vendor/rocksdb/docs/_posts/2016-09-28-rocksdb-4-11-2-released.markdown +0 -49
- package/vendor/rocksdb/docs/_posts/2017-01-06-rocksdb-5-0-1-released.markdown +0 -26
- package/vendor/rocksdb/docs/_posts/2017-02-07-rocksdb-5-1-2-released.markdown +0 -15
- package/vendor/rocksdb/docs/_posts/2017-02-17-bulkoad-ingest-sst-file.markdown +0 -50
- package/vendor/rocksdb/docs/_posts/2017-03-02-rocksdb-5-2-1-released.markdown +0 -22
- package/vendor/rocksdb/docs/_posts/2017-05-12-partitioned-index-filter.markdown +0 -34
- package/vendor/rocksdb/docs/_posts/2017-05-14-core-local-stats.markdown +0 -106
- package/vendor/rocksdb/docs/_posts/2017-05-26-rocksdb-5-4-5-released.markdown +0 -39
- package/vendor/rocksdb/docs/_posts/2017-06-26-17-level-based-changes.markdown +0 -60
- package/vendor/rocksdb/docs/_posts/2017-06-29-rocksdb-5-5-1-released.markdown +0 -22
- package/vendor/rocksdb/docs/_posts/2017-07-25-rocksdb-5-6-1-released.markdown +0 -22
- package/vendor/rocksdb/docs/_posts/2017-08-24-pinnableslice.markdown +0 -37
- package/vendor/rocksdb/docs/_posts/2017-08-25-flushwal.markdown +0 -26
- package/vendor/rocksdb/docs/_posts/2017-09-28-rocksdb-5-8-released.markdown +0 -25
- package/vendor/rocksdb/docs/_posts/2017-12-18-17-auto-tuned-rate-limiter.markdown +0 -28
- package/vendor/rocksdb/docs/_posts/2017-12-19-write-prepared-txn.markdown +0 -41
- package/vendor/rocksdb/docs/_posts/2018-02-05-rocksdb-5-10-2-released.markdown +0 -22
- package/vendor/rocksdb/docs/_posts/2018-08-01-rocksdb-tuning-advisor.markdown +0 -58
- package/vendor/rocksdb/docs/_posts/2018-08-23-data-block-hash-index.markdown +0 -118
- package/vendor/rocksdb/docs/_posts/2018-11-21-delete-range.markdown +0 -292
- package/vendor/rocksdb/docs/_posts/2019-03-08-format-version-4.markdown +0 -36
- package/vendor/rocksdb/docs/_posts/2019-08-15-unordered-write.markdown +0 -56
- package/vendor/rocksdb/docs/_posts/2021-04-12-universal-improvements.markdown +0 -46
- package/vendor/rocksdb/docs/_posts/2021-05-26-integrated-blob-db.markdown +0 -101
- package/vendor/rocksdb/docs/_posts/2021-05-26-online-validation.markdown +0 -17
- package/vendor/rocksdb/docs/_posts/2021-05-27-rocksdb-secondary-cache.markdown +0 -195
- package/vendor/rocksdb/docs/_posts/2021-05-31-dictionary-compression.markdown +0 -157
- package/vendor/rocksdb/docs/_posts/2021-12-29-ribbon-filter.markdown +0 -281
- package/vendor/rocksdb/docs/_posts/2022-07-18-per-key-value-checksum.markdown +0 -142
- package/vendor/rocksdb/docs/_posts/2022-10-05-lost-buffered-write-recovery.markdown +0 -123
- package/vendor/rocksdb/docs/_posts/2022-10-07-asynchronous-io-in-rocksdb.markdown +0 -133
- package/vendor/rocksdb/docs/_posts/2022-10-31-align-compaction-output-file.markdown +0 -107
- package/vendor/rocksdb/docs/_posts/2022-11-09-time-aware-tiered-storage.markdown +0 -121
- package/vendor/rocksdb/docs/_sass/_base.scss +0 -492
- package/vendor/rocksdb/docs/_sass/_blog.scss +0 -47
- package/vendor/rocksdb/docs/_sass/_buttons.scss +0 -47
- package/vendor/rocksdb/docs/_sass/_footer.scss +0 -82
- package/vendor/rocksdb/docs/_sass/_gridBlock.scss +0 -115
- package/vendor/rocksdb/docs/_sass/_header.scss +0 -139
- package/vendor/rocksdb/docs/_sass/_poweredby.scss +0 -69
- package/vendor/rocksdb/docs/_sass/_promo.scss +0 -55
- package/vendor/rocksdb/docs/_sass/_react_docs_nav.scss +0 -332
- package/vendor/rocksdb/docs/_sass/_react_header_nav.scss +0 -141
- package/vendor/rocksdb/docs/_sass/_reset.scss +0 -43
- package/vendor/rocksdb/docs/_sass/_search.scss +0 -142
- package/vendor/rocksdb/docs/_sass/_slideshow.scss +0 -48
- package/vendor/rocksdb/docs/_sass/_syntax-highlighting.scss +0 -129
- package/vendor/rocksdb/docs/_sass/_tables.scss +0 -47
- package/vendor/rocksdb/docs/_top-level/support.md +0 -22
- package/vendor/rocksdb/docs/blog/all.html +0 -20
- package/vendor/rocksdb/docs/blog/index.html +0 -12
- package/vendor/rocksdb/docs/css/main.scss +0 -159
- package/vendor/rocksdb/docs/doc-type-examples/2016-04-07-blog-post-example.md +0 -21
- package/vendor/rocksdb/docs/doc-type-examples/docs-hello-world.md +0 -12
- package/vendor/rocksdb/docs/doc-type-examples/top-level-example.md +0 -8
- package/vendor/rocksdb/docs/docs/index.html +0 -6
- package/vendor/rocksdb/docs/feed.xml +0 -30
- package/vendor/rocksdb/docs/index.md +0 -9
- package/vendor/rocksdb/docs/static/favicon.png +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff2 +0 -0
- package/vendor/rocksdb/docs/static/images/Resize-of-20140327_200754-300x225.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/compaction_output_file_size_compare.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_align.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_normal.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_trival_move.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_size_compare.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/write_amp_compare.png +0 -0
- package/vendor/rocksdb/docs/static/images/asynchronous-io/mget_async.png +0 -0
- package/vendor/rocksdb/docs/static/images/asynchronous-io/scan_async.png +0 -0
- package/vendor/rocksdb/docs/static/images/binaryseek.png +0 -0
- package/vendor/rocksdb/docs/static/images/bloom_fp_vs_bpk.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/full-range.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/l0-l1-contend.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/l1-l2-contend.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/part-range-old.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-binary-seek.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-hash-index.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/hash-index-data-structure.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-cache-miss.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-throughput.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_collapsed.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_key_schema.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_sst_blocks.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_uncollapsed.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_write_path.png +0 -0
- package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_raw_sampled.png +0 -0
- package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_sst_blocks.png +0 -0
- package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_zstd_trained.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Legacy_Vs_Integrated.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_RW_RO_Perf.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Amp.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Perf.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-entry.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-write.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Memtable.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch-to-Memtable.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-fragment.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-read.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-write.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Write-batch.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Writebatch-write.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/angry-cat.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/basic-setup.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/happy-cat.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/replay-extension.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/test-fs-writable-file.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/trace-extension.png +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-blockindex.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-fileindex.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-filelayout.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-readiopath.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-tieredstorage.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-writeiopath.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/promo-adapt.svg +0 -8
- package/vendor/rocksdb/docs/static/images/promo-flash.svg +0 -28
- package/vendor/rocksdb/docs/static/images/promo-operations.svg +0 -6
- package/vendor/rocksdb/docs/static/images/promo-performance.svg +0 -134
- package/vendor/rocksdb/docs/static/images/rate-limiter/auto-tuned-write-KBps-series.png +0 -0
- package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-cdf.png +0 -0
- package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-series.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_hit_rate.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_throughput.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/arch_diagram.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/insert_flow.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/lookup_flow.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/compaction_moving_up_conflict.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/per_key_placement_compaction.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_design.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_overview.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_problem.png +0 -0
- package/vendor/rocksdb/docs/static/images/tree_example1.png +0 -0
- package/vendor/rocksdb/docs/static/logo.svg +0 -76
- package/vendor/rocksdb/docs/static/og_image.png +0 -0
- package/vendor/rocksdb/examples/Makefile +0 -58
- package/vendor/rocksdb/examples/c_simple_example.c +0 -96
- package/vendor/rocksdb/examples/rocksdb_option_file_example.ini +0 -142
- package/vendor/rocksdb/fuzz/Makefile +0 -67
- package/vendor/rocksdb/fuzz/proto/db_operation.proto +0 -28
- package/vendor/rocksdb/issue_template.md +0 -7
- package/vendor/rocksdb/java/GetBenchmarks.md +0 -161
- package/vendor/rocksdb/java/HISTORY-JAVA.md +0 -86
- package/vendor/rocksdb/java/Makefile +0 -453
- package/vendor/rocksdb/java/RELEASE.md +0 -59
- package/vendor/rocksdb/java/benchmark/src/main/java/org/rocksdb/benchmark/DbBenchmark.java +0 -1640
- package/vendor/rocksdb/java/crossbuild/Vagrantfile +0 -51
- package/vendor/rocksdb/java/crossbuild/build-linux-alpine.sh +0 -70
- package/vendor/rocksdb/java/crossbuild/build-linux-centos.sh +0 -38
- package/vendor/rocksdb/java/crossbuild/build-linux.sh +0 -15
- package/vendor/rocksdb/java/crossbuild/docker-build-linux-alpine.sh +0 -17
- package/vendor/rocksdb/java/crossbuild/docker-build-linux-centos.sh +0 -38
- package/vendor/rocksdb/java/jdb_bench.sh +0 -13
- package/vendor/rocksdb/java/jmh/LICENSE-HEADER.txt +0 -5
- package/vendor/rocksdb/java/jmh/pom.xml +0 -138
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/ComparatorBenchmarks.java +0 -139
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/GetBenchmarks.java +0 -215
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/MultiGetBenchmarks.java +0 -214
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/PutBenchmarks.java +0 -112
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/FileUtils.java +0 -59
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/KVUtils.java +0 -72
- package/vendor/rocksdb/java/pom.xml.template +0 -178
- package/vendor/rocksdb/java/samples/src/main/java/OptimisticTransactionSample.java +0 -184
- package/vendor/rocksdb/java/samples/src/main/java/RocksDBColumnFamilySample.java +0 -78
- package/vendor/rocksdb/java/samples/src/main/java/RocksDBSample.java +0 -295
- package/vendor/rocksdb/java/samples/src/main/java/TransactionSample.java +0 -183
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilter.java +0 -59
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilterFactory.java +0 -77
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparator.java +0 -124
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparatorJniBridge.java +0 -119
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractEventListener.java +0 -334
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractImmutableNativeReference.java +0 -65
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractMutableOptions.java +0 -368
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractNativeReference.java +0 -49
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractRocksIterator.java +0 -146
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractSlice.java +0 -191
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTableFilter.java +0 -20
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTraceWriter.java +0 -70
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTransactionNotifier.java +0 -54
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWalFilter.java +0 -49
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWriteBatch.java +0 -203
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AccessHint.java +0 -53
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedColumnFamilyOptionsInterface.java +0 -463
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedMutableColumnFamilyOptionsInterface.java +0 -830
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackgroundErrorReason.java +0 -46
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngine.java +0 -259
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngineOptions.java +0 -458
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupInfo.java +0 -76
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BlockBasedTableConfig.java +0 -951
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BloomFilter.java +0 -73
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BuiltinComparator.java +0 -20
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ByteBufferGetStatus.java +0 -50
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Cache.java +0 -40
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraCompactionFilter.java +0 -20
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraValueMergeOperator.java +0 -25
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Checkpoint.java +0 -62
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ChecksumType.java +0 -45
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ClockCache.java +0 -59
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyDescriptor.java +0 -84
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyHandle.java +0 -151
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyMetaData.java +0 -70
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptions.java +0 -1543
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptionsInterface.java +0 -536
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactRangeOptions.java +0 -245
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobInfo.java +0 -161
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobStats.java +0 -295
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptions.java +0 -121
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsFIFO.java +0 -87
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsUniversal.java +0 -273
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionPriority.java +0 -81
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionReason.java +0 -141
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStopStyle.java +0 -55
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStyle.java +0 -81
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorOptions.java +0 -133
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorType.java +0 -48
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionOptions.java +0 -150
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionType.java +0 -121
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiter.java +0 -44
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiterImpl.java +0 -48
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConfigOptions.java +0 -53
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptions.java +0 -1496
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptionsInterface.java +0 -1756
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DataBlockIndexType.java +0 -32
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DbPath.java +0 -47
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DirectSlice.java +0 -136
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/EncodingType.java +0 -55
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Env.java +0 -167
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/EnvOptions.java +0 -366
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/EventListener.java +0 -335
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Experimental.java +0 -23
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ExternalFileIngestionInfo.java +0 -103
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FileOperationInfo.java +0 -112
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Filter.java +0 -36
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushJobInfo.java +0 -186
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushOptions.java +0 -90
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushReason.java +0 -53
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashLinkedListMemTableConfig.java +0 -174
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashSkipListMemTableConfig.java +0 -106
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramData.java +0 -75
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramType.java +0 -214
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Holder.java +0 -46
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexShorteningMode.java +0 -60
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexType.java +0 -55
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/InfoLogLevel.java +0 -49
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/IngestExternalFileOptions.java +0 -227
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/KeyMayExist.java +0 -35
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LRUCache.java +0 -106
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LevelMetaData.java +0 -56
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LiveFileMetaData.java +0 -55
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LogFile.java +0 -75
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Logger.java +0 -121
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableConfig.java +0 -29
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableInfo.java +0 -103
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUsageType.java +0 -72
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUtil.java +0 -60
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MergeOperator.java +0 -18
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptions.java +0 -621
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptionsInterface.java +0 -156
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptions.java +0 -292
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptionsInterface.java +0 -440
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionKey.java +0 -16
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionValue.java +0 -368
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeComparatorWrapper.java +0 -59
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeLibraryLoader.java +0 -172
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationStage.java +0 -59
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationType.java +0 -55
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionDB.java +0 -224
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionOptions.java +0 -53
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionString.java +0 -261
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Options.java +0 -2574
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionsUtil.java +0 -101
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/PersistentCache.java +0 -26
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/PlainTableConfig.java +0 -251
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/PrepopulateBlobCache.java +0 -117
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Priority.java +0 -49
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Range.java +0 -19
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiter.java +0 -227
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiterMode.java +0 -52
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadOptions.java +0 -822
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadTier.java +0 -49
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RemoveEmptyValueCompactionFilter.java +0 -18
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RestoreOptions.java +0 -32
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReusedSynchronisationType.java +0 -65
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksCallbackObject.java +0 -73
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDB.java +0 -4688
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDBException.java +0 -44
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksEnv.java +0 -31
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIterator.java +0 -140
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIteratorInterface.java +0 -127
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMemEnv.java +0 -31
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMutableObject.java +0 -87
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksObject.java +0 -45
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SanityLevel.java +0 -47
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SizeApproximationFlag.java +0 -31
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SkipListMemTableConfig.java +0 -51
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Slice.java +0 -135
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Snapshot.java +0 -41
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileManager.java +0 -249
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileMetaData.java +0 -162
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReader.java +0 -82
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReaderIterator.java +0 -140
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileWriter.java +0 -237
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFactory.java +0 -15
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFixedPrefixFactory.java +0 -19
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StateType.java +0 -53
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Statistics.java +0 -153
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollector.java +0 -102
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollectorCallback.java +0 -32
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsCollectorInput.java +0 -35
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsLevel.java +0 -65
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Status.java +0 -155
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StringAppendOperator.java +0 -29
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationBriefInfo.java +0 -107
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationInfo.java +0 -86
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationReason.java +0 -46
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileDeletionInfo.java +0 -86
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFilter.java +0 -21
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFormatConfig.java +0 -22
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableProperties.java +0 -426
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadStatus.java +0 -224
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadType.java +0 -65
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TickerType.java +0 -802
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TimedEnv.java +0 -30
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceOptions.java +0 -32
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceWriter.java +0 -36
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Transaction.java +0 -2162
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDB.java +0 -401
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDBOptions.java +0 -216
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionLogIterator.java +0 -112
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionOptions.java +0 -189
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalDB.java +0 -65
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalOptions.java +0 -31
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TtlDB.java +0 -242
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TxnDBWritePolicy.java +0 -62
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/UInt64AddOperator.java +0 -19
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/VectorMemTableConfig.java +0 -46
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WALRecoveryMode.java +0 -82
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WBWIRocksIterator.java +0 -203
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFileType.java +0 -55
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFilter.java +0 -86
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalProcessingOption.java +0 -54
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatch.java +0 -394
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchInterface.java +0 -283
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchWithIndex.java +0 -358
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBufferManager.java +0 -50
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteOptions.java +0 -255
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallCondition.java +0 -44
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallInfo.java +0 -75
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ByteUtil.java +0 -52
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/BytewiseComparator.java +0 -121
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/Environment.java +0 -245
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/IntComparator.java +0 -67
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ReverseBytewiseComparator.java +0 -88
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/SizeUnit.java +0 -16
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/AbstractTransactionTest.java +0 -979
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineOptionsTest.java +0 -297
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineTest.java +0 -261
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlobOptionsTest.java +0 -353
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlockBasedTableConfigTest.java +0 -415
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BuiltinComparatorTest.java +0 -145
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ByteBufferUnsupportedOperationTest.java +0 -132
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BytewiseComparatorRegressionTest.java +0 -132
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CheckPointTest.java +0 -82
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ClockCacheTest.java +0 -25
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyOptionsTest.java +0 -712
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyTest.java +0 -562
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactRangeOptionsTest.java +0 -102
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionFilterFactoryTest.java +0 -61
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobInfoTest.java +0 -114
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobStatsTest.java +0 -196
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsFIFOTest.java +0 -35
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsTest.java +0 -52
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsUniversalTest.java +0 -80
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionPriorityTest.java +0 -31
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionStopStyleTest.java +0 -31
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ComparatorOptionsTest.java +0 -58
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionOptionsTest.java +0 -71
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionTypesTest.java +0 -25
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ConcurrentTaskLimiterTest.java +0 -56
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/DBOptionsTest.java +0 -902
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/DefaultEnvTest.java +0 -113
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/DirectSliceTest.java +0 -93
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/EnvOptionsTest.java +0 -145
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/EventListenerTest.java +0 -725
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/FilterTest.java +0 -39
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushOptionsTest.java +0 -31
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushTest.java +0 -49
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/InfoLogLevelTest.java +0 -109
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/IngestExternalFileOptionsTest.java +0 -107
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/KeyMayExistTest.java +0 -528
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/LRUCacheTest.java +0 -32
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/LoggerTest.java +0 -235
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemTableTest.java +0 -108
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemoryUtilTest.java +0 -136
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MergeTest.java +0 -465
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MixedOptionsTest.java +0 -85
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiColumnRegressionTest.java +0 -145
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetManyKeysTest.java +0 -241
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetTest.java +0 -530
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableColumnFamilyOptionsTest.java +0 -167
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableDBOptionsTest.java +0 -85
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableOptionsGetSetTest.java +0 -429
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeComparatorWrapperTest.java +0 -90
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeLibraryLoaderTest.java +0 -41
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionDBTest.java +0 -131
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionOptionsTest.java +0 -38
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionTest.java +0 -446
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsTest.java +0 -1488
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsUtilTest.java +0 -129
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlainTableConfigTest.java +0 -89
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlatformRandomHelper.java +0 -58
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/PutMultiplePartsTest.java +0 -164
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RateLimiterTest.java +0 -65
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOnlyTest.java +0 -222
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOptionsTest.java +0 -374
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBExceptionTest.java +0 -115
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBTest.java +0 -1692
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksIteratorTest.java +0 -289
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksMemEnvTest.java +0 -137
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksNativeLibraryResource.java +0 -18
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SecondaryDBTest.java +0 -135
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SliceTest.java +0 -80
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SnapshotTest.java +0 -169
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileManagerTest.java +0 -66
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileReaderTest.java +0 -222
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileWriterTest.java +0 -239
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstPartitionerTest.java +0 -72
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsCollectorTest.java +0 -55
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsTest.java +0 -168
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatsCallbackMock.java +0 -19
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TableFilterTest.java +0 -106
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TimedEnvTest.java +0 -40
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBOptionsTest.java +0 -64
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBTest.java +0 -177
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionLogIteratorTest.java +0 -139
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionOptionsTest.java +0 -72
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionTest.java +0 -488
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TtlDBTest.java +0 -112
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/Types.java +0 -43
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/VerifyChecksumsTest.java +0 -213
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WALRecoveryModeTest.java +0 -22
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WalFilterTest.java +0 -165
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchHandlerTest.java +0 -76
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchTest.java +0 -528
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchThreadedTest.java +0 -101
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchWithIndexTest.java +0 -1068
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteOptionsTest.java +0 -75
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java +0 -21
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RocksJunitRunner.java +0 -174
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/TestableEventListener.java +0 -23
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ByteBufferAllocator.java +0 -16
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorIntTest.java +0 -267
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorTest.java +0 -531
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/CapturingWriteBatchHandler.java +0 -190
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/DirectByteBufferAllocator.java +0 -18
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/EnvironmentTest.java +0 -304
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/HeapByteBufferAllocator.java +0 -18
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/IntComparatorTest.java +0 -266
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/JNIComparatorTest.java +0 -180
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ReverseBytewiseComparatorIntTest.java +0 -270
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/SizeUnitTest.java +0 -27
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/TestUtil.java +0 -72
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/WriteBatchGetter.java +0 -139
- package/vendor/rocksdb/java/understanding_options.md +0 -79
- package/vendor/rocksdb/src.mk +0 -713
- package/vendor/rocksdb/thirdparty.inc +0 -268
- package/vendor/rocksdb/tools/Dockerfile +0 -5
- package/vendor/rocksdb/tools/advisor/advisor/__init__.py +0 -0
- package/vendor/rocksdb/tools/advisor/advisor/bench_runner.py +0 -39
- package/vendor/rocksdb/tools/advisor/advisor/config_optimizer_example.py +0 -140
- package/vendor/rocksdb/tools/advisor/advisor/db_bench_runner.py +0 -237
- package/vendor/rocksdb/tools/advisor/advisor/db_config_optimizer.py +0 -293
- package/vendor/rocksdb/tools/advisor/advisor/db_log_parser.py +0 -134
- package/vendor/rocksdb/tools/advisor/advisor/db_options_parser.py +0 -348
- package/vendor/rocksdb/tools/advisor/advisor/db_stats_fetcher.py +0 -346
- package/vendor/rocksdb/tools/advisor/advisor/db_timeseries_parser.py +0 -203
- package/vendor/rocksdb/tools/advisor/advisor/ini_parser.py +0 -76
- package/vendor/rocksdb/tools/advisor/advisor/rule_parser.py +0 -510
- package/vendor/rocksdb/tools/advisor/advisor/rule_parser_example.py +0 -98
- package/vendor/rocksdb/tools/advisor/advisor/rules.ini +0 -214
- package/vendor/rocksdb/tools/advisor/test/__init__.py +0 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/LOG-0 +0 -30
- package/vendor/rocksdb/tools/advisor/test/input_files/LOG-1 +0 -25
- package/vendor/rocksdb/tools/advisor/test/input_files/OPTIONS-000005 +0 -49
- package/vendor/rocksdb/tools/advisor/test/input_files/log_stats_parser_keys_ts +0 -3
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err1.ini +0 -56
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err2.ini +0 -15
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err3.ini +0 -15
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err4.ini +0 -15
- package/vendor/rocksdb/tools/advisor/test/input_files/test_rules.ini +0 -47
- package/vendor/rocksdb/tools/advisor/test/input_files/triggered_rules.ini +0 -83
- package/vendor/rocksdb/tools/advisor/test/test_db_bench_runner.py +0 -141
- package/vendor/rocksdb/tools/advisor/test/test_db_log_parser.py +0 -96
- package/vendor/rocksdb/tools/advisor/test/test_db_options_parser.py +0 -214
- package/vendor/rocksdb/tools/advisor/test/test_db_stats_fetcher.py +0 -121
- package/vendor/rocksdb/tools/advisor/test/test_rule_parser.py +0 -226
- package/vendor/rocksdb/tools/analyze_txn_stress_test.sh +0 -77
- package/vendor/rocksdb/tools/auto_sanity_test.sh +0 -93
- package/vendor/rocksdb/tools/backup_db.sh +0 -15
- package/vendor/rocksdb/tools/benchmark.sh +0 -1173
- package/vendor/rocksdb/tools/benchmark_ci.py +0 -182
- package/vendor/rocksdb/tools/benchmark_compare.sh +0 -342
- package/vendor/rocksdb/tools/benchmark_leveldb.sh +0 -187
- package/vendor/rocksdb/tools/block_cache_analyzer/__init__.py +0 -2
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +0 -2000
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.sh +0 -156
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +0 -734
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +0 -729
- package/vendor/rocksdb/tools/check_all_python.py +0 -22
- package/vendor/rocksdb/tools/check_format_compatible.sh +0 -379
- package/vendor/rocksdb/tools/db_crashtest.py +0 -1018
- package/vendor/rocksdb/tools/dbench_monitor +0 -102
- package/vendor/rocksdb/tools/generate_random_db.sh +0 -31
- package/vendor/rocksdb/tools/ingest_external_sst.sh +0 -18
- package/vendor/rocksdb/tools/ldb_test.py +0 -955
- package/vendor/rocksdb/tools/pflag +0 -217
- package/vendor/rocksdb/tools/regression_test.sh +0 -525
- package/vendor/rocksdb/tools/restore_db.sh +0 -15
- package/vendor/rocksdb/tools/rocksdb_dump_test.sh +0 -9
- package/vendor/rocksdb/tools/run_blob_bench.sh +0 -223
- package/vendor/rocksdb/tools/run_flash_bench.sh +0 -359
- package/vendor/rocksdb/tools/run_leveldb.sh +0 -175
- package/vendor/rocksdb/tools/sample-dump.dmp +0 -0
- package/vendor/rocksdb/tools/verify_random_db.sh +0 -41
- package/vendor/rocksdb/tools/write_external_sst.sh +0 -26
- package/vendor/rocksdb/tools/write_stress_runner.py +0 -83
- package/vendor/rocksdb/util/crc32c_ppc.c +0 -94
- 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
|
-
}
|