Gcache and IST
The Gcache is a memory-based cache of recent Galera transactions that is local to each node in a cluster. If a node leaves and rejoins the cluster, it can use the gcache from another node that stayed in the cluster (i.e., its donor node) to fetch the transactions it missed (IST) as opposed to doing a full state snapshot transfer (SST). However, there are a few nuances that are not obvious to the beginner:
- The Gcache is lost when a node restarts
- The Gcache is fixed size and implemented as a LRU. Once it is full, older transactions roll off.
- Donor selection is made irregardless of the gcache state
- If the given donor for a restarting node doesn’t have all transactions needed, a full SST (read: full backup) is done instead
- Until recent developments, there was no way to tell what, precisely, was in the Gcache.
So, with (somewhat) …[Read more]