Sobes.tech
Junior

Čo je replikácia v kontexte databáz a aplikácií?

sobes.tech AI

Odpoveď od AI

Replikácia je proces vytvárania a udržiavania viacerých kópií údajov databázy alebo stavu aplikácie na rôznych serveroch.

Ciele replikácie:

  • Zvýšenie dostupnosti (High Availability): Keď jeden server zlyhá, iné repliky môžu pokračovať v obsluhe požiadaviek.
  • Zlepšenie škálovateľnosti: Požiadavky na čítanie môžu byť rozdelené medzi repliky, čím sa znižuje záťaž na hlavný server.
  • Geografické rozloženie (Obnova po katastrofe): Repliky môžu byť umiestnené v rôznych dátových centrách na ochranu pred lokálnymi zlyhaniami.
  • Zníženie latencie: Používatelia môžu čítať údaje z najbližšej repliky.

Typy replikácie:

  • Synchronná: Zmeny sa zapisujú do všetkých replík predtým, než je transakcia potvrdená klientovi. Zabezpečuje silnú konzistenciu, ale môže zvýšiť latenciu zápisu.
  • Asynchrónna: Transakcia je potvrdená klientovi po zápise na hlavný server. Repliky sú aktualizované neskôr. Ponúka vyšší výkon zápisu, ale môže dôjsť k dočasnej nesúdržnosti údajov.

Replikačné režimy:

  • Master-Replika (alebo Master-Slave): Jedna replika (master) prijíma všetky zápisové operácie, ostatné (repliky) iba čítajú, prijímajúc zmeny od mastera.
  • Multi-Master: Viaceré repliky môžu prijímať zápisové operácie. Vyžaduje mechanizmus riešenia konfliktov.

V kontexte aplikácií môže replikácia odkazovať na vytváranie viacerých inštancií aplikácie (služieb) s rovnakými cieľmi: zvýšenie dostupnosti a škálovateľnosti. Napríklad spustenie viacerých pods v Kubernetes, z ktorých každý je replikou tej istej služby.