隨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
?
隨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
?
行緩存可以幫助從相對較小的列系列進行多次讀取。儘管數據可能會存儲在操作系統文件系統緩存中,但是從行緩存對象構建響應的CPU比緩存的SSTable要少。在我做的一些測試中,它從行緩存讀取速度提高了30%,儘管這取決於您的數據模型。
行高速緩存的另一個用例是,您希望優先將高速緩存列族固定在高速緩存中,而不是依賴操作系統高速緩存策略。
但是,對於無法訪問的CF,行緩存可能會降低性能。這可能是爲什麼它默認關閉。因此,只有在獲得合理的命中率時才應使用行緩存。您可以從nodetool信息輸出中檢查此信息。
「這是快30%」不是一個很大的進步的東西,可以是非常渴望記憶。 – Raedwald 2013-03-04 11:04:23
行緩存現在更有用,因爲您不必將整個分區存儲在內存中。這是通過表定義中每個分區的行數設置完成的。它適用於最近選擇x並使用羣集順序的查詢。
http://www.datastax.com/dev/blog/row-caching-in-cassandra-2-1
行緩存可以使用大量的內存:http://stackoverflow.com/q/7979696/545127 – Raedwald 2013-03-01 15:55:32