Ledger Storage

Each CM transport records information in a ledger, which occupies storage space—whether within the program process, in a ledger file, or both.

A CM transport that represents a persistent correspondent must keep a copy of the ledger in a file. The file-based ledger preserves certified delivery information beyond transport invalidation, or process termination and restart.

A file-based ledger has two associated costs:

The ledger file consumes disk space.
The program pauses to update the ledger file (synchronously or asynchronously).

Transient correspondents need not pay these costs, because they do not use ledger files. However, keeping the ledger in process-based storage consumes process memory.

Rendezvous software neither clears nor deletes ledger files.

See Also

Persistent Correspondents.

Ledger Size

The size of the ledger depends on several factors—the most important of which is the retention rate of stored data. That is, the ledger grows fastest in response to the cumulative length of incompletely delivered messages.

Program developers can estimate the expected size of the ledger, and must ensure that the process can allocate sufficient memory to contain it. For a file-based ledger, ensure that sufficient disk space is available as well.

Ledger Storage Allocation

Ledger files use a general storage allocation scheme:

Each ledger acquires a pool of storage, and manages that pool. The ledger reuses existing storage whenever possible. Ledger files grow as needed.
Ledger files grow by adding storage in integer multiples of a minimum allocation size.
Because storage allocation involves expensive operating system calls, ledger files pre-allocate large blocks of storage to reduce the number and frequency of such calls.
Rendezvous software automatically reclaims ledger file storage on operating systems that support this feature.

Number of Unique Subjects

With certified delivery and distributed queue features, the cost of storage and accounting varies according to the number of subject names. We strongly discourage embedding one-time tokens (such as timestamps) within such subject names, because they can result in unbounded growth of storage and accounting costs. Instead, embed such one-time values within message fields.

Ledger File Location

The ledger file must reside on the same host computer as the program that uses it. Do not use network-mounted storage for ledger files.

Remember that certified message delivery protects against component or network failure. Placing ledger files across a network (for example, on a separate file server) introduces a new dependency on the network, leaving components vulnerable to network failures.