我使用的是riak 1.4.10版本,它与两个主机共享一个环。我无法摆脱先前操作中对键使用简单删除操作遗留的键。当我列出存储桶的密钥时,它会显示旧密钥,但如果我尝试检索与密钥关联的数据,则不会找到任何数据。当我尝试删除密钥时,它仍然存在。这可能是什么原因?有没有办法清除桶中的密钥,以便从干净的石板开始?我不关心riak中的任何数据,但我宁愿不必再次重新安装所有的东西。riak - 无法删除存储桶中的密钥
2
A
回答
4
您可能正在看到旧数据的墓碑。由于Riak是一个最终一致的数据存储,它需要跟踪删除,就好像它们是普通的写入一样,至少在一段时间内。
如果数据存在于一个节点上,而不是另一个节点上,那么如何判断它是否还未传播的PUT或DELETE?
Riak通过使用墓碑解决了这个问题。无论何时删除某些内容,Riak都不会立即擦除数据,而是用已知值删除的特殊值替换现有值。此特殊值包含一个从之前的值开始下降的vclock,以及指示已删除的元数据。因此,在决定上述问题时,Riak只需将该值的vclock与墓碑的值进行比较。无论从哪一个下降,都必须是正确的。
为了解决主要包含墓碑的不断增长的数据大小的问题,墓碑在一段时间后收割。时间使用delete_mode设置进行设置。 DELETE处理完成后,逻辑删除已写入主要vnodes,删除过程将为该密钥发出GET请求。每当GET进程遇到逻辑删除,并且所有主节点都使用相同的逻辑删除响应时,它会根据delete_mode设置安排逻辑删除。
所以,如果你想实际摆脱墓碑,检查你的delete_mode设置,以确保它没有设置为'保持',并为每一个发出一个get来确保它确实消失。
或者,如果您只是擦拭数据存储以重新启动测试,请停止Riak,删除所使用的后端的data_root下的所有文件,然后重新启动。
相关问题
- 1. 连续生产Riak桶中的密钥
- 2. 无法删除空S3存储桶
- 3. ElasticSearch:获取存储桶中的存储桶密钥scripted_metric
- 4. Riak搜索2无索引存储桶
- 5. 无法删除Solr密钥
- 6. 无法删除SSRS密钥
- 7. 无法在原始riak桶中存储数据
- 8. Riak内存中存储每个密钥的开销
- 9. elasticsearch聚合排序存储桶密钥
- 10. 过滤聚合存储桶密钥?
- 11. Couchbase - 虽然存储桶已成功连接,但无法存储密钥和值
- 12. 桶中的删除对象,但大小存储不增加到riak
- 13. 删除S3存储桶中的对象
- 14. 删除S3中的存储桶
- 15. Riak桶中的所有密钥都必须一次装入内存中吗?
- 16. 在cURL上创建Riak存储桶
- 17. 从存储桶中删除文件
- 18. 清除并删除S3存储桶
- 19. 无法建立密钥存储文件
- 20. 从存储在memcache密钥中的数组中删除值?
- 21. 当您无法在AWS上访问存储区时删除存储桶S3
- 22. “错误:无法恢复密钥”当与现有密钥存储
- 23. 存储密钥
- 24. 存储密钥
- 25. Sitecore - 删除存储桶子项目
- 26. 从缓存中删除密钥
- 27. 在不知道密钥的情况下从存储桶中获取对象
- 28. 如何列出riak中的所有存储桶类型?
- 29. Riak CS - 无法使用龙盘创建/查看存储桶详细信息
- 30. 有没有办法在couchabase中提取memcached存储桶的顶级密钥