aac*_*kin 4 cassandra nodetool
我最近在cassandra做了一些不同设计的性能测试.我目前正在使用cassandra作为写密集型项目.但是,我将使用select语句添加读取密集部分来导出数据.
我正在用下表做时间序列;
CREATE TABLE events (
date text,
n int, // it could be 1,2,3
id timeuuid,
PRIMARY KEY ((date, n), id)
);
Run Code Online (Sandbox Code Playgroud)
我有date|n分区键.为了提高读取性能,我试图从宽行的概念中获益.在文件中,声明;
如果分区键相同,则将它们插入到同一物理节点,并加宽分区键的行.
因此,我用n在获得该陈述热点的情况下,均匀分布行这里 ;
但是,在多节点集群中,当我插入以下内容时;
'2013-07-30'|1, some-timeuuid
'2013-07-30'|1, another-timeuuid
Run Code Online (Sandbox Code Playgroud)
我看到他们不在同一个物理节点上.
我得到节点信息;
nodetool getendpoint keyspace columnfamily some-timeuuid
因此,不知何故,我希望它们在同一行中以提高读取性能,但在获得20亿列时不会太宽.(这是列的大小限制)
那么,任何想法在这里发生了什么?
如果没有弄错,为了找出存储行的节点,您需要运行:
nodetool getendpoints keyspace columnfamily 2013-07-30:1
使用(复合分区/)行键而不是列键.
如果您使用SimpleStrategy进行令牌/副本计算,这将在内部发生:
您计算密钥的MD5哈希值.创建分配给环中节点的令牌的排序列表.找到大于哈希的第一个标记.这是第一个节点.列表中的下一个是副本,它取决于RF.
(在cassandra邮件列表http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/How-to-find-what-node-a-key-is-on-td6202253上找到了这个 . HTML)
(根据评论更新了我的答案.)
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |