The GitHub Actions job "CI" on kvrocks.git has failed.
Run started by GitHub user git-hulk (triggered by git-hulk).

Head commit for run:
c9b1e8e65258a37bcdbdc24e74b4096976493327 / Binbin <binloveplay1...@qq.com>
Use MultiLockGuard to guarantee atomicity for multiple keys commands (#1700)

In kvrocks, for multiple key commands, we may break atomicity.
such as `ZUNION`, `ZUNIONSTORE`, `ZINTERSTOR`E, `SUNION`, `SUNIONSTORE`,
`SINTER`, `SINTERSTORE`, `SDIFF` and `SDIFFSTORE`.

For `SDIFFSTORE destination key1 [key2 ...]` command, kvrocks will
read key1, key2 ... orderly without any lock, and then restore the
diff into the destination key. So maybe some keys may be changed when
We read them orderly, which breaks atomicity but Redis can guarantee
atomicity.

In this PR, we are using `MultiLockGuard` to lock these keys before
we read or write, so it is impossible to change these keys. This change
affects all commands listed previously.

Fixes #1692

Report URL: https://github.com/apache/kvrocks/actions/runs/5983113206

With regards,
GitHub Actions via GitBox

Reply via email to