-
Notifications
You must be signed in to change notification settings - Fork 9.8k
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
mvcc: revert change made by #10526 and #10699 #10772
Conversation
Revert etcd-io#10526 and its followup etcd-io#10699.
lgtm. Is there a way to fix this problem? I think we still want a low cost way to do the traverse. |
I am thinking about adding finer granularity locking at keyIndex level. |
Codecov Report
@@ Coverage Diff @@
## master #10772 +/- ##
==========================================
- Coverage 62.3% 62.16% -0.14%
==========================================
Files 392 392
Lines 37158 37157 -1
==========================================
- Hits 23152 23100 -52
- Misses 12438 12492 +54
+ Partials 1568 1565 -3
Continue to review full report at Codecov.
|
I tried the same benchmark setup as mentioned in #10523 (comment), which includes three types of workloads injected concurrently. With this PR which revert the earlier optimization in index tree traversing, the result is slightly worse but very comparable. Maybe this is because ranging revisions in index tree takes much shorter time compared to ranging keys in the bbolt (and read buffer). BaseLine With this PR |
BaseLineLong ReadSummary: Response time histogram: Latency distribution: Short ReadSummary: Response time histogram: Latency distribution: WriteSummary: Response time histogram: Latency distribution: |
With this PRLong ReadSummary: Response time histogram: Latency distribution: Short ReadSummary: Response time histogram: Latency distribution: WriteSummary: Response time histogram: Latency distribution: |
@xiang90 I think simply reverting the previous change is good enough. |
lgtm |
Revert #10526 and its followup #10699. To fix data race in the following tests:
&keyIndex{}
is not deep copied intree.Clone()
.etcd/mvcc/index.go
Lines 94 to 96 in e1ca3b4