Cassandra SSTable和内存映射文件

时间:2016-12-09 15:01:26

标签: cassandra memory-mapped-files mappedbytebuffer

在本文Reading and Writing from SSTable Perspective(是的,相当古老的文章)中,作者说使用内存映射文件预热了indexdb和sstable文件。

  

每个SSTable的行键存储在名为index.db的单独文件中,   在开始Cassandra“浏览那些文件”,以便热身。   Cassandra使用内存映射文件,因此有希望,何时   在启动期间读取文件,然后首先访问这些文件   从记忆中获得。

我在CommitLogSegment中看到了MappedByteBuffer的用法,但对于SSTable Loader / Reader却没有。另外只是将MappedByteBuffer映射到文件通道并不会将文件加载到内存中,我认为需要显式调用load。

所以我的问题是:当Cassandra启动时,它是如何热身的?我在这篇文章的陈述中遗漏了什么吗?

1 个答案:

答案 0 :(得分:1)

'浏览索引文件'最可能是指索引采样。在某些时候,Cassandra正在启动时读取文件以进行采样。

由于该过程的Cassandra 1.2结果现在保留在Partition summary文件中。