最近我在cassandra中用不同的設計進行了一些性能測試。 我目前使用cassandra作爲寫密集型項目。但是,我將添加讀取密集型部分以使用select
語句導出數據。cassandra複合節點,多節點上的複合鍵
我正在用下表做時間系列;
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
所以,不知何故,我想他們是在同一行,以提高讀取性能,但不能太寬在找兩個十億列的情況。 (這是列的大小限制)
那麼,有什麼想法發生了什麼?
的複合隔膜是(根據評論更新我的答案。),你不應該把引號輪字符串,因爲他們將被列入關鍵。所以第一個例子應該是'nodetool getendpoints keyspace columnfamily 2013-07-30:1'。 – Richard
顯然,'nodetool getendpoints'也爲不存在的鍵提供輸出。它在密鑰上運行算法後輸出物理節點ip。你對「getendpoints」的使用是正確的 – aacanakin