Alueiden välinen replikointi MySQL: ssä, menetelmä, jolla kopioidaan datan asynkronisesti ensisijaisesta tietokannasta yhdellä maantieteellisellä alueella yhteen tai useampaan replika-tietokantaan eri alueilla, vaikuttaa suorituskykyyn verkon viiveeseen, replikaatioviiveeseen, työmäärän jakeluun ja resurssien allokointiin liittyvien eri tekijöiden avulla.
Verkkoviive ja replikointiviive
Ensisijainen suorituskykyvaikutus johtuu lisääntyneestä verkon latenssista alueiden välillä. Koska alueen välinen replikointi riippuu binaaristen lokitapahtumien lähettämisestä, joka sisältää datamuutoksia kaukoliikenteen verkkoyhteyksillä, fyysinen etäisyys voi aiheuttaa merkittävän etenemisviiveen. Tämä johtaa lisääntyneeseen replikaatioviiveeseen, jossa kopiot jäävät primaarin jälkeen muutoksiin. Replikointiviive voi vaikuttaa lukemisen johdonmukaisuuteen sovelluksissa, jotka luottavat jäljennöksiin ajan tasalla oleviin tietoihin ja voivat pidentää vikaantumisaikaa katastrofien palauttamisskenaarioissa.
Replikointiviive johtuu useista syistä:
- Ensisijainen palvelin, joka ei lähetä muutoksia riittävän nopeasti.
- Verkko viivästyy muutosten siirtämisessä.
- Replica -palvelimen kyvyttömyys soveltaa muutoksia nopeasti.
Havaittu kokonaisviive johtuu sekä verkon että prosessointiviiveestä. Valvontatyökalut Seuraa mittareita, kuten verkkoviive ja replica viive pullonkaulojen diagnosoimiseksi.
replica -palvelimen vaikutus ja resurssien käyttö
Replica -puolella muutoksia ensisijaiseen liittyy I/O- ja CPU -työt, jotka voivat vaikuttaa replikan kokonaistulokseen, varsinkin jos se käsittelee myös sovelluslukukyselyjä samanaikaisesti. Korkea replikaatiokuorma voi johtaa kiistoihin ja resurssien kylläisyyteen, hidastaen kyselyn vasteaikoja replikalla.
Rinnakkaisten replikointiketjujen käyttäminen replika voi lievittää joitain sovellusviiveitä soveltamalla useita tapahtumia samanaikaisesti parantaen replikaation läpimenoa. Lisäksi vaihtoehtojen, kuten korkean suorituskyvyn huuhtelu, määrittäminen (InnoDB_FLUSH_LOG_AT_TRX_COMMIT` ja `sync_binlog` -parametrit) voivat parantaa kirjoitusta ja replikointia soveltaa tehokkuutta.
vaikutus ensisijaiseen palvelimen suorituskykyyn
Ensisijaisella palvelimella on myös replikaation aiheuttama kuormitusvaikutus. Sen on kirjoitettava kaikki muutokset alavirran kopioiden binaariseen lokiin, mikä on ylimääräinen yleiskustannus normaalin tapahtuman prosessoinnin päällä. Kun monet kopiot on kytketty, etenkin alueiden välinen, kun verkon läpimenoaika ja luotettavuus vaihtelevat, ensisijaisella voi kokea lisääntynyttä resurssien kulutusta, joka ylläpitää replikaatiovirtoja.
Yksi tapa lieventää tätä on replikaatiohierarkia, jossa ensisijainen toistuu yhdeksi välitutkimukseksi, joka sitten puhaltaa ylimääräisiin kopioihin vähentäen primaarin kuormaa.
Työmäärän jakelu ja skaalautuvuus
Alueiden välinen replikointi tukee skaalausta lukumäärää lähempänä käyttäjiä eri globaaleilla alueilla tarjoamalla luetut kopiot lähellä sijaintiaan parantaen loppukäyttäjän viiveitä. Työkuormien kirjoittaminen kuitenkin lähenee ensisijaista esimerkkiä, josta voi tulla pullonkaula.
Suuret ensisijaiset tapahtumat, jotka päivittävät monet rivit voivat aiheuttaa piikkejä replikaatiotiedoissa, mikä johtaa replikaation purskeisiin, soveltaa työtä replikoissa ja aiheuttaen replikaatioviivettä. Suurten tapahtumien hajottaminen pienempiin eriin auttaa vähentämään replikaatiojännitystä.
Schema- ja kyselyn suunnittelun näkökohdat
Taulukot ilman ensisijaisia avaimia tai raskaita DDL -operaatioita voivat heikentää replikaation suorituskykyä tai aiheuttaa yksinoikeudella lukkoja, mikä yhdistää latenssi -ongelmia alueilla. Rivipohjaisen replikaation käyttöä, joka vaatii ensisijaisia avaimia tehokkuuden saavuttamiseksi, suositellaan tyypillisesti.
Kyselyn eristämisasteet replikoissa vaikuttavat myös replikaation sovelluksen nopeuteen, alhaisemmalla eristystasoilla (esim. "Lue sitoutunut") sallii yleensä nopeamman replikaatiotapahtumien soveltamisen kuin korkeammat tasot, jotka pitävät lukkoja pidempään.
Verkko- ja kustannusnäkökohdat
Alueiden välinen replikaatio sisältää tiedonsiirron pilvipalvelujen tarjoajien verkoissa, jotka voivat aiheuttaa kustannuksia ja kaistanleveysrajoituksia. Tämä on otettava huomioon suunnittelussa, ja se voi epäsuorasti rajoittaa replikaationopeutta ja taajuutta.
Yhteenveto suorituskykyvaikutuksista
- Lisääntynyt replikaatioviive fyysisen etäisyyden ja verkon latenssin vuoksi.
- Binaarisen hakkuun ja kopioiden ensisijaisen resurssien kulutus muutosten soveltamiseksi.
- Kyselyn mahdollinen suorituskyvyn heikkeneminen replikoissa, jos replikointi on resurssiintensiivistä.
- Kuorman tasapainotus replikaatiohierarkioiden kautta voi vähentää pullonkauloja.
- Suurten liiketoimien ja kaavion suunnittelujen vaikutus replikaatiotehokkuuteen.
- Kompromissit tiedonsiirtokustannuksilla ja läpimenoaikalla pilviympäristöissä.