optimize del in cluster

This commit is contained in:
今晚打老虎
2025-04-30 15:41:35 +08:00
committed by finley
parent 6640e6fad2
commit 14ec8277ca
2 changed files with 8 additions and 12 deletions

View File

@@ -25,7 +25,6 @@ func execDel(cluster *core.Cluster, c redis.Connection, cmdLine CmdLine) redis.R
return protocol.MakeArgNumErrReply("del")
}
var keys []string
keyValues := make(map[string][]byte)
for i := 1; i < len(cmdLine); i++ {
key := string(cmdLine[i])
keys = append(keys, key)
@@ -44,8 +43,7 @@ func execDel(cluster *core.Cluster, c redis.Connection, cmdLine CmdLine) redis.R
for node, keys := range routeMap {
nodeCmdLine := utils.ToCmdLine("del")
for _, key := range keys {
val := keyValues[key]
nodeCmdLine = append(nodeCmdLine, []byte(key), val)
nodeCmdLine = append(nodeCmdLine, []byte(key))
}
cmdLineMap[node] = nodeCmdLine
}

View File

@@ -55,7 +55,7 @@ func execPrepare(cluster *Cluster, c redis.Connection, cmdLine CmdLine) redis.Re
tx := cluster.transactions.txs[txId]
if tx != nil {
cluster.transactions.mu.Unlock()
return protocol.MakeErrReply("transction existed")
return protocol.MakeErrReply("transaction existed")
}
tx = &TCC{}
cluster.transactions.txs[txId] = tx
@@ -92,11 +92,10 @@ func execCommit(cluster *Cluster, c redis.Connection, cmdLine CmdLine) redis.Rep
cluster.transactions.mu.Lock()
tx := cluster.transactions.txs[txId]
if tx == nil {
cluster.transactions.mu.Unlock()
return protocol.MakeErrReply("transction not found")
}
cluster.transactions.mu.Unlock()
if tx == nil {
return protocol.MakeErrReply("transaction not found")
}
resp := cluster.db.ExecWithLock(c, tx.realCmdLine)
@@ -127,11 +126,10 @@ func execRollback(cluster *Cluster, c redis.Connection, cmdLine CmdLine) redis.R
// get transaction
cluster.transactions.mu.Lock()
tx := cluster.transactions.txs[txId]
if tx == nil {
cluster.transactions.mu.Unlock()
return protocol.MakeErrReply("transction not found")
}
cluster.transactions.mu.Unlock()
if tx == nil {
return protocol.MakeErrReply("transaction not found")
}
// rollback
if !tx.hasLock {