Package org.apache.cassandra.hints
Hints subsystem consists of several components.
Hint encodes all the required metadata and the mutation being hinted.
HintsBuffer provides a temporary buffer for writing the hints to in a concurrent manner,
before we flush them to disk.
HintsBufferPool is responsible for submitting HintsBuffer
instances for flushing when they exceed their capacity, and for maitaining a reserve HintsBuffer
instance, and creating extra ones if flushing cannot keep up with arrival rate.
HintsWriteExecutor is a single-threaded executor that performs all the writing to disk.
HintsDispatchExecutor is a multi-threaded executor responsible for dispatch of
the hints to their destinations.
HintsStore tracks the state of all hints files (written and being written to)
for a given host id destination.
HintsCatalog maintains the mapping of host ids to HintsStore
instances, and provides some aggregate APIs.
HintsService wraps the catalog, the pool, and the two executors, acting as a front-end
for hints.-
Interface Summary Interface Description HintsServiceMBean InputPosition Marker interface for file positions as provided by the various ChecksummedDataReader implementations.SerializableHintMessage -
Class Summary Class Description ChecksummedDataInput ARandomAccessReaderwrapper that calculates the CRC in place.CompressedChecksummedDataInput CompressedHintsWriter EncryptedChecksummedDataInput EncryptedHintsWriter Hint Encapsulates the hinted mutation, its creation time, and the gc grace seconds param for each table involved.HintMessage The message we use to dispatch and forward hints.HintMessage.Serializer HintsService A singleton-ish wrapper over various hints components: - a catalog of all hints stores - a single-threaded write executor - a multi-threaded dispatch executor - the buffer pool for writing hints into - an optional scheduled task to clean up the applicable hints files The front-end for everything hints related.HintVerbHandler Verb handler used both for hint dispatch and streaming.PendingHintsInfo