MongoDB haldab andmete migratsiooni killude vahel tasakaalustusprotsessi kaudu. Tasakaalustaja vastutab selle eest, et andmed jaguneksid killustatud klastri killustiku vahel ühtlaselt. Siin on sammud, mis on seotud andmete siirdamisega killude vahel.
1. Tasakaalustamine
- Automaatne tasakaalustamine: MongoDB tasakaalustab andmeid automaatselt, migreerides tükke ühelt killult teisele. See tagab andmete ühtlase jaotuse kildude vahel.
2. Tühjade migratsioon
- Käsitsi migreerimine: MongoDB saab teostada teatud kogude jaoks käsitsi tükkide migratsiooni. See on kasulik andmete jaotamiseks hulgilisamise ajal.
3. Laiekonna migratsioon
- Automaatne vahemiku üleviimine: MongoDB migreerib andmed ühe vahemiku kaupa. Tasakaalustaja ei oota enne järgmise vahemiku migreerimise alustamist praeguse migratsiooni kustutamise etapi lõpuleviimist.
4. Uuesti jagamine
- Reshard-to-Shard Technique: MongoDB kasutab andmete kiireks levitamiseks klastri killudesse ümberjaotamist. See hõlmab tahtlikku killustamist ajutiseks killuvõtmeks, mis erineb soovitud killuvõtmest, ja seejärel uuesti jagamist soovitud killuvõtmeks.
5. Kontaktide migratsiooniprotseduur
- Source Shard: lähtekild alustab liikumist, kui saab sisemise käsu. Migratsiooniprotsessi ajal saadetakse tüki toimingud lähtekildu.
- Sihtkoha killuke: sihtkoha killuke koostab kõik allika poolt nõutavad indeksid, mida sihtkohas pole. Sihtkild hakkab taotlema dokumente ja hakkab vastu võtma andmete koopiaid.
- Sünkroonimine: pärast lõpliku dokumendi kättesaamist osana alustab sihtkild sünkroonimisprotsessi, et tagada migreeritud dokumentides migreerimise ajal toimunud muudatuste olemasolu.
- Metaandmete värskendus: lähtekild loob ühenduse konfiguratsiooniandmebaasiga ja värskendab klastri metaandmeid tüki uue asukohaga.
- Kustutamisfaasi: pärast seda, kui lähtekild on metaandmete värskendamise lõpetanud ja kui tükil pole avatud kursoreid, kustutab lähtekild oma dokumentide koopiad[3][5].
6. Jumbo tükid
- Jumbo tükid: kui tükk ületab maksimaalse suuruse või dokumentide arv tükis ületab maksimaalse lubatud, ei vii MongoDB tükki üle. Selle asemel üritab MongoDB tükki jagada. Kui jagamine ebaõnnestub, märgistab MongoDB tüki jumboks, et vältida korduvaid katseid tükki üle viia[3].
7. Järelevalve ja hooldus
- Jälgimine: MongoDB pakub tööriistu tasakaalustamisprotsessi jälgimiseks ja andmete ühtlase jaotuse tagamiseks kildude vahel.
- Hooldus: MongoDB pakub käske tasakaalustaja haldamiseks ja andmete migratsiooni tõhususe ja skaleeritavuse tagamiseks.
Järeldus
MongoDB haldab andmete migratsiooni kildude vahel tasakaalustamisprotsessi kaudu, mis tagab andmete ühtlase jaotuse killustatud klastri kildude vahel. Tasakaalustaja migreerib andmeid ühe vahemiku kaupa ja MongoDB pakub tööriistu tasakaalustamisprotsessi jälgimiseks ja haldamiseks.
Tsitaadid:[1] https://stackoverflow.com/questions/48438644/migration-data-between-shards-with-mongodb
[2] https://hackernoon.com/optimize-data-migration-in-mongodb-resharding-techniques-for-speed-and-scalability
[3] https://www.mongodb.com/docs/v3.0/core/sharding-chunk-migration/
[4] https://www.mongodb.com/community/forums/t/shard-migration-leads-to-service-disruption/247228
[5] https://www.mongodb.com/docs/v6.2/core/sharding-balancer-administration/