āĻāĻŽāĻžāϰ āĻĒāϞāĻŋāĻā§āĻāύāĻŋāĻā§āϰ āĻāĻāĻāĻž āĻŦāĻžāĻā§ āĻāĻāύāĻž āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻŋ, āϤāĻžāϰāĻĒāϰ āĻŽā§āϞ āĻŦāĻŋāώā§ā§ āĻāĻĨāĻž āĻļā§āϰ⧠āĻāϰāĻŋāĨ¤ āĻĒāϞāĻŋāĻā§āĻāύāĻŋāĻā§ āĻāĻĒāĻŦā§āϤā§āϤāĻŋ āĻĻā§ā§ āĻāĻāĻž āϏāĻŦāĻžāĻ āĻšā§āϤ⧠āĻāĻžāύā§āύāĨ¤ āϏā§āĻāĻžāϰ āĻāύā§āϝ āϏā§āĻā§āĻĄā§āύā§āĻāĻĻā§āϰāĻā§ āĻāĻ āĻāĻžāĻĻāĻž āϤāĻĨā§āϝâāĻŽā§āĻāĻžāĻŽā§āĻāĻŋ ā§Ŧ-ā§āĻāĻž āĻĄāĻā§āĻŽā§āύā§āĻ āϏāĻžāĻŦāĻŽāĻŋāĻ āĻāϰāϤ⧠āĻšā§āĨ¤ āĻāĻāύ āĻāĻŽāĻŋ āϏāĻžāĻŦāĻŽāĻŋāĻ āĻāϰā§āĻāĻŋ āϏā§āĻ ā§§āĻŽ āϏā§āĻŽāĻŋāϏā§āĻāĻžāϰā§āĨ¤ āĻāĻāύ āĻšāĻ āĻžā§ āĻāϰ⧠āĻĄāĻŋāĻĒāĻžāϰā§āĻāĻŽā§āύā§āĻ āĻĨā§āĻā§ āύā§āĻāĻŋāĻļ āĻĻāĻŋā§ā§āĻā§ āϝ⧠āĻāĻŦāĻžāϰ āĻāĻ āĻĄāĻā§āĻŽā§āύā§āĻ āϏāĻžāĻŦāĻŽāĻŋāĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻā§āύ āĻāϰāϤ⧠āĻšāĻŦā§? āϏā§āĻā§āĻĄā§āύā§āĻāĻĻā§āϰ āĻāĻ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻĄāĻā§āĻŽā§āύā§āĻāĻā§āϞ⧠āύāĻžāĻāĻŋ āϏāĻŦ missing! āĻāĻāύ āĻāĻĒāύāĻžāϰ āĻŽā§āĻāĻžāĻ āĻā§āĻŽāύ āĻšāĻŦā§? āĻāĻŽāĻŋ āĻ āϏāĻŽā§ āĻāĻŽāĻžāϰ āĻŽā§āĻāĻžāĻāĻāĻž āĻšāĻžāϰāĻŋā§ā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āĻāϰāĻāĻŽ āĻāĻāύāĻž āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύāĻ āĻāĻāĻā§āĨ¤ āĻāĻāύ āĻāϰā§āϤā§āĻĒāĻā§āώ āϝāĻĻāĻŋ āĻāĻ āĻĄāĻžāĻāĻžāĻā§āϞ⧠āĻŦā§āϝāĻžāĻāĻāĻĒ āĻāϰ⧠āϰāĻžāĻāϤ⧠āϤāĻžāĻšāϞ⧠āĻāĻŋāύā§āϤ⧠āĻāĻ āĻāĻžāĻŽā§āϞāĻžāĻā§āϞ⧠āϏā§āĻā§āĻĄā§āύā§āĻāĻĻā§āϰāĻā§ āĻĒā§āĻšāĻžāϤ⧠āĻšāϤ⧠āύāĻžāĨ¤ āĻāĻŋāύā§āϤ⧠āϏāϰāĻāĻžāϰāĻŋ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āϤā§, āĻāĻā§āϞ⧠āĻšāĻā§āĻž āύāĻž āĻšāĻā§āĻž āĻāĻāĻ āĻāĻĨāĻžāĨ¤
āĻāĻāύ āĻŽāύ⧠āĻāϰā§āύ, āĻāĻāĻ āĻāĻāύāĻž āĻāĻĒāύāĻžāϰ āĻāĻāĻāĻž real application-āĻ āĻāĻāϞā§āĨ¤ User-āĻĻā§āϰ data āĻšāĻ āĻžā§ āĻāϰ⧠āĻāĻžā§ā§āĻŦ āĻšā§ā§ āĻā§āϞā§! āĻā§ āϞā§āĻā§āϞā§āϰ chaos āϤā§āϰāĻŋ āĻšāϤ⧠āĻĒāĻžāϰā§! āĻāĻ āĻāύā§āϝ āĻāĻāĻāĻž backup āϰāĻžāĻāĻž āϞāĻžāĻāĻŦā§, database-āĻāϰ āĻāĻāĻāĻž replication āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
Replication āĻāĻŋ?
Backup āĻāϰ replication āĻāĻāĻ āĻāĻŋāύāĻŋāϏ āĻŽāύ⧠āĻšāϞā§āĻ āĻāĻāĻ āĻāĻŋāύāĻŋāϏ āύāĻžāĨ¤ Backup-āĻāϰ data āĻšāϞ⧠āĻāĻāĻāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻŽā§ā§āϰ snapshotāĨ¤ āĻāĻŋāύā§āϤ⧠replication āĻšāϞ⧠main database-āĻāϰ āĻā§āϝāĻžāύā§āϤ copyāĨ¤ Main database update āĻšāϞā§āĻ, āĻāĻ replication database eventually update āĻšā§ā§ āϝāĻžāĻŦā§āĨ¤ āĻāĻŋāύā§āϤ⧠backup-āĻāϰ database āĻĒā§āϰāϤāĻŋāĻĻāĻŋāύ āϏā§āĻŦā§āĻāĻā§āϰāĻŋā§āĻāĻžāĻŦā§ update āĻšāĻŦā§ āύāĻžāĨ¤ āĻāĻĒāύāĻŋ āϝāĻāύ backup āύāĻŋāĻŦā§āύ āϤāĻāύ āĻ āϏāĻŽā§ā§āϰ backup data locked āĻšā§ā§ āĻĨāĻžāĻāĻŦā§āĨ¤ Hopefully replication āĻāĻŋāύāĻŋāϏāĻāĻž āĻā§ āĻŦā§āĻāϤ⧠āĻĒā§āϰā§āĻā§āύāĨ¤
āĻā§āύ Replication āĻāϰāĻž āĻšā§?
Replication āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻžāϰāĻŖā§ āĻšāϤ⧠āĻĒāĻžāϰā§, āϝā§āĻŽāύ:-
High Availability - Primary database fail āĻāϰāϞ⧠Replica database, main database āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻ āĻāϰāĻŦā§āĨ¤ Read Scaling - Application āϝāĻĻāĻŋ read-heavy āĻšā§, āϤāĻāύ read replicas use āĻāϰāĻž āĻšā§ write database-āĻāϰ write traffic āĻāĻŽāĻžāύā§āϰ āĻāύā§āϝāĨ¤ Geographical Distribution - āϝāĻĻāĻŋ user-āĻāϰ density āĻŦāĻŋāĻāĻŋāύā§āύ āĻĻā§āĻļā§ āĻŦā§āĻļāĻŋ āĻšā§, āϤāĻāύ region-specific database use āĻāϰāĻž āĻšā§āĨ¤ āϝā§āĻŽāύ: āĻŦāĻžāĻāϞāĻžāĻĻā§āĻļā§āϰ user-āϰāĻž āĻŦāĻžāĻāϞāĻžāĻĻā§āĻļā§āϰ āĻāĻžāĻā§āϰ database, āĻāĻāϰā§āĻĒā§āϰ user-āϰāĻž āĻāĻāϰā§āĻĒā§āϰ āĻāĻžāĻā§āϰ database-āĻ āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻ āĻāĻŋāύāĻŋāϏāĻāĻž āĻŽā§āϞāϤ latency āĻāĻŽāĻžāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤
Asynchronous Replication vs Synchronous Replication
Replication ⧍ āĻāĻžāĻŦā§ āĻšāϤ⧠āĻĒāĻžāϰā§âinstantly (synchronous) āĻ āĻĨāĻŦāĻž eventually (asynchronous)āĨ¤ āĻāĻāĻž depend āĻāϰāĻā§ āĻāĻĒāύāĻžāϰ requirement-āĻāϰ āĻāĻĒāϰā§, āĻāĻĒāύāĻŋ āĻā§āĻāĻžāĻŦā§ data replicate āĻāϰāĻŦā§āύ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ⧠data consistency āĻā§āĻŽāύ āϞāĻžāĻāĻŦā§āĨ¤
Synchronous Replication-āĻ write āĻšāĻā§āĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§āĻ replication process complete āĻšāĻŦā§āĨ¤ āϏāĻŦāĻā§āϞ⧠node-āĻ same data āĻĨāĻžāĻāĻŦā§āĨ¤ Stale āĻŦāĻž old data āĻĨāĻžāĻāĻžāϰ possibility āύā§āĻ āĻŦāϞāϞā§āĻ āĻāϞā§āĨ¤
Asynchronous Replication-āĻ write āĻšāĻā§āĻžāϰ āĻĒāϰ āĻāĻŋāĻā§āĻāĻž time āύāĻŋāĻŦā§ replicate āĻšāϤā§, āĻāĻžāϰāĻŖ write āĻšāĻā§āĻžāϰ āĻĒāϰ replication process āĻāĻžāϞāĻžāύ⧠āĻšā§āĨ¤ Eventually data consistent āĻšā§ā§ āϝāĻžā§āĨ¤ āĻāĻ āĻā§āĻāύāĻŋāĻā§ stale āĻŦāĻž old data āĻĨāĻžāĻāĻžāϰ probability āϏāĻŦāĻā§ā§ā§ āĻŦā§āĻļāĻŋ, āĻāĻžāϰāĻŖ synchronize āĻšāĻā§āĻžāϰ āĻāĻ āĻĒāϰā§āϝāύā§āϤ stale data serve āĻšāϤ⧠āĻĨāĻžāĻāĻŦā§āĨ¤
Replication Technique
Single-Leader Replication (Master to Follower)
āϏāĻŦāĻā§ā§ā§ common replication strategy āĻšāϞ⧠Single-Leader ReplicationāĨ¤ āĻāĻ āĻā§āĻāύāĻŋāĻā§ āĻāĻāĻāĻž database server-āĻā§ Leader āĻšāĻŋāϏā§āĻŦā§ āϧāϰāĻž āĻšā§, āĻāĻŦāĻ āĻŦāĻžāĻāĻŋ database server-āĻā§āϞ⧠Replica āĻŦāĻž Follower āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻ āĻāϰā§āĨ¤
Read āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§ āϝā§āĻā§āύ⧠Replica āĻĨā§āĻā§āĨ¤ Write āĻļā§āϧ⧠Leader-āĻ āĻāϰāĻž āĻšāĻŦā§ āĻāĻŦāĻ replica-āĻā§āϞ⧠main database-āĻāϰ āϏāĻžāĻĨā§ synchronize āĻšā§ā§ āϝāĻžāĻŦā§āĨ¤
Multi-Leader Replication
āĻāĻ āĻā§āĻāύāĻŋāĻ āĻāĻž āĻŦā§āĻāϤ⧠āĻāĻāĻā§ āĻ āϤā§āϤ⧠āϝāĻžāĻāϝāĻŧāĻž āϞāĻžāĻāĻŦā§āĨ¤ āϧāϰā§āύ, Modern Civilization āĻāϰ āĻāĻā§ āĻŽāĻžāύā§āώ āĻŦāĻŋāĻāĻŋāύā§āύ āĻā§āϰā§āĻĒ āĻ āĻŦāϏāĻŦāĻžāϏ āĻāϰāϤ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏāĻŦ āĻāĻŋāĻā§āĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ āĻāĻāĻāύ āĻŦā§āϝāĻā§āϤāĻŋāĨ¤ āϏāĻāϞā§āĻ āĻāĻ āĻŦā§āϝāĻā§āϤāĻŋāĻā§ follow āĻāϰāϤāĨ¤ āĻāĻāĻžāĻŦā§ āĻĒā§āϰāĻžā§ āϏāĻāϞ āĻā§āϰā§āĻĒ āĻāϰ āĻāĻžāĻ āĻāϞāϤāĨ¤ āĻŽāĻāĻžāϰ āĻŦā§āϝāĻĒāĻžāϰ āĻšāϞ āĻāĻāĻāĻž āĻŦāĻĄāĻŧ āĻāϰāĻŋā§āĻž āϤ⧠āĻ āύā§āĻ āĻā§āϞ⧠āĻā§āϰā§āĻĒ āĻĨāĻžāĻāϤāĨ¤ āĻĒā§āϰāϤā§āϝā§āĻ āĻā§āϰā§āĻĒ āĻāϰ āĻāĻāĻāύ āĻāϰ⧠Leader āĻĨāĻžāĻāϤāĨ¤
āϤāĻžāϰāĻž āϏāĻŦāĻžāĻ āĻāĻāĻāĻž āĻĻā§āĻļā§āϰ āϰāĻžāĻāĻžāϰ āĻ āϧā§āύ⧠āĻĨāĻžāĻāϤāĨ¤ āĻ āĻŋāĻ āĻāĻāĻžāĻŦā§āĻ āĻāĻ āĻā§āĻāύāĻŋāĻ āĻāĻž āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāĻāĻ āϧāϰāύā§āϰ cluster āĻāϰ āĻŽāϧā§āϝ⧠āĻ āύā§āĻ Leader āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŦāĻ āĻāĻ leader āĻĻā§āϰ āĻ āϧā§āύ⧠āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ follower āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻ āϧāϰāύā§āϰ replication technique āĻ āϏāĻŦ āĻĨā§āĻā§ āĻŦāĻĄāĻŧ āĻĒā§āϰāĻŦāϞā§āĻŽ āĻšāĻā§āĻā§ ConsistencyāĨ¤ āϧāϰā§āύ, āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻĻā§āĻāĻāĻŋ āĻāϞāĻžāĻĻāĻž āĻāĻžā§āĻāĻž āĻĨā§āĻā§ āĻāĻāĻ āϏāĻŽāϝāĻŧā§ āĻĻā§āĻāĻāĻŋ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§ āĻāϞāĻžāĻĻāĻž āĻāϞāĻžāĻĻāĻž āϤāĻĨā§āϝ update āĻāϰāϞāĨ¤ āϤāĻāύ data conflict āĻšāĻŦā§ āĻāĻŦāĻ āϤāĻž resolve āĻāϰāĻž āĻāĻāĻŋāϞ āĻšāĻŦā§āĨ¤ āĻāĻ conflict resolution āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŋāĻā§ āĻĒāĻĻā§āϧāϤāĻŋ āĻāĻā§, āϝā§āĻŽāύ - Last Write Wins, manual merge, CRDTāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻžāϰ trade-off āĻāĻā§āĨ¤
Leaderless Replication: Dynamo-style
āĻā§āύ⧠Leader āύā§āĻāĨ¤ āϝā§āĻā§āύ⧠node-āĻ write āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
Amazon-āĻāϰ ⧍ā§Ļā§Ļā§ āϏāĻžāϞā§āϰ āĻŦāĻŋāĻā§āϝāĻžāϤ 'Dynamo Paper' āĻĨā§āĻā§ āĻāĻ āĻāύāϏā§āĻĒā§āĻā§āϰ āĻā§āĻĒāϤā§āϤāĻŋ, āϝāĻž āĻŦāϰā§āϤāĻŽāĻžāύ⧠Apache Cassandra āĻŦāĻž ScyllaDB-āϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšā§ (āĻāϞā§āϞā§āĻā§āϝ, āĻŦāϰā§āϤāĻŽāĻžāύ AWS DynamoDB āϏāĻžāϰā§āĻāĻŋāϏ āĻāĻŋāύā§āϤ⧠internally Paxos āϞāĻŋāĻĄāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§)āĨ¤
āĻāĻ Technique āĻāĻž āĻā§āĻŦ āϏā§āύā§āĻĻāϰ āĻŽāύ⧠āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻāĻžāύ⧠āĻĒā§āϝāĻžāϰāĻž āĻāĻŽāĨ¤ āĻāĻŋāύā§āϤ⧠āϏāϤā§āϝāĻŋ āĻŦāϞāϤ⧠āĻāĻ technique āĻāĻž āϏāĻŦ āĻĨā§āĻā§ āĻŦā§āĻļāĻŋ complex āĻāĻŦāĻ data loss āĻšāĻā§āĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻĨāĻžāĻā§āĨ¤ Consistency āĻŦāĻāĻžā§ āϰāĻžāĻāĻž āĻā§āĻŦ āĻāĻ āĻŋāύ āĻšā§ā§ āĻĒā§ā§āĨ¤
Replication-āĻāϰ āϏāĻŽāϏā§āϝāĻž āĻā§?
āĻāĻŽāĻŋ āĻ āύā§āĻāĻŦāĻžāϰ āĻŦāϞā§āĻāĻŋ āĻāĻāĻāĻž simple āĻāĻŋāύāĻŋāϏāĻā§ āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻā§āĻā§ āĻĢā§āϞā§āύ, āϏā§āĻāĻžāύ⧠complexity āĻŦā§ā§ā§ āϝāĻžāĻŦā§āĨ¤ āĻāĻāĻžāύ⧠āϝāĻāύ āĻāĻĒāύāĻŋ extra replica database introduce āĻāϰāĻŦā§āύ āϤāĻāύ āϏāĻŦāĻā§ā§ā§ āĻŦā§ challenge āĻšāĻā§āĻā§ Data Synchronization & ConsistencyāĨ¤ āĻāĻāĻž maintain āĻāϰāĻž āĻā§āĻŦ āĻāĻ āĻŋāύāĨ¤ āĻāĻāĻā§ āĻāĻĻāĻŋāĻ-āĻāĻĻāĻŋāĻ āĻšāϞ⧠data loss āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻŦāĻž data inconsistency āĻĻā§āĻāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
Replication Lag
Data write āĻšāĻāϝāĻŧāĻžāϰ āĻĒāϰ replica node-āĻā§āϞā§āϤ⧠replicate āĻšāϤ⧠āϝ⧠āϏāĻŽāϝāĻŧāĻāĻž āϞāĻžāĻā§, āϏā§āĻāĻžāĻ āĻšāϞ⧠Replication LagāĨ¤ āϝāĻĻāĻŋ system-āĻ write heavy traffic āĻĨāĻžāĻā§, āϤāĻāύ lag āĻ āύā§āĻ āĻŦā§āĻļāĻŋ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϝāĻžāϰ āĻĢāϞ⧠stale data serve āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻĨāĻžāĻā§āĨ¤
Read-Your-Own-Write Consistency
Replication technique implementation āĻāϰāĻžāϰ āĻĒāϰ āĻāĻāĻāĻž āĻāĻŽāύ āϏāĻŽāϏā§āϝāĻž āĻĻā§āĻāĻž āϝāĻžāϝāĻŧ, āϏā§āĻāĻž āĻšāϞ Read-Your-Own-Write ConsistencyāĨ¤ āϧāϰā§āύ, āĻā§āύ⧠āĻāĻāĻāĻžāϰ āĻĄāĻžāĻāĻž write āĻāϰāϞ, āĻāĻŋāύā§āϤ⧠replicas update āĻšāϞ⧠āύāĻžāĨ¤ āĻāĻāĻāĻžāϰ āϝāĻĻāĻŋ āϤā§āĻā§āώāĻŖāĻžā§ āĻāĻŦāĻžāϰ āĻĄāĻžāĻāĻžāĻāĻž āĻĒāĻĄāĻŧā§, āϤāĻžāĻšāϞ⧠āĻā§āϞ āĻĄāĻžāĻāĻž āĻŦāĻž āĻĒā§āϰāĻžāύ⧠āĻĄāĻžāĻāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻž fix āĻāϰāϤ⧠āĻšāϞ⧠Consistency Level āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āĻšāϝāĻŧ, āϝāĻž āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻāĻŽāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧāĨ¤
Leader Election
Single Leader Replication āĻ, Leader node āĻĄāĻžāĻāύ āĻšāϞ⧠āύāϤā§āύ āĻāϰ⧠Leader āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āϝāĻĻāĻŋ āĻĻā§āϰā§āϤ āύāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠write operation fail āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ Leader Election āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ complex āĻāĻŦāĻ āĻāĻāĻž implement āĻāϰāĻžāĻ āĻŦā§āĻļ trickyāĨ¤
Split-Brain Scenario
Network partition āĻāϰ āĻāĻžāϰāĻŖā§ āĻĻā§āĻāĻŋ node āύāĻŋāĻā§āĻĻā§āϰāĻā§ Leader āĻāĻžāĻŦāϤ⧠āĻļā§āϰ⧠āĻāϰāϞ⧠Split-Brain āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋ āϤā§āϰāĻŋ āĻšā§āĨ¤ āĻāĻā§āώā§āϤā§āϰ⧠āĻĻā§āĻāĻŋ database node āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϞāĻžāĻĻāĻž āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ āĻāĻŦāĻ āϤāĻžāϰāĻž āύāĻŋāĻā§āĻĻā§āϰ āĻĄāĻžāĻāĻžāĻŦā§āϏāĻā§ Main Database āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻŦāϤ⧠āĻļā§āϰ⧠āĻāϰā§āĨ¤ āϝāĻāύ network back up āĻšāϝāĻŧ, āϤāĻāύ merge āĻāϰāϤ⧠āĻāĻŋāϝāĻŧā§ conflict āĻāĻŦāĻ data loss āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻŦāĻāĻŽ āϞāĻžāĻāύ
Replication āĻŽā§āϞāϤ application-āĻāϰ performance improve āĻāϰāϤ⧠āĻāĻŦāĻ system-āĻā§ resilient āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĨ¤ āĻāĻā§āϞ⧠main goal āĻšāϞā§āĻ āĻāĻāĻžāύ⧠āĻ āύā§āĻ complexity add āĻšā§āĨ¤ āϤāĻžāĻ āĻā§āĻŦā§āĻāĻŋāύā§āϤ⧠requirement āĻ āύā§āϝāĻžā§ā§ āĻŦā§āĻā§ āύāĻŋāύāĨ¤
āĻāĻĒāύāĻžāϰ system-āĻ āĻā§āύ replication strategy āĻāĻā§? āĻāĻŽā§āύā§āĻā§ āĻļā§āϝāĻŧāĻžāϰ āĻāϰā§āύ! đ