SSTables壓實的邊界(大和小)以及何時變得無效?Cassandra集羣中每個節點有多少數據?
如果我有500G SSTables的主要壓縮對,並且我的最終SSTable將超過1TB - 這對一個節點「重寫」這個大數據集有效嗎?
這可能需要大約一天的硬盤驅動器,需要雙倍大小的空間,所以有最佳做法呢?
SSTables壓實的邊界(大和小)以及何時變得無效?Cassandra集羣中每個節點有多少數據?
如果我有500G SSTables的主要壓縮對,並且我的最終SSTable將超過1TB - 這對一個節點「重寫」這個大數據集有效嗎?
這可能需要大約一天的硬盤驅動器,需要雙倍大小的空間,所以有最佳做法呢?
1 TB是一個節點可以有多少數據處理合理的限制,但在現實中,一個節點是不是在所有的數據的大小,只有率操作的限制。
一個節點上可能只有80GB的數據,但是如果你絕對用隨機讀取來讀取它,並且它沒有大量的RAM,它甚至可能無法處理這個數量的請求合理的利率。同樣,一個節點可能有10TB的數據,但是如果你很少從中讀取數據,或者你有一小部分數據是熱的(這樣它可以被有效地緩存),它就可以。
壓實肯定是要知道,當你有大量的一個節點上的數據的問題,但也有幾件事情要記住:
首先,「最大」 compactions,那些地方結果是一個巨大的SSTable,很少發生,甚至更多,因爲節點上的數據量增加。 (在頂級壓縮發生之前必須發生的次要壓縮次數按照您已經執行的頂級壓縮次數指數增長)。
其次,您的節點仍然能夠處理請求,讀取將會變慢。第三,如果您的複製因子高於1,而且您沒有在一致性級別ALL讀取,其他副本將能夠快速響應讀取請求,所以您不應該看到客戶端的延遲差別很大透視。
最後,有plans to improve the compaction strategy,可能會幫助一些更大的數據集。
我會補充說,如果你有數據TB,你可能不會做很多覆蓋,在這種情況下,由於布隆過濾器,多個sstables甚至不會減慢讀取速度。 – jbellis 2011-01-24 14:57:38