2016-02-27 24 views
0

如果我有一個查詢:Cassandra選擇* randomize start node嗎?

select * from table_name where lucene = ... limit 10 
(with partition key paging here); 

是否卡桑德拉總是開始從同一起始節點返回結果?

我很好奇,因爲如果我有一個服務從表中查找所有記錄,我擔心如果我有數百萬的消費者,他們都會通過攻擊同一個節點開始。

回答

2

Cassandra是否總是從相同的開始節點開始返回結果?

我認爲Cassandra以它們的令牌範圍的順序查詢節點開始,因此是的,它將開始查詢同一個節點並移動到跟隨令牌範圍的其他節點。

,如果我有一個服務,從表表頁所有記錄,我會擔心被攻擊同一個節點,如果我有百萬計的消費者的,他們都開始了。

  1. 查詢整個表,即使使用分頁,是做一個全簇掃描。除了分析使用情況,也絕對沒有理由這樣做有數以百萬計的消費者做了充分的集羣掃描最壞的設計不斷

+0

對不起,我應該有這樣的事情

  • 添加它是一個分頁選擇*與自定義二級索引。 select * from table_name其中lucene = ... 這不應該是一個完整的集羣掃描,對吧? – user1019182

  • +0

    此外,我不認爲如果你限制令牌範圍(分頁),它將是一個完整的集羣掃描select * from table_name。 – user1019182

    +0

    **只是**使用lucene二級索引(我猜你在談論Stratio索引)可能會掃描羣集中的所有節點,除非您設置了LIMIT子句或者您提供了一個分區鍵或者您使用WHERE標記( pk)> = xxx AND令牌(pk)<= yyy' – doanduyhai