我目前正在努力使用與Cassandra一起使用的正確數據格式。我想這是因爲它提供的額外深度超過標準鍵值存儲。卡桑德拉的數據存儲器
我的數據格式目前定義是這樣的:
- Keyspaces針對不同的應用。
- 不同應用部分的列族。
- 在這些列系列中我有數據。
大部分數據存儲在單個柱族內的格式爲:
Key: UUID-1|UUID-2|UUID-3
Value: Array of PHP Values
插入幾個100.000項之後(各< 1KB)我看到性能退化讀取數據時。
從我的理解中,Column家族應該正是我的數據的主要部分的存儲位置。將我的大部分數據放在一個Column Family中而不是幾個不同的數據中不應該成爲關鍵。
我應該考慮將我的數據分割成不同的列族還是方法正確,但是其他原因可能是問題的原因?
編輯回答的評論DNA的問題:
我比較需要我開始我的測試之前已插入一個鍵讀取時間。
當數據庫仍然爲空時,測試密鑰始終在< 0.0010s內始終讀取> 1.000次。寫入測試數據的結構是這樣的:
- 包含當前Unix時間戳
我添加了條目並重新運行相同的讀取測試以比較讀取時間。讀次我在這裏列出的是較低的數字:
Entries | Read Time
0 | 0.0010
150.000 | 0.0013
300.000 | 0.0014
500.000 | 0.0016
750.000 | 0.0019
1.000.000 | 0.0022
因爲這僅僅是基本的測試,這是隻在亞馬遜單個節點(EC2實例)上運行。對於每250.000個新行,讀取時間似乎會增加約0.0003秒。
我知道這些數字非常小,它們很棒,但讀取時間的線性增長並不是我所期望的。
我打算將大量的小型條目移植到Cassandra上。它目前包含約750億條目,它收集的新數據集的數量非常快,讀取時間線性增加,因此讓我懷疑是否正朝着正確的方向前進。
你看到了什麼樣的表現,你期待什麼表現?無論您使用一個CF還是多個CF,通常取決於您要存儲的數據的結構以及所需的查詢類型。你能否詳細說明你的數據結構以及你正在讀取的查詢類型?你在使用什麼版本的Cassandra,在什麼硬件上? – DNA 2012-01-30 23:01:31
@DNA:我正在保存的PHP值數組包含一些字符串(大約10-20,每個長度爲10-500)。我還編輯了我的問題(希望)更好地解釋我爲什麼問這個問題以及我的「擔憂」來自哪裏。我正在測試環境中使用0.7.6-2版本。 – favo 2012-01-31 19:04:32