- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几天里,我玩了一会儿 riak。最初的设置比我想象的要容易。现在我有一个 3 节点集群,为了测试,所有节点都在同一个虚拟机上运行。
我承认,我的虚拟机的硬件设置降级了很多(1 个 CPU,512 MB 内存),但我仍然对 riak 的缓慢性能感到非常惊讶。
map 缩小
使用 map reduce 我在一个桶中有大约 2000 个对象,每个对象的大小约为 1k - 2k 作为 json。我使用了这个 map 功能:
function(value, keyData, arg) {
var data = Riak.mapValuesJson(value)[0];
if (data.displayname.indexOf("max") !== -1) return [data];
return [];
}
最佳答案
这个答案有点晚了,但我想指出 Riak 的 mapreduce 实现主要设计用于处理链接,而不是整个存储桶。
Riak 的内部设计实际上针对使用整个存储桶进行了优化。这是因为桶不被认为是顺序表,而是分布在节点集群中的键空间。这意味着随机访问非常快——可能是 O(log n),但不要引用我的话——而串行访问非常、非常、非常慢。串行访问,Riak 当前的设计方式,必然意味着向所有节点询问他们的数据。
顺便说一句,Riak 术语中的“桶”令人困惑和失望,并没有按照您可能认为的方式实现。 Riak 所说的桶实际上只是一个命名空间。内部只有一个bucket,key以bucket名称为前缀存储。这意味着无论您的桶有多大或多小,枚举单个大小为 n 的桶中的键都需要 m 时间,其中 m 是所有桶中的键总数。
这些限制是 Basho 的实现选择,不一定是设计缺陷。 Cassandra 实现了与 Riak 完全相同的分区模型,但支持跨大量键的高效顺序范围扫描和 mapreduce。 Cassandra 还实现了真正的桶。
关于performance - Riak 性能 - 意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007833/
我是一名优秀的程序员,十分优秀!