Class JournalImpl

java.lang.Object
org.apache.activeio.journal.active.JournalImpl
All Implemented Interfaces:
Journal

public final class JournalImpl extends Object implements Journal
A high speed Journal implementation. Inspired by the ideas of the Howl project but tailored to the needs of ActiveMQ.

This Journal provides the following features:

  • Concurrent writes are batched into a single write/force done by a background thread.
  • Uses preallocated logs to avoid disk fragmentation and performance degregation.
  • The number and size of the preallocated logs are configurable.
  • Uses direct ByteBuffers to write data to log files.
  • Allows logs to grow in case of an overflow condition so that overflow exceptions are not not thrown. Grown logs that are inactivate (due to a new mark) are resized to their original size.
  • No limit on the size of the record written to the journal
  • Should be possible to extend so that multiple physical disk are used concurrently to increase throughput and decrease latency.

Version:
$Revision: 1.1 $