Junior
Kas yra replikacija duomenų bazėse ir programose?
sobes.tech AI
Atsakymas iš AI
Replikacija yra procesas, kurio metu kuriamos ir palaikomos kelių duomenų bazės ar programos būsenos kopijos skirtinguose serveriuose.
Replikacijos tikslai:
- Didinti prieinamumą (High Availability): Kai vienas serveris sugenda, kitos replikos gali toliau aptarnauti užklausas.
- Pagerinti skalę: Skaitymo užklausos gali būti paskirstytos tarp replikų, sumažinant pagrindinio serverio apkrovą.
- Geografinis paskirstymas (Disaster Recovery): Replikos gali būti išdėstytos skirtinguose duomenų centruose, siekiant apsaugoti nuo vietinių gedimų.
- Sumažinti delsą (Latency): Vartotojai gali skaityti duomenis iš artimiausios replikos.
Replikacijos tipai:
- Sinchroninė: Pakeitimai įrašomi į visas replikas prieš patvirtinant transakciją klientui. Užtikrina stiprią nuoseklumą, bet gali padidinti įrašymo delsą.
- Asinchroninė: Transakcija patvirtinama klientui po to, kai ji įrašoma į pagrindinį serverį. Replikos atnaujinamos vėliau. Siūlo didesnį rašymo našumą, bet gali būti laikinų duomenų nesutapimų.
Replikacijos režimai:
- Master-Replika (arba Master-Slave): Viena replika (master) priima visas rašymo operacijas, kitos (replikos) tik skaito ir gauna pakeitimus iš master.
- Multi-Master: Kelios replikos gali priimti rašymo operacijas. Reikia konfliktų sprendimo mechanizmo.
Programų kontekste, replikacija gali būti susijusi su kelių programos (paslaugų) kopijų kūrimu tomis pačiomis tikslais: didinti prieinamumą ir skalę. Pavyzdžiui, Kubernetes'e galima paleisti kelis podus, kiekvienas iš jų yra tos pačios paslaugos replika.