2016-12-09 73 views
0

在這篇文章Reading and Writing from SSTable Perspective(是啊,很老的文章)作者說,indexdb和sstable文件使用內存映射文件預熱。Cassandra SSTable和內存映射文件

每個的SSTable行密鑰存儲在單獨的文件名爲index.db, 期間開始卡桑德拉「越過這些文件」,爲了熱身。 Cassandra使用內存映射文件,所以有希望,當在啓動期間讀取文件時,那麼首先訪問這些文件將從內存中服務 。

我在CommitLogSegment中看到了MappedByteBuffer的用法,但看不到SSTable Loader/Reader。也只是將MappedByteBuffer映射到文件通道不會將文件加載到內存中,我認爲需要明確調用加載。

所以我的問題是:當Cassandra啓動時,它是如何變暖的?我在這篇文章的聲明中錯過了什麼?

回答

1

'越過索引文件'最有可能是指索引取樣。在某個時候,Cassandra正在讀取啓動時的文件以進行採樣。

由於該過程的Cassandra 1.2結果現在正在保存在Partition summary文件中。