Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā MongoDB rīkojas ar datu migrāciju starp šķembām


Kā MongoDB rīkojas ar datu migrāciju starp šķembām


MongoDB apstrādā datu migrāciju starp šķembām, galvenokārt caur procesu, ko sauc par Chunk migrāciju, kas ir neatņemama shard arhitektūras sastāvdaļa, kas paredzēta, lai vienmērīgi sadalītu datus vairākās klasterī. Sharding in MongoDB ir metode, ko izmanto, lai horizontāli mērogotu datu bāzi, sadalot datus vairākos serveros vai šķembās. Šī sistēma izmanto shard taustiņu, kas ir lauks vai lauku kopums dokumentā, kas nosaka datu sadalījumu. Lai pārvaldītu datu migrāciju starp šķembām, MongoDB izmanto fona procesu, ko sauc par līdzsvarotāju, kas pēc nepieciešamības optimizē datu sadalījumu, migrējot datu diapazonus (vai gabalus).

Sharded kopas un rieciena migrācijas pārskats

MongoDB sadala šarniskās kolekcijas gabalos, kas ir blakus esošie shard taustiņu vērtību diapazoni. Katrs rieciens pieder pie konkrēta shard, un šie gabali kolektīvi satur visu datu kopu. Balancer uzrauga gabalu sadalījumu dažādās šķembās un migrē gabaliņus starp šķembām, lai saglabātu līdzsvaru. Šis migrācijas mehānisms palīdz izvairīties no karstajiem punktiem, uzlabot vaicājuma veiktspēju un optimizēt resursu izmantošanu.

Rieciena migrācija ir labvēlīga scenārijos, piemēram, kad klasterim tiek pievienotas jaunas šķembas, kad dati pieaug nevienmērīgi, izraisot nelīdzsvarotību vai kad zonas ir jāpārdefinē datu atrašanās vietai vai normatīvajām prasībām. Migrācija darbojas rieciena līmenī, pārvietojot visu Shard atslēgu vērtību diapazonu no viena shard uz otru.

Migrācijas procesa informācija

MongoDB rieciena migrācija darbojas vairākās fāzēs:

1. Rieciena atlase kustībai: Balancer vai administrators izvēlas riecienu, kas ir nepieciešams pārcelties uz citu shard, lai līdzsvarotu kopu.

2. Klona fāze: Donors Shard (tas, kurš šobrīd tur gabalu), kopē visus dokumentus gabalā līdz saņēmējam. Šajā laikā tiek izsekoti arī jaunie raksti uz donora shard.

3. Patēruma fāze: Saņēmējs ir piemērots visiem rakstiem, kas notika klona fāzē, lai pārliecinātos, ka tai ir visjaunākie dati.

4. Kritiskā sadaļa un apņemšanās: Donors Shard nonāk kritiskā sadaļā, kur tiek īsi bloķētas rakstīšanas operācijas uz riecienu, un rieciena īpašumtiesības ir atomiski pārietas uz saņēmēju.

5. Dzēst fāze: Donors Shard asinhroni noņem dokumentus, kas pieder migrētajam riecienam, kad tas apstiprina, ka saņēmējs ir veiksmīgi izdarījis riecienu.

Balancer nodrošina, ka vienlaikus notiek tikai viena migrācija uz vienu shard, lai samazinātu ietekmi uz Shard veiktspēju. Tas var veikt vairākas migrācijas paralēli dažādos Shard pāros, ja tie ir neatkarīgi.

automātiskais balansētājs

Balancer darbojas kā fona pavediens konfigurācijas servera primārajā mezglā un pastāvīgi uzrauga shard datu bilanci. Tas izseko datu lielumu uz vienu riecienu, lai noteiktu, vai migrācija ir nepieciešama atbilstoši konfigurējamam līdzsvara slieksnim. Ja atšķirības datu lielumā starp šķembām pārsniedz šo slieksni, līdzsvarotājs sāk migrāciju.

Balancer darbojas galvenokārt caurspīdīgā veidā pret lietojumprogrammām, bet to var īslaicīgi atspējot apkopes vai noregulēšanas vajadzībām. Tas arī respektē klasterī konfigurētās zonas, nodrošinot, ka gabali tiek migrēti atbilstošās zonas robežās.

Manuāla migrācijas komandas

Kamēr līdzsvarotājs automatizē rieciena migrāciju, MongoDB ļauj arī manuālu kontroli, izmantojot tādas komandas kā `MoveChunk` un` Moverange`. Šīs komandas piespiež migrēt noteiktus gabaliņus vai riecienus, sākot no vienas shard uz otru.

- `Movechunk` tiek izmantots, lai migrētu riecienu, kas satur noteiktu shard atslēgas vērtību uz noteiktu shard. Tas ir noderīgi mērķtiecīgai migrācijai slodzes līdzsvarošanai vai datu vietai.

