Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add key value separation feature to Nebula storage engine #3281

Merged
merged 6 commits into from
Nov 23, 2021

Conversation

wenhaocs
Copy link
Contributor

@wenhaocs wenhaocs commented Nov 8, 2021

This PR exposes the key-value separation support of RocksDB in Nebula. Based on the experiment with internal dataset and testing environment, we can reduce query latency as much as 80%.

Copy link
Contributor

@critical27 critical27 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done, LGTM

Copy link
Contributor

@panda-sheep panda-sheep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job, 👍

@codecov-commenter
Copy link

codecov-commenter commented Nov 23, 2021

Codecov Report

Merging #3281 (0064d29) into master (80e827f) will increase coverage by 0.02%.
The diff coverage is 87.79%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3281      +/-   ##
==========================================
+ Coverage   85.24%   85.26%   +0.02%     
==========================================
  Files        1289     1289              
  Lines      120035   120113      +78     
==========================================
+ Hits       102322   102414      +92     
+ Misses      17713    17699      -14     
Impacted Files Coverage Δ
src/graph/executor/admin/ShowTSClientsExecutor.cpp 0.00% <0.00%> (ø)
src/graph/optimizer/OptGroup.h 100.00% <ø> (ø)
src/graph/optimizer/Optimizer.h 100.00% <ø> (ø)
src/graph/optimizer/OptimizerUtils.cpp 94.00% <ø> (ø)
...h/optimizer/rule/GeoPredicateIndexScanBaseRule.cpp 96.20% <ø> (ø)
src/graph/optimizer/rule/IndexScanRule.cpp 71.98% <ø> (ø)
...timizer/rule/OptimizeEdgeIndexScanByFilterRule.cpp 90.54% <ø> (ø)
...ptimizer/rule/OptimizeTagIndexScanByFilterRule.cpp 90.27% <ø> (ø)
...graph/optimizer/rule/PushFilterDownGetNbrsRule.cpp 75.51% <ø> (ø)
...imizer/rule/PushLimitDownEdgeIndexFullScanRule.cpp 89.65% <ø> (ø)
... and 57 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update bf0c3a1...0064d29. Read the comment docs.

# Whether or not to enable BlobDB (RocksDB key-value separation support)
--rocksdb_enable_kv_separation=false
# RocksDB key value separation threshold. Values at or above this threshold will be written to blob files during flush or compaction.
--rocksdb_kv_separation_threshold=0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the threshold is set to zero, any writing will move to the blob file?

@yixinglu yixinglu merged commit ae83b89 into vesoft-inc:master Nov 23, 2021
@yixinglu yixinglu added the doc affected PR: improvements or additions to documentation label Nov 23, 2021
@cooper-lzy cooper-lzy requested review from cooper-lzy and removed request for bright-starry-sky January 5, 2022 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc affected PR: improvements or additions to documentation ready-for-testing PR: ready for the CI test
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants