The durability level controls how solidDB handles transaction logging. The solidDB server supports three durability levels: strict, relaxed, and adaptive. Relaxed durability yields best performance while strict durability minimizes loss of transactions. The adaptive durability level is available only in HotStandby (HSB) configurations.
▪ Strict durability: If a transaction is written to the transaction log as soon as the transaction is committed, this is called "strict durability". This type of durability maximizes safety.
▪ Relaxed durability: If the server is permitted to defer the transaction write until the server is less busy, or until it can write multiple transactions together, this is called "relaxed durability" (or "relaxed logging"). If you use relaxed durability in a server that is not part of an HSB pair, you risk losing the most recent transactions if the server terminates abnormally. However, if the server is part of an HSB pair, a copy of the transaction is sent to the secondary server so, even if the primary server fails before it has logged the transaction, the transaction is not lost. Thus, when relaxed durability is used with HSB, there is little reduction in safety.
Relaxed durability can also improve the performance of the system, especially in situations where the server load consists of many small write transactions.
▪ Adaptive durability: Adaptive durability applies only to HSB primary servers. Adaptive durability means that, if the server is in PRIMARY ACTIVE state, relaxed durability is used. In any other state, strict durability is used. This gives you high performance (with little loss of safety) when HSB is active, yet maintains high safety if only one server is operating.
Adaptive durability can increase overall system throughput and reduce latency, that is, the time the user waits before being told that the transaction has committed.
The durability level can be set as a server default by using the Logging.DurabilityLevelparameter, see Logging section
The durability level can also be set per session or transaction with the SET DURABILITY and SET TRANSACTION DURABILITY statements, see SET DURABILITY and SET TRANSACTION DURABILITY.