- `Moverange` ļauj migrēt blakus esošo shard taustiņu diapazonu, kas ir noderīgs sarežģītākām datu līdzsvarošanas stratēģijām.

Administratori var izmantot šīs komandas, lai iepriekš sadalītu gabalus, lai vienmērīgi sadalītu datus pirms lielapjoma norīšanas vai atrisinātu migrācijas kļūmes, ko izraisa logu ierobežojumu līdzsvarošana.

apstrādājamā bāreņu dokumenti un konsekvence

Rieciena migrācijas laikā un pēc tās bāreņu dokumenti (dokumenti, kas vairs nepieder donora Shard piešķirtajiem riecienu diapazoniem), uz laiku var pastāvēt uz donora shard, līdz tie tiek sakopti.

MongoDB nodrošina konsekvenci visā migrācijas laikā, secīgi izmantojot operācijas un izmantojot koordinācijas mehānismu, kas bloķē rakstus kritiskās sadaļas laikā. Pēc migrācijas bāreņu tīrīšana notiek asinhroni, vienlaikus izvairoties no traucējumiem notiekošajos vaicājumos.

Sākot MongoDB 5.3, maiņas straumes migrācijas laikā neveido notikumus bāreņu dokumentu atjauninājumiem, lai saglabātu notikumu straumes precizitāti.

Ietekme uz veiktspēju un operācijām

Chunk migrācijas pārvadā pieskaitāmās izmaksas, ieskaitot tīkla joslas platuma patēriņu, CPU un diska I/O, kas var ietekmēt klastera veiktspēju. MongoDB samazina šo ietekmi:

- Ierobežojot Shard dalību vienai migrācijai vienlaikus.

- Migrācijas rindā un ļauj dzēst fāzes, kas pārklājas ar ātrāku izkraušanu.

- Drosmošanas iespēju izmantošana, lai noregulētu migrācijas vienlaicīgumu un rakstītu bažas migrācijas laikā.

Migrējošie dati uz laiku ietekmē arī sekundāros nolasījumus, kas var nokavēt dokumentus bāreņu tīrīšanas fāzē, tāpēc, izstrādājot vaicājumus, lietojumprogrammām tas jāņem vērā.

migrācija īpašos scenārijos

Tādos gadījumos kā migrēt datus starp zonām ar tagu diapazoniem vai no neskartajiem līdz sharded iestatījumiem, MongoDB datus migrē pakāpeniski, pamatojoties uz atjauninātiem shard taustiņu diapazoniem vai zonām pēc pārkonfigurācijas. Piemēram, veco tagu diapazonu noņemšana un jaunu izveidošana izraisa balansēšanas migrāciju, lai attiecīgi pārvietotu datus.

Migrējot MongoDB klasterus uz mākoņa pārvaldītiem risinājumiem vai starp shardētām kopām, migrācijas rīki bieži veic shard gudru migrāciju, kopējot shard datus individuāli, vienlaikus saglabājot Shard atslēgas sadalījumu.

rīki un komunālie pakalpojumi migrācijai

Datu pārraides pakalpojumi (DTS) un citi trešo personu rīki palīdz migrēt datus starp MongoDB gadījumiem vai kopām, apstrādāt shard kartēšanu, datu konsekvenci un pieaugošos atjauninājumus. Šie rīki bieži atbalsta migrēšanu no nesmarķētām uz sharded kopām, piešķirot noklusējuma shard taustiņu vērtības, lai iegūtu datus, kuriem trūkst shard taustiņu.

Galveno punktu kopsavilkums

- MongoDB nodalījumu dati par gabaliņiem, kas sadalīti pāri šķembām, izmantojot shard taustiņus.

- Balancer automātiski migrē gabalus, lai saglabātu līdzsvarotu datu sadalījumu.

- Migrācija ietver datu klonēšanu, pieķeršanās rakstus, atomu nodošanu un asinhrono tīrīšanu.

- Migrācija ir ierobežota līdz vienam uz vienu novietni, lai samazinātu sistēmas ietekmi.

- Manuāla migrācijas komandas nodrošina administratīvo kontroli rieciena izplatīšanai.

- bāreņu dokumenti tiek iztīrīti asinhroni pēc migrācijas.

- Migrācija īslaicīgi ietekmē veiktspēju un sekundāro lasīšanas konsekvenci.

- Migrācija starp zonām vai shard taustiņu diapazonu izmaiņām tiek veikta ar pārkonfigurācijas izraisītas migrācijas.

- Migrācijas rīki palīdz datu kustībai starp kopām vai arhitektūrām.

Šis migrācijas mehānisms nodrošina, ka MongoDB kopas paliek līdzsvarotas, mērogojamas un izpildāmas, pieaugot datiem un attīstoties klasteru konfigurācijām, nodrošinot pastāvīgu pieejamību ar minimālu traucējumu lietojumprogrammām.