【发布时间】:2013-07-30 13:28:56
【问题描述】:
我最近在 cassandra 中使用不同的设计进行了一些性能测试。
我目前正在使用 cassandra 作为写入密集型项目。但是,我将使用select 语句添加读取密集型部分来导出数据。
我正在用下表做时间序列;
CREATE TABLE events (
date text,
n int, // it could be 1,2,3
id timeuuid,
PRIMARY KEY ((date, n), id)
);
我有date|n 作为分区键。为了提高读取性能,我试图利用宽行的概念。在文档中指出;
如果分区键相同,则将它们插入到同一个物理节点,并扩大分区键的行。
因此,我使用n 来均匀分布行,以防出现here 声明的热点;
但是,在多节点集群中,当我插入以下内容时;
'2013-07-30'|1, some-timeuuid
'2013-07-30'|1, another-timeuuid
我发现它们不在同一个物理节点中。
我通过以下方式获取节点信息;
nodetool getendpoint keyspace columnfamily some-timeuuid
所以,不知何故,我希望它们位于同一行以提高读取性能,但在获得 20 亿列的情况下不要太宽。 (这是列的大小限制)
那么,有什么想法吗?
【问题讨论】: