diff --git a/mvcc/index.go b/mvcc/index.go index e2964cf5b..f8cc6df88 100644 --- a/mvcc/index.go +++ b/mvcc/index.go @@ -91,11 +91,10 @@ func (ti *treeIndex) keyIndex(keyi *keyIndex) *keyIndex { func (ti *treeIndex) visit(key, end []byte, f func(ki *keyIndex)) { keyi, endi := &keyIndex{key: key}, &keyIndex{key: end} - ti.Lock() - clone := ti.tree.Clone() - ti.Unlock() + ti.RLock() + defer ti.RUnlock() - clone.AscendGreaterOrEqual(keyi, func(item btree.Item) bool { + ti.tree.AscendGreaterOrEqual(keyi, func(item btree.Item) bool { if len(endi.key) > 0 && !item.Less(endi) { return false }