簡體   English   中英

在限制請求結果的數量時,Cassandra是否讀取了整行?

[英]Does Cassandra read the whole row when limiting the number of requested results?

我正在使用cassandra 2.0.6。 並有這個表:

CREATE TABLE t (
    id text,
    idx bigint,
    data bigint,
    PRIMARY KEY (id, idx)
)

所以說我得到了這些行:

id / idx / data
x    1     data1
x    2     data2
x    3     data3

....繼續說1000行為x

如果我查詢:

select * from t where id='x' order by idx limit 1

cassandra會獲取所有1000行,還是僅占其中的一小部分?

閱讀像http://www.ebaytechblog.com/2012/08/14/cassandra-data-modeling-best-practices-part-2/#.UzrvLKZx2PI這樣的文章,它似乎只能獲取它的一小部分。 但是運行一些壓力測試和表中的數據越多,我獲得的MB /秒磁盤IO就越多。

對於8GB數據,我獲得3MB /秒IO(讀取)對於12GB數據,我獲得15MB /秒IO(讀取)對於20GB數據,我目前獲得35MB /秒IO(讀取)

在cfhistograms中我沒有看到任何奇怪的東西:

SSTables per Read
1 sstables: 421010
2 sstables: 552
3 sstables: 9
4 sstables: 0
5 sstables: 254
6 sstables: 3221
7 sstables: 3063
8 sstables: 1029
10 sstables: 143

Read Latency (microseconds)
12 us: 6
14 us: 36
17 us: 471
20 us: 2795
24 us: 10799
29 us: 18594
35 us: 24693
42 us: 43078
50 us: 67438
60 us: 68872
72 us: 70718
86 us: 47300
103 us: 23471
124 us: 11752
149 us: 4509
179 us: 1437
215 us: 832
258 us: 3444
310 us: 7883
372 us: 2374
446 us: 736
535 us: 624
642 us: 581
770 us: 1875
924 us: 1715
1109 us: 2889
1331 us: 3705
1597 us: 2197
1916 us: 1320
2299 us: 826
2759 us: 639
3311 us: 431
3973 us: 312
4768 us: 213
5722 us: 106
6866 us: 72
8239 us: 44
9887 us: 36
11864 us: 25
14237 us: 16
17084 us: 23
20501 us: 20
24601 us: 15
29521 us: 28
35425 us: 21
42510 us: 20
51012 us: 49
61214 us: 49
73457 us: 29
88148 us: 23
105778 us: 35
126934 us: 23
152321 us: 17
182785 us: 13
219342 us: 10
263210 us: 8
315852 us: 3
379022 us: 8
454826 us: 10

您可以在訂購和限制時獲得更多I / O. 如果您確定要獲取數據的順序,請在創建時對列族使用clusterordering

通過(idx desc)創建具有簇順序的表tablename(.......)

通過這種方式,默認情況下,所有插入按IDx按降序排序。 因此,當您對其應用限制時,您應減少磁盤I / O.

完成聚類訂單后,您的訂購時間現在就會保存。 如果您遇到大量數據的問題,那將是由於使用的壓縮策略。 我覺得你在閱讀重列系列上使用了大小分層的壓縮策略。 使用Leveled壓縮策略嘗試相同的方案。

當您使用大小分層壓縮時,您將數據分布在多個馬廄中,並且每次都必須獲取數據。 因此,閱讀重列系列並不是一個好兆頭。

我發現我實際上是在意外地耗盡了結果集迭代器,修復了它,現在IO正常了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM