Merge pull request #10526 from jingyih/improve_mvcc_index_concurrency

mvcc: release lock early when traversing index
This commit is contained in:
Xiang Li 2019-03-06 15:48:48 -08:00 committed by GitHub
commit 949bcbddbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -92,9 +92,10 @@ func (ti *treeIndex) visit(key, end []byte, f func(ki *keyIndex)) {
keyi, endi := &keyIndex{key: key}, &keyIndex{key: end}
ti.RLock()
defer ti.RUnlock()
clone := ti.tree.Clone()
ti.RUnlock()
ti.tree.AscendGreaterOrEqual(keyi, func(item btree.Item) bool {
clone.AscendGreaterOrEqual(keyi, func(item btree.Item) bool {
if len(endi.key) > 0 && !item.Less(endi) {
return false
}