In diesem Artikel Reading and Writing from SSTable Perspective (yeah, ziemlich alten Artikel) Autor sagt, dass indexdb und sstable Dateien mit Memory-Mapped-Dateien aufgewärmt sind.Cassandra SSTable und Memory-Mapped-Dateien
Row Schlüssel für jede SSTable werden in separaten Datei namens index.db gespeichert, beim Start Cassandra „geht über diese Dateien“, um bis zu wärmen. Cassandra verwendet Speicher-Mapped-Dateien, so gibt es Hoffnung, dass, wenn Dateien während des Starts lesen, dann der erste Zugriff auf diese Dateien aus dem Speicher geliefert wird.
Ich sehe die Verwendung von MappedByteBuffer in CommitLogSegment, aber nicht für SSTable Loader/Reader. Wenn MappedByteBuffer nur auf den Dateikanal abgebildet wird, wird die Datei nicht in den Speicher geladen. Ich denke, dass die Last explizit aufgerufen werden muss.
Also meine Frage ist: wenn Cassandra startet, wie wird es warm? Und fehlt mir etwas in der Aussage dieses Artikels?