mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #11330 from shenjiangc/master
mvcc/kvstore: Optimize compaction, slove conflict for #11150
This commit is contained in:
commit
cbc1340af5
@ -272,15 +272,15 @@ func (s *store) updateCompactRev(rev int64) (<-chan struct{}, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *store) compact(trace *traceutil.Trace, rev int64) (<-chan struct{}, error) {
|
func (s *store) compact(trace *traceutil.Trace, rev int64) (<-chan struct{}, error) {
|
||||||
start := time.Now()
|
|
||||||
keep := s.kvindex.Compact(rev)
|
|
||||||
trace.Step("compact in-memory index tree")
|
|
||||||
ch := make(chan struct{})
|
ch := make(chan struct{})
|
||||||
var j = func(ctx context.Context) {
|
var j = func(ctx context.Context) {
|
||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
s.compactBarrier(ctx, ch)
|
s.compactBarrier(ctx, ch)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
start := time.Now()
|
||||||
|
keep := s.kvindex.Compact(rev)
|
||||||
|
indexCompactionPauseMs.Observe(float64(time.Since(start) / time.Millisecond))
|
||||||
if !s.scheduleCompaction(rev, keep) {
|
if !s.scheduleCompaction(rev, keep) {
|
||||||
s.compactBarrier(nil, ch)
|
s.compactBarrier(nil, ch)
|
||||||
return
|
return
|
||||||
@ -289,8 +289,6 @@ func (s *store) compact(trace *traceutil.Trace, rev int64) (<-chan struct{}, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
s.fifoSched.Schedule(j)
|
s.fifoSched.Schedule(j)
|
||||||
|
|
||||||
indexCompactionPauseMs.Observe(float64(time.Since(start) / time.Millisecond))
|
|
||||||
trace.Step("schedule compaction")
|
trace.Step("schedule compaction")
|
||||||
return ch, nil
|
return ch, nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user