首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$bucket在生产中安全吗?

$bucket在生产中安全吗?
EN

Stack Overflow用户
提问于 2020-04-15 08:25:32
回答 1查看 70关注 0票数 1

我需要清理一个大型riak数据库中的几个桶。对于某些桶,因为我们有索引,所以我只是查询并删除了键。但是现在我要处理的是两个没有索引的桶。由于我多次阅读,所以我不应该在生产系统上使用keys?keys=truekeys?keys=stream,但是获取所有键的另一种方法是使用$bucket索引,正如建议的在文件中所建议的那样,在文件中并不警告不要在生产中使用该索引。我相信这之前也被称为$keys。我们的系统似乎与任何一个都有效。

但是,在生产上运行此操作之前,我一直在尝试,发现$bucket索引返回被删除的键,就像keys?keys=true/stream一样,而当我使用我们自己维护的索引时,情况并非如此。

在生产中使用$bucket索引安全吗?

请注意,我们的系统运行在LevelDB后端上,据我所知,这是桶作用域,因此在其上运行keys?keys=true/stream也是安全的。这是真的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-15 13:07:42

现实情况是,在使用$bucket或$key时,没有任何保证,特别是如果您将其与Map/Reduce组合在一起,它们不会影响集群的稳定性。但是,如果您知道桶中的密钥相对较少,或者在查询中使用max_results,那么$bucket应该是相对安全的(当然比使用列表键要好得多)。

有更安全的Riak KV 2.9.1中键质量的擦除方法,无论后端(假设使用Tictac )都是可用的。

至于返回已删除键的$bucket或$key查询,我怀疑这很可能是真的,因为这是一个“内部”级别‘t查询,而在级别数据库中,它无法区分Riak对象和riak墓碑。Riak2.9.x中的改进处理了这种情况,并且不会返回已删除的密钥(除非您正在寻找要收获的墓碑)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61224396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档