2016-12-09 3 views
0

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?

Antwort

1

'geht über Index-Dateien' höchstwahrscheinlich bezieht sich auf Index-Stichproben. Irgendwann las Cassandra die Dateien beim Start für die Sampling-Zwecke.

Seit Cassandra 1.2 Ergebnisse dieses Prozesses werden nun in Partition summary Datei gespeichert.

Verwandte Themen