diff --git a/internal/unionstore/memdb.go b/internal/unionstore/memdb.go index cd0703e06..621e41bfe 100644 --- a/internal/unionstore/memdb.go +++ b/internal/unionstore/memdb.go @@ -833,3 +833,13 @@ func (n *memdbNode) getKeyFlags() kv.KeyFlags { func (n *memdbNode) setKeyFlags(f kv.KeyFlags) { n.flags = (^nodeFlagsMask & n.flags) | uint16(f) } + +// RemoveFromBuffer removes a record from the mem buffer. It should be only used for test. +func (db *MemDB) RemoveFromBuffer(key []byte) { + x := db.traverse(key, false) + if x.isNull() { + return + } + db.size -= len(db.vlog.getValue(x.vptr)) + db.deleteNode(x) +} diff --git a/internal/unionstore/memdb_norace_test.go b/internal/unionstore/memdb_norace_test.go index 6610cac46..ed0405638 100644 --- a/internal/unionstore/memdb_norace_test.go +++ b/internal/unionstore/memdb_norace_test.go @@ -72,7 +72,7 @@ func TestRandom(t *testing.T) { for _, k := range keys { op := rand.Float64() if op < 0.35 { - p1.DeleteKey(k) + p1.RemoveFromBuffer(k) p2.Delete(k) } else { newValue := make([]byte, rand.Intn(19)+1) diff --git a/internal/unionstore/memdb_test.go b/internal/unionstore/memdb_test.go index d5d682407..18bed9fc0 100644 --- a/internal/unionstore/memdb_test.go +++ b/internal/unionstore/memdb_test.go @@ -53,16 +53,6 @@ func init() { testMode = true } -// DeleteKey is used in test to verify the `deleteNode` used in `vlog.revertToCheckpoint`. -func (db *MemDB) DeleteKey(key []byte) { - x := db.traverse(key, false) - if x.isNull() { - return - } - db.size -= len(db.vlog.getValue(x.vptr)) - db.deleteNode(x) -} - func TestGetSet(t *testing.T) { require := require.New(t)