2013-03-01 87 views
3

隨Cassandra 1.2.2提供的示例配置文件的row_cache_size_in_mb爲0,它完全關閉行緩存。鑑於那行緩存has been touted as giving read performance gains,我很驚訝地預留了沒有任何行緩存,甚至幾十MB。卡桑德拉行緩存不值得

對於大多數場景,實際上行緩存是不是不再是值得嗎?或者對於大多數場景來說它是不值得的?它只是worthwhile as a replacement for memcached

+0

行緩存可以使用大量的內存:http://stackoverflow.com/q/7979696/545127 – Raedwald 2013-03-01 15:55:32

回答

3

行緩存可以幫助從相對較小的列系列進行多次讀取。儘管數據可能會存儲在操作系統文件系統緩存中,但是從行緩存對象構建響應的CPU比緩存的SSTable要少。在我做的一些測試中,它從行緩存讀取速度提高了30%,儘管這取決於您的數據模型。

行高速緩存的另一個用例是,您希望優先將高速緩存列族固定在高速緩存中,而不是依賴操作系統高速緩存策略。

但是,對於無法訪問的CF,行緩存可能會降低性能。這可能是爲什麼它默認關閉。因此,只有在獲得合理的命中率時才應使用行緩存。您可以從nodetool信息輸出中檢查此信息。

+1

「這是快30%」不是一個很大的進步的東西,可以是非常渴望記憶。 – Raedwald 2013-03-04 11:04:23