Ist der Aerospike Rekord UDF atomar?Aerospike Record UDF ist es Atom?
function increment_and_expire(rec, incValue, expireThreshold, currentTime)
if aerospike:exists(rec) then
local timesUsed = rec['timesUsed']
if timesUsed == expireThreshold or rec['validUpto'] < currentTime then
rec['expired'] = true
else
rec['timesUsed'] = timesUsed + incValue
end
aerospike:update(rec)
return 1
else
warn("record doesn't exists")
return -1
end
end
Die obige Lua-Funktion erhöht die Verwendung eines Tokens, und wenn es nicht mehr gültig ist, wird es als abgelaufen markiert. Nun ist mein Zweifel, wenn gleichzeitige Anfrage für den gleichen Datensatz kommt und diese Funktion gleichzeitig ausgeführt wird, würde das irgendwelche Probleme verursachen?