Chronicle (in a generic sense) is a Java project focused on
building a persisted low latency messaging framework for high performance
and critical applications.
Using non-heap storage options Chronicle provides a processing
environment where applications does not suffer from GarbageCollection.
GarbageCollection (GC) may slow down your critical operations non-deterministically
at any time.. In order to avoid non-determinism and escape from GC delays
off-heap memory solutions are addressed. The main idea is to manage your
memory manually so does not suffer from GC. Chronicle behaves like a
management interface over off-heap memory so you can build your own solutions over it.
Chronicle uses RandomAccessFiles while managing memory and this choice
brings lots of possibility. Random access files permit non-sequential,
or random, access to a file's contents. To access a file randomly, you
open the file, seek a particular location, and read from or write to
that file. RandomAccessFiles can be seen as "large" C-type byte arrays
that you can access any random index "directly" using pointers. File
portions can be used as ByteBuffers if the portion is mapped into memory.
net.openhft.chronicle.Chronicle (now in the specific sense) is the
main interface for management and can be seen as the "Collection class" of the
Chronicle environment. You will reserve a portion of memory and then
put/fetch/update records using the
net.openhft.chronicle.Chronicle interface.
net.openhft.chronicle.Excerpt is the main data container in a
net.openhft.chronicle.Chronicle, each Chronicle is composed of Excerpts.
Putting data to a chronicle means starting a new Excerpt, writing data into it and finishing
the Excerpt at the end.
While
net.openhft.chronicle.Excerpt is a generic purpose container allowing
for remote access, it also has more specialized counterparts for sequential operations.
See
net.openhft.chronicle.ExcerptTailer and
net.openhft.chronicle.ExcerptAppender