mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #12739 from LeoYang90/optimization_watch_prevkv
create event do not need prevkv range
This commit is contained in:
commit
3ead91ca3e
@ -391,7 +391,7 @@ func (sws *serverWatchStream) sendLoop() {
|
|||||||
sws.mu.RUnlock()
|
sws.mu.RUnlock()
|
||||||
for i := range evs {
|
for i := range evs {
|
||||||
events[i] = &evs[i]
|
events[i] = &evs[i]
|
||||||
if needPrevKV {
|
if needPrevKV && !IsCreateEvent(evs[i]) {
|
||||||
opt := mvcc.RangeOptions{Rev: evs[i].Kv.ModRevision - 1}
|
opt := mvcc.RangeOptions{Rev: evs[i].Kv.ModRevision - 1}
|
||||||
r, err := sws.watchable.Range(context.TODO(), evs[i].Kv.Key, nil, opt)
|
r, err := sws.watchable.Range(context.TODO(), evs[i].Kv.Key, nil, opt)
|
||||||
if err == nil && len(r.KVs) != 0 {
|
if err == nil && len(r.KVs) != 0 {
|
||||||
@ -501,6 +501,10 @@ func (sws *serverWatchStream) sendLoop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsCreateEvent(e mvccpb.Event) bool {
|
||||||
|
return e.Type == mvccpb.PUT && e.Kv.CreateRevision == e.Kv.ModRevision
|
||||||
|
}
|
||||||
|
|
||||||
func sendFragments(
|
func sendFragments(
|
||||||
wr *pb.WatchResponse,
|
wr *pb.WatchResponse,
|
||||||
maxRequestBytes int,
|
maxRequestBytes int,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user