我建议这应该是常见情况之一,但可能是因为我在谷歌搜索时使用了错误的关键字。
我只需要创建一个完全随机的键的新表记录。假设我获得了具有良好随机性(几乎是随机的)的键。但是我不能百分之百确定尚不存在任何行。那么我需要原子地执行以下操作:
我只需要创建一个完全随机的键的新表记录。假设我获得了具有良好随机性(几乎是随机的)的键。但是我不能百分之百确定尚不存在任何行。那么我需要原子地执行以下操作:
- 检查是否存在行键。
- 如果行已存在,则拒绝操作。
- 如果不存在,则创建行。
- ICV 看起来不合适,因为我确实希望键是随机的。
- CAS 将是很好的选择,如果它们可以在“行不存在”的条件下工作,但看起来它们无法。
- 显式行锁定具有缺点,例如区域分割问题。