Persistence with FTL Stores
FTL stores can be configured to persist data to disk synchronously, asynchronously, or only in-memory. Each configuration offers its own advantages in terms of performance and reliability.
Synchronous
If an FTL store is configured with mode=sync
, all data sent to the store is synchronously written to disk via FTL.
Synchronous mode for FTL stores provides high reliability with guaranteed message persistence on disk. Message processing performance may be lower than other persistence modes due to the additional latency introduced by synchronous disk writes.
Asynchronous Replication
If an FTL store is configured with mode=async
, all data sent to the store is persisted to disk asynchronously. Messages sent to a destination that is mapped to an asynchronous mode FTL store are synchronously replicated to at least a majority of EMS servers within the cluster to guarantee data persistence and redundancy in memory, then asynchronously written to disk via FTL.
Asynchronous mode for FTL stores can offer higher performance at the cost of guaranteed message persistence on disk. This persistence mode can be especially advantageous in deployments with slower disks.
If the mode
parameter is not configured for a user-defined FTL store, it is set to asynchronous persistence mode by default.
In-Memory Replication
The in_memory_replication
EMS server parameter can be used to configure the deployment to persist message data and state information only in memory and avoid all disk writes. This parameter applies to all FTL stores in the deployment and overrides the mode
parameter of all stores.
In-memory persistence mode offers higher FTL store performance at the cost of disk persistence. This persistence model is only suggested for deployments with higher tolerance for message loss. Users are encouraged to measure whether the desired performance is achievable using synchronous or asynchronous persistence modes before considering in-memory persistence.
The procedure for shutting down the FTL server cluster differs when this parameter is enabled. See Shutting Down and Restarting an In-Memory Cluster for details.