MrCroxx / RunKV

[WIP] An experimental cloud-native distributed KV engine for OLTP workload.
MIT License
68 stars 7 forks source link

feat: using client-side streaming and avoiding read lock to optimize raft message sending #134

Closed MrCroxx closed 2 years ago

MrCroxx commented 2 years ago

Changes:

Summary:

Ref: #126 .

MrCroxx commented 2 years ago

main cf3415d:

image image
codecov[bot] commented 2 years ago

Codecov Report

Merging #134 (401f29d) into main (cf3415d) will increase coverage by 0.20%. The diff coverage is 91.13%.

:exclamation: Current head 401f29d differs from pull request most recent head 5f95042. Consider uploading reports for the commit 5f95042 to get more accurate results

@@            Coverage Diff             @@
##             main     #134      +/-   ##
==========================================
+ Coverage   82.20%   82.41%   +0.20%     
==========================================
  Files          74       75       +1     
  Lines        7273     7272       -1     
==========================================
+ Hits         5979     5993      +14     
+ Misses       1294     1279      -15     
Impacted Files Coverage Δ
client/src/lib.rs 50.00% <50.00%> (ø)
wheel/src/components/raft_network.rs 86.11% <91.42%> (-1.87%) :arrow_down:
wheel/src/service.rs 78.57% <92.30%> (+3.94%) :arrow_up:
wheel/src/worker/raft.rs 86.98% <93.10%> (+0.30%) :arrow_up:
storage/src/lsm_tree/components/skiplist/list.rs 85.44% <0.00%> (-0.32%) :arrow_down:
storage/src/lsm_tree/manifest/version.rs 82.10% <0.00%> (+0.22%) :arrow_up:
wheel/src/components/fsm.rs 68.52% <0.00%> (+0.50%) :arrow_up:
... and 1 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 cf3415d...5f95042. Read the comment docs.

MrCroxx commented 2 years ago

0635bb5 (worser?):

image image
MrCroxx commented 2 years ago

HEAD 401f29d:

image image
MrCroxx commented 2 years ago

A little relief: integration tests runs really faster than before (40s+ -> 30s-, 10s+ preparation included).

MrCroxx commented 2 years ago

Thought twice, it seems that I used client-side streaming grpc in a wrong way. Try later.