我建议这应该是常见的情况之一,但可能我在谷歌搜索时使用了错误的关键字。
我只需要用完全随机的键创建新的表记录。假设我获得了具有良好随机性(几乎随机)的密钥。但是我不能 100% 确定没有行存在。所以我需要原子地做:
- 行键检查不存在行。
- 如果行存在则拒绝操作。
- 如果它不退出,则创建行。
我在这个主题上找到的最有用的信息是关于HBase 行锁的文章。 我认为 HBase 行锁是合适的解决方案,但我想在没有显式行锁定的情况下做得更好。
- ICV 看起来不合适,因为我确实希望密钥是随机的。
- 如果 CAS 可以在“行不存在”的条件下工作,那么他们会很棒,但看起来他们不能。
- 显式行锁具有区域拆分问题等缺点。
有人可以添加有用的建议吗?优选的 API 是基于 Java 的,但实际上它更多的是关于概念而不是实现。