加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Riak表现 – 意想不到的结果

发布时间:2020-12-13 13:32:33 所属栏目:百科 来源:网络整理
导读:在最后的日子里,我和riak打了一下。最初的设置比我想象的容易一些。现在我有一个3节点集群,为了测试,所有节点都运行在同一个vm上。 我承认,我的虚拟机的硬件设置非常降级(1 CPU,512 MB RAM),但是我仍然对riak的性能表现感到非常惊讶。 地图缩小 用地图
在最后的日子里,我和riak打了一下。最初的设置比我想象的容易一些。现在我有一个3节点集群,为了测试,所有节点都运行在同一个vm上。

我承认,我的虚拟机的硬件设置非常降级(1 CPU,512 MB RAM),但是我仍然对riak的性能表现感到非常惊讶。

地图缩小

用地图减少一点我在一个桶中有大约2000个对象,每个约1k – 2k的大小作为json。我用这个地图函数:

function(value,keyData,arg) {
    var data = Riak.mapValuesJson(value)[0];

    if (data.displayname.indexOf("max") !== -1) return [data];
    return [];
}

而且为了执行http请求返回结果花费了2秒钟,而不是计算我的客户端代码中的时间,以排除json的结果。删除3个节点中的2个似乎略微提高了两秒钟的性能,但这对我来说似乎还是很慢。

这是预期的吗?对象的字节不是很大,一个桶中的2000个对象也不是那么大。

批量插入大约60.000个与上述相同大小的对象花了相当长的时间,实际上没有真正的工作。

我在riak中插入对象的脚本在大约40.000左右死亡,并说它不能连接到riak节点。在riak日志中,我发现一个错误消息,表示该节点已经用完了内存并且死亡。

这真的是我在riak的第一枪,所以有一定的机会,我搞砸了一些东西。

有什么设置可以调整吗?
硬件设置是否太受限制?
>也许我用于与riak交互的PHP客户端库是限制因素?
>在同一物理机上运行所有节点是相当愚蠢的,但如果这是一个问题 – 我如何更好地测试riak的性能?
地图减少真的那么慢吗?我阅读了关于riak邮件列表中的缩图功能的性能指标,但是如果Map Reduce的速度很慢,那么您应该对几乎实时所需的数据执行“查询”呢?我知道riak不像redis那么快。

如果有更多的riak经验的人可以帮助我解决一些这些问题,那么真的会帮助我很多。

这个答案有点迟了,但是我想指出,Riak的mapreduce实现主要是为了处理链接而不是整个桶。

Riak的内部设计实际上是针对整个存储桶进行优化的。这是因为桶不被认为是顺序表,而是分布在节点集群上的密钥空间。这意味着随机访问非常快 – 可能是O(log n),但不要引用我 – 而串行访问非常非常慢。串行访问,Riak目前设计的方式,必然意味着要求所有节点的数据。

顺便说一下,R??iak术语中的“水桶”令人困惑,令人失望,没有实现你可能想到的方式。 Riak称之为一个桶,实际上只是一个命名空间。在内部只有一个桶,并且以桶名作为前缀存储密钥。这意味着无论桶数多小,枚举一个大小为n的单个桶中的密钥将需要m次,其中m是所有桶中的密钥总数。

这些限制是Basho的实施选择,不一定是设计缺陷。 Cassandra实现与Riak完全相同的分区模型,但支持高效的顺序范围扫描和跨大量密钥的mapreduce。 Cassandra也实现真正的桶。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读