首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cassandra读取大量密钥的性能

cassandra读取大量密钥的性能
EN

Stack Overflow用户
提问于 2012-05-25 17:03:03
回答 3查看 857关注 0票数 1

情况是这样的

我正在尝试从CF获取大约10k个密钥。集群规模: 10节点节点数据: 250 GB堆分配: 12 GB告密者使用:属性告密者2个机架在同一数据中心。不是的。每个节点的cf的稳定数:大约8到10

我是超列approach.Each行包含大约300个超列,在术语中包含5-10列。我正在使用10k行键和1个超列发射multiget。

当第一次触发调用时,大约需要30到50秒才能返回卡桑德拉为key cache.Then提供数据的result.After,它会在2-4秒内返回结果。

所以cassandra的读取性能阻碍了我们的项目。我正在使用phpcassa.Is,有什么方法可以调整cassandra服务器,以便我可以更快地获得结果?

超列方法是否会影响读取性能?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-25 17:07:49

超级列的使用最适合子列数量相对较少的用例。点击此处阅读更多信息:http://www.datastax.com/docs/0.8/ddl/column_family

票数 1
EN

Stack Overflow用户

发布于 2012-06-02 00:44:37

如果您还没有这样做,因为您正在使用phpcassa库,请确保您已经编译了Thrift库。根据phpcassa库文件夹中的“正在安装”文本文件:

使用C扩展

C扩展对phpcassa的性能至关重要。

您需要配置和make才能使用C扩展。

代码语言:javascript
运行
复制
cd thrift/ext/thrift_protocol
phpize
./configure
make
sudo make install

将以下行添加到php.ini文件中:

代码语言:javascript
运行
复制
extension=thrift_protocol.so
票数 0
EN

Stack Overflow用户

发布于 2012-11-01 12:53:05

在做了很多关于这个东西的RND之后,我们发现你没有办法让它以最优的方式工作。当cassandra第一次获取这10k行时,这将需要时间,并且没有办法对其进行优化。

1)然而,在实际中,人们访问相同记录的概率是more.So的,我们最大限度地利用密钥缓存的密钥cache.Default设置为2MB。所以我们可以将它增加到128MB,而不会出现内存问题。在数据加载之后,运行预期的查询来预热键缓存。

2) JVM在8-10 GB最好(没有数字来证明it.Just的观察结果)。

3)最重要的是,如果你使用的是物理机(不是云或虚拟机),那么一定要检查磁盘调度程序you are using.Set it NOOP,这对cassandra是有好处的,因为它从一个部分读取所有密钥,减少了磁盘头的移动。

上述更改有助于在可接受的范围内缩短查询所需的时间。

除了上述更改之外,如果您有大小较小但经常访问的CFs,请为其启用行缓存。

希望上面的信息是有用的。

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

https://stackoverflow.com/questions/10751490

复制
相关文章

相似问题

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