HTML

asdf

Appengine HRD migráció

2012.09.13. 13:13 tvk

Kezdetben a Google Appengine alkalmazásokat csak Master/Slave datastore-ral lehetett összekapcsolni. Ennek a hátránya az volt, hogy a datastore elérhetősége egy konkrét datacenter állapotától függött. Ezen kívül időnként tervezett leállásokkal és readonly módba kerülésekkel kellett számolni, tipikusan amíg replikálódtak az adatok a master és slave között. Cserébe viszont volt erős konzisztencia. Az írás gyors, a beírt adatok pedig rögtön visszaolvashatóak. Ami engem illet, egyébként sosem volt gondom a tervezett leállásokból.

Aztán bevezették a High Replication Datastore-t. Egy időben lehetett választani, hogy melyik fajtával akarom működtetni az alkalmazást. A létrehozásnál meg kellett mondani és többet már nem lehetett megváltoztatni.
 
A High Replication Datastore (HRD) rendelkezésreállása jobb, azaz egyáltalán nincsenek tervezett leállások, viszont a konzisztencia gyengébb, az írási műveletek pedig lassabbak, a beírt adatok nem olvashatóak rögtön vissza. A gyakorlatban ha egy egyszerű webformon keresztül elmentek valamit és ezután úgy akarom megjeleníteni a webformot, hogy visszaolvasom a datastore-ból az adatokat -egyáltalán nem biztos hogy jól fog működni (Master/Slave esetén jól működik). Lehet hogy egy darabig még a régi értékek fognak megjelenni. A háttérben a datacenterek között Paxos algoritmussal replikálják az adatokat, így az adatvesztés esélye még kisebb.

Mostanában kaptam egy levelet a Google-tól, hogy a Master/Slave datastore-t deprekálják és leszek szíves áttérni HRD-re. Az admin konzolba betettek egy “Migration tool” gombot is. Ennek az a lényege, hogy a Master/Slave alkalmazás adatait át lehet lapátolni egy másik, HRD alkalmazásba. Kiraktak mégegy gombot, “Duplicate application” felirattal, ami elvileg a meglévő alkalmazás konfigja alapján csinál egy másikat és elvileg a régi URL-re is hallgatni fog az új alkalmazás, de ez nekem nem annyira volt sikeres művelet. Inkább létrehoztam és deployoltam kézzel egy új alkalmazást. Ez persze azzal járt, hogy a domainnevet kézzel át kellett raknom a régi alkalmazásról az újra. Ez pár perc alatt megvolt, a Google Apps-ban történő adminisztrálgatással, merthogy a Google-nél van regisztrálva a domainnév.

Az adatok átlapátolása is megtörtént pár perc alatt, a végén pedig levelet kaptam róla.Ha az adatokat olyan alkalmazásba akartam átlapátolni amiben volt már tartalom figyelmeztetést kaptam róla, de végülis egy konfirmáció után át lehetett pakolni őket. Viszont azt tapasztaltam, hogy a már meglévő adatokat nem írta felül. Ez nem volt szerencsés az én esetemben. Jobb a békesség, jobb egy tök üres datastore-ral rendelkező alkalmazásba migrálni.

Még annyi teendőm maradt, hogy az új HRD alkalmazásban a datastore readonly módját kézzel feloldjam. A régi alkalmazást törlésre jelöltem. A törlés nem történik meg azonnal, csak pár nap múlva. Addig bármikor visszavonhatom.

így történt meg nálam a HRD-re való áttérés. Nem volt fájdalmas vagy hosszú, de most viszont résen kell majd lenni, mert az eventual consistency egy trükkös dolog.

Szólj hozzá!

Címkék: google appengine datastore

A bejegyzés trackback címe:

https://kodzaj.blog.hu/api/trackback/id/tr294774760

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.