I have a question regarding Binance’s system architecture based on their technical blog post: How Binance Ledger Powers Your Binance Experience.
From my understanding:
-
Binance uses in-memory transactions to increase TPS, operates on a single-threaded architecture, and utilizes LMAX for high throughput.
-
They use the Raft consensus protocol to synchronize data logs between the leader and followers, and the learner pushes transactions to MySQL. Periodic snapshots are then uploaded to S3.
-
In the event of a leader failure, a follower takes over quickly as it already has the data. If the entire cluster fails, the data is restored from S3.
However, my concern is regarding the periodic snapshots uploaded to S3.
How does Binance prevent data loss if the cluster crashes before snapshots are saved to S3?”
How is this issue mitigated?
nam nguyen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.