卡桑德拉是否限制请求的结果数读取时整排?(Does Cassandra read the whole

2019-10-29 21:29发布

我使用卡桑德拉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

将卡桑德拉获取所有1000行,或者只有一小部分?

阅读文章像http://www.ebaytechblog.com/2012/08/14/cassandra-data-modeling-best-practices-part-2/#.UzrvLKZx2PI ,现在看来,这将只获取的一小部分。 但是运行一些压力测试的数据越多我在表中,更多的MB /秒的磁盘IO,我得到。

对于数据我正在3MB /秒IO(读取)用于数据我正在15MB的12GB的8GB /秒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

Answer 1:

如您订购并限制在飞行中你获得更多的I / O。 如果你是肯定的顺序要获取数据,在创作本身的时间对列族使用clusterordering

通过创建具有群集顺序表的表名(.......)(IDX降序)

通过这种方式,所有的刀片通过IDX默认情况下降序排列。 因此,当你在它应用的限制,你必须减少磁盘I / O



Answer 2:

一旦你这样做聚类顺序,您的订购时间是现在保存。 如果你正面临着大量数据的问题,这将是由于所使用的压缩策略。 我觉得您使用的是读重列族大小分层压实战略。 试着用铲平夯实战略同样的情景。

当您使用大小分层压实,你是分散在多个马厩你的数据,你一定会得到的数据进行的所有各一次。 所以,读重列家人对此并不好兆头。



Answer 3:

我发现我其实是意外耗尽结果集迭代器,固定的,现在IO是正常的。



文章来源: Does Cassandra read the whole row when limiting the number of requested results?