Uandishi wa kanda nyingi: mabadiliko huthibitishwa wapi kwa kweli?
Uelekezaji huleta ombi katika kanda; ni mpaka wa shughuli pekee unaofanya uandishi kuwa atomiki. Taja kigeugeu, chagua mmiliki, kisha buni jaribio la upya kuzunguka.
Seva mbili za programu katika kanda mbili, mteja mmoja anayeandika kupitia VPN, na swali ambalo hakuna aliyeliandika: ni sehemu gani inayoamua kwamba uandishi ulifanyika? Uelekezaji huleta ombi hadi kwenye mchakato. Mpaka wa shughuli huamua ni lini mabadiliko yanakuwa ya kudumu na yanayoonekana. Hizi ni kazi tofauti zinazofanywa na mifumo tofauti, na pengo kati yao ndipo mahali ambapo hitilafu nyingi za uandishi wa kanda nyingi huishi.
Anza na kanuni ya biashara, sio ramani
Anza na sentensi kuhusu kanuni ya biashara badala ya jiografia: ni usomaji na uandishi upi unapaswa kufanikiwa pamoja, na ni mabadiliko yapi ya wakati mmoja yanapaswa kuwa hayawezekani wakati hilo likitokea. Kwa uhifadhi wa bidhaa hiyo inamaanisha ukaguzi wa bidhaa na uhifadhi ama wote huanza kutumika au hakuna, na hakuna oda ya pili inayoweza kutumia kitengo hicho katikati.
| Requirement | What satisfies it | What does not |
|---|---|---|
| All-or-nothing application | A transaction inside one owning system | A VPN path between regions |
| No double spend | Isolation strong enough to exclude the conflict | Atomicity alone |
| Survive a region loss | Replication the database itself documents | Two independent databases behind one client |
Safu ya kati ndiyo ambayo timu huiruka. Atomiki bila utengano wa kutosha huruhusu shughuli mbili kuthibitishwa kwa usahihi kila moja na bado kutoa hali ambayo biashara inaiona kuwa haiwezekani, na hakuna kiasi cha mantiki ya kujaribu tena kinachoirekebisha baadaye.
Mpaka mmoja wenye mamlaka hushinda seva mbili za kanda
Seva za programu za kanda zinaweza kubaki zilipo, mradi tu ziwasilishe operesheni kwa huduma inayoifanya ndani ya mpaka mmoja wa shughuli unaoungwa mkono. Tabaka la programu linakuwa kielekezi cha nia; tabaka la data linamiliki ukweli.
Weka mpaka huo mfupi na karibu na data inayogusa. Shughuli inayobaki wazi wakati mtu anajibu kidokezo, au wakati simu inavuka kanda mbili, hutumia muda wake kushika kufuli na kuongeza uwezekano kwamba kitu kingine kitaisha muda nyuma yake. Hitilafu hiyo inaonekana kama tatizo la hifadhidata na kwa kweli ni tatizo la ubunifu lililovaa mavazi hayo. Kuhamisha uamuzi kwenye tabaka la data kwa kawaida huiondoa kabisa.
BEGIN;
UPDATE inventory SET reserved = reserved + 1
WHERE sku = 'A-100' AND available >= 1;
INSERT INTO reservation (sku, order_id) VALUES ('A-100', 'ord-9f');
COMMIT;
Soma mchoro huo kama mpaka, sio kama pendekezo la utendaji. Hoja ni kwamba ukaguzi na uingizaji hushiriki uthibitisho mmoja, kwa hivyo oda ya wakati mmoja ama inaona bidhaa zimetumika au haizoni kabisa.
Hifadhidata iliyorudiwa hutoa nini na haitoi nini
Hifadhidata iliyorudiwa inaweza kutoa mpaka mpana wakati mfumo wake wa shughuli unaunga mkono. Spanner huandika shughuli atomiki za kusoma na kuandika ndani ya hifadhidata moja kwenye majedwali, ikiwa na utengano na tabia ya kujaribu tena iliyobainishwa. Hiyo ni dhamana ambayo unaisoma, unaijaribu na unaitegemea kwa makusudi.
Pia ni dhamana inayotoka kwa bidhaa, sio kwa njia. VPN kati ya kanda hubadilisha jinsi pakiti zinavyosafiri na jinsi hitilafu zinavyoonekana. Haiongezi mpaka wa shughuli hata mstari mmoja, jinsi tu tunnel inavyoonekana kuwa nzuri. Kuchanganya hizo mbili hutoa usanifu ambapo kila sehemu inapita ukaguzi wake na data bado haikubaliani.
Hifadhidata mbili hazikuwa mfumo mmoja
Hifadhidata mbili zinazosimamiwa kwa kujitegemea hazipati msimamizi wa shughuli wa pamoja kwa sababu wateja wanaweza kufikia zote mbili. Ikiwa biashara inahitaji kweli ahadi ya atomiki kwenye jozi hiyo, utaratibu wa uratibu, washiriki na mchakato wa urejeshaji lazima uchaguliwe na kuhitimu badala ya kudhaniwa.
Fikiria wakati mshiriki au kiungo kinapotoweka baada ya kazi kuandaliwa. Uthibitisho uliosambazwa unaoungwa mkono unaweza kuacha hali isiyo na uhakika inayohitaji utaratibu wa urejeshaji na uamuzi wa kibinadamu, na haiji na ahadi kwamba kila kanda itabaki ikiandikika kupitia kila mgawanyiko.
Ikiwa badala yake uratibu usio wa wakati mmoja unakubalika, sema hivyo waziwazi na uandike hali za kati za biashara pamoja na kanuni za upatanisho. Mnyororo wa hatua zilizothibitishwa ndani ya nchi na fidia ni ubunifu halali; si shughuli moja ya atomiki yenye jina lingine.
Buni jaribio la upya kabla ya hitilafu ya kwanza
Mteja anaweza kupoteza jibu baada ya operesheni kuthibitishwa, kwa hivyo mpigaji hawezi kuchukua muda wa mwisho kama kosa. Hifadhi utambulisho wa ombi unaodumu na tumia matokeo ya huduma au utaratibu wa kutokurudia kabla ya kujaribu tena mabadiliko, vinginevyo jaribio la upya linakuwa uandishi wa pili.
Simu za nyuma za shughuli za kiotomatiki pia zinaweza kukimbia zaidi ya mara moja baada ya kughairiwa kunakoweza kujaribiwa tena, jambo linalozifanya kuwa makao mabaya kwa athari za nje zisizoweza kurudishwa. Weka hizo nje ya simu ya nyuma isipokuwa mtiririko wa kazi unafafanua itifaki salama wazi kwa ajili yao. Tahadhari hiyo hiyo inatumika kwa kitu chochote kinachogharimu fedha au kutuma ujumbe. Malipo maradufu ni mazungumzo magumu zaidi kuliko mstari wa kumbukumbu maradufu.
Ukubalifu unapaswa kurudia hali nne: wateja wawili wanaoshindana kwa safu moja, kughairiwa ambayo huduma inasema kunaweza kujaribiwa tena, uthibitisho ambao jibu lake haliji kamwe, na upotevu wa kanda au kiungo kati yao. Rekodi matokeo ya biashara yaliyothibitishwa na hali zisizotatuliwa kando ya ubunifu wa uelekezaji, ili mtu yeyote asikosee mtandao kama sehemu inayotoa dhamana.