If the server saves only once every few minutes to reduce load, progress is lost when the server dies in between.
Why Character state is saved once every few minutes → Effect A server crash or outage hits in between → On screen After reconnecting, the character is back to where it was minutes ago (rollback)
Primary owner Game team (Server development) · Also Infra team (DB infrastructure)
Game team action items
Save important events (trades, rare drops) immediately, keep a change log.
Infra team action items
Confirm the DB has enough IOPS and CPU headroom for the extra writes a shorter save interval brings.
On the graph
Mass disconnect · Connection count, rollback reports
Where to look
Line up crash and outage times with the last save time of the characters that reported rollbacks (the game server’s save log or the DB’s last-modified column)
Confirmed if
The point the character reverted to matches the last save before the crash, and the lost time is shorter than the save interval
Ruled out if
Reverted even though the game server log says the save completed: data loss from a DB failover (db-failover) or a stale value read from a replica (db-replica-lag)
Check with
Game server or client logs and metrics
Sources
Asynchronous Commit (PostgreSQL Documentation)PostgreSQL Batching writes and flushing them late raises throughput, but the most recent transactions can be lost in a failure (the same tradeoff)
Redis persistenceRedis Taking RDB snapshots every few minutes means accepting the loss of the last few minutes of data on an abnormal shutdown