在本文Reading and Writing from SSTable Perspective(是的,相当古老的文章)中,作者说使用内存映射文件预热了indexdb和sstable文件。
每个SSTable的行键存储在名为index.db的单独文件中, 在开始Cassandra“浏览那些文件”,以便热身。 Cassandra使用内存映射文件,因此有希望,何时 在启动期间读取文件,然后首先访问这些文件 从记忆中获得。
我在CommitLogSegment中看到了MappedByteBuffer的用法,但对于SSTable Loader / Reader却没有。另外只是将MappedByteBuffer映射到文件通道并不会将文件加载到内存中,我认为需要显式调用load。
所以我的问题是:当Cassandra启动时,它是如何热身的?我在这篇文章的陈述中遗漏了什么吗?
答案 0 :(得分:1)
'浏览索引文件'最可能是指索引采样。在某些时候,Cassandra正在启动时读取文件以进行采样。
由于该过程的Cassandra 1.2结果现在保留在Partition summary文件中。