Sérèfù méjì ní ẹ̀kùn méjì, oníbàárà kan tí ń kọ̀wé nípasẹ̀ VPN, àti ìbéèrè tí kò sí ẹni tí ó kọ: èyí tí ó jẹ́ ẹ̀yà wo ni ó pinnu pé ìkọ̀wé ti ṣẹlẹ̀? Ìtọ́nà ń mú ìbéèrè lọ sí ìlànà kan. Ìlà ààlà ìṣòwò ni ó pinnu ìgbà tí ìyípadà yóò di aláìlẹ́gbẹ́ àti hàn. Iṣẹ́ ọ̀tọ̀ ni wọ́n ṣe nípasẹ̀ àwọn ẹ̀rọ ọ̀tọ̀, àti àlàfo tí ó wà láàárín wọn ni ibi tí ọ̀pọ̀lọpọ̀ àṣìṣe ìkọ̀wé ẹ̀kùn púpọ̀ ń gbé.

Bẹ̀rẹ̀ pẹ̀lú òfin ìṣòwò, kì í ṣe máàpù

Bẹ̀rẹ̀ pẹ̀lú gbólóhùn nípa òfin ìṣòwò, kì í ṣe nípa ilẹ̀ ayé: àwọn ìkàwé àti ìkọ̀wé wo ni ó gbọdọ̀ ṣàṣeyọrí pọ̀, àti àwọn ìyípadà alákọókò wo ni ó gbọdọ̀ jẹ́ aláìṣeé ṣe ní àkókò náà. Ní ti ìforúkọsílẹ̀ ọjà, èyí túmọ̀ sí pé àyẹ̀wò ọjà àti ìforúkọsílẹ̀ yálà méjèèjì wúlò tàbí kò sí ọ̀kan, àti pé kò sí àṣẹ kejì tí yóò lo ẹ̀yà kan náà ní àárín.

RequirementWhat satisfies itWhat does not
All-or-nothing applicationA transaction inside one owning systemA VPN path between regions
No double spendIsolation strong enough to exclude the conflictAtomicity alone
Survive a region lossReplication the database itself documentsTwo independent databases behind one client

Ìlà àárín gan-an ni àwọn ẹgbẹ́ ń fò kọjá. Atomu láìsí ìyàsọ́tọ̀ tí ó tó máa ń jẹ́ kí ìṣòwò méjì kọ̀ọ̀kan jẹ́ àbọ̀, kí wọ́n sì ṣì mú ipò jáde tí ìṣòwò kà sí aláìṣeé ṣe, àti pé kò sí ọ̀nà àtúnwá tí yóò tún un ṣe lẹ́yìn náà.

Ìlà ààlà kan tí ó ní àṣẹ borí sérèfù méjì ti ẹ̀kùn

Àwọn sérèfù ìṣòwò ẹ̀kùn lè wà ní ibi tí wọ́n wà, nígbà tí wọ́n bá fi iṣẹ́ náà ránṣẹ́ sí iṣẹ́ tí ó ń ṣe é nínú ìlà ààlà ìṣòwò kan tí a ti fọwọ́ sí. Ẹ̀ka ìṣòwò di olùtọ́nà èrò; ẹ̀ka dátà ni ó ní òtítọ́.

Jẹ́ kí ìlà ààlà yẹn kúrú kí ó sì súnmọ́ dátà tí ó ń fọwọ́ kàn. Ìṣòwò tí a ṣí sílẹ̀ nígbà tí ènìyàn ń dáhùn ìbéèrè, tàbí nígbà tí ìpè kan ń kọjá ẹ̀kùn méjì, máa ń lo àkókò rẹ̀ láti di àwọn ìdí, kí ó sì mú àǹfààní pọ̀ sí pé ohun mìíràn yóò dépò àkókò ní ẹ̀yìn rẹ̀. Àìdáa náà dà bí ìṣòro dátàbésì, ní tòótọ́ ó jẹ́ ìṣòro àpẹẹrẹ tí ó fi irú aṣọ náà wọ́. Sísún ìpinnu lọ sí ẹ̀ka dátà máa ń mú kúrò pátápátá.

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;

Ka àwòrán yẹn bí ìlà ààlà, kì í ṣe bí ìdámọ̀ràn iṣẹ́. Kókó ni pé àyẹ̀wò àti ìfiwọlé pín ìdánilójú kan, nítorí náà àṣẹ alákọókò yálà rí ọjà tí a ti lò tàbí kò rí i rárá.

Ohun tí dátàbésì àdàkọ ń fúnni àti ohun tí kò fúnni

Dátàbésì tí a ti ṣe àdàkọ lè pèsè ìlà ààlà tí ó gbòòrò nígbà tí àwòṣe ìṣòwò rẹ̀ fúnra rẹ̀ bá ti ṣe àtìlẹ́yìn. Spanner ń kọ àwọn ìṣòwò kíkà àti kíkọ atomu sínú dátàbésì kan ṣoṣo kọjá àwọn tábìlì, pẹ̀lú ìyàsọ́tọ̀ àti ìhùwàsí àtúnwá tí a ṣàlàyé. Ìdánilójú ni èyí tí o ń kà, tí o ń dán wò, tí o sì ń gbẹ́kẹ̀ lé lọ́nà mọ̀ọ́mọ̀.

Ìdánilójú tí ó ti ọjà wá ni èyí pẹ̀lú, kì í ṣe ti ọ̀nà. VPN láàárín àwọn ẹ̀kùn ń yí bí àwọn pákétì ṣe ń rìn àti bí àwọn àìdáa ṣe ń farahàn. Kò fa ìlà ààlà ìṣòwò gùn ní ẹ̀yà kan pàápàá, bí ojú ọ̀nà náà bá ti dára tó. Dídàpọ̀ àwọn méjèèjì ń dá àwọn àgbékalẹ̀ tí gbogbo ẹ̀yà ń kọjá àyẹ̀wò tirẹ̀ tí dátà kò sì bá ara wọn mu.

Dátàbésì méjì kò di ẹ̀rọ kan

Dátàbésì méjì tí a ń ṣàkóso lọ́tọ̀ kò gba olùṣàkóso ìṣòwò tí a pín, kì í ṣe nítorí pé àwọn oníbàárà lè dé ọ̀dọ̀ méjèèjì. Bí ìṣòwò bá nílò ìdúróṣinṣin atomu ní àkàyéjá, a gbọdọ̀ yan àti ṣe àyẹ̀wò ọ̀nà ìfọwọ́sowọ́pọ̀, àwọn olùkópa àti ìlànà ìmúpadà, kì í ṣe kí a kàn gbà á.

Ronú ní ìṣẹ́jú tí olùkópa kan tàbí ìsopọ̀ kan pòórá lẹ́yìn tí a ti pèsè iṣẹ́. Ìdánilójú tí a pín tí a ti fọwọ́ sí lè fi ipò àìdánilójú sílẹ̀ tí ó nílò ìlànà ìmúpadà àti ìpinnu ènìyàn, kò sì wá pẹ̀lú ìlérí pé gbogbo ẹ̀kùn yóò wà ní ṣíṣeé kọ kọjá gbogbo pípín.

Bí ìfọwọ́sowọ́pọ̀ aláìsí àkókò bá jẹ́ ìtẹ́wọ́gbà ní àkàyéjá, sọ ọ́ ní gbangba kí o sì kọ àwọn ipò ìṣòwò àárín àti àwọn òfin ìbámu. Ẹ̀wọ̀n àwọn ìgbésẹ̀ tí a dá mọ́ ní àdúgbò pẹ̀lú ẹ̀san jẹ́ àpẹẹrẹ tí ó tọ́; kì í ṣe ìṣòwò atomu kan pẹ̀lú orúkọ mìíràn.

Ṣe àpẹẹrẹ àtúnwá kí àìdáa àkọ́kọ́ tó dé

Oníbàárà lè pàdánù ìdáhùn lẹ́yìn tí a ti dá iṣẹ́ mọ́, nítorí náà ẹni tí ó ń pè kò lè ka àkókò àìpé sí àìdáa. Pa ìdánimọ̀ ìbéèrè tí ó wà pẹ́ kí o sì lo àbájáde iṣẹ́ tàbí ọ̀nà àìtúnṣe kí o tó tún ìyípadà wá, bí bẹ́ẹ̀ kọ, àtúnwá yóò di ìkọ̀wé kejì.

Àwọn ìpèpadà ìṣòwò aládàáṣe lè tún ṣiṣẹ́ ju ẹ̀ẹ̀kan lọ lẹ́yìn ìfagilé tí ó lè tún ṣe, èyí tí ó máa ń sọ wọ́n di ibi búburú fún àwọn ìpa òde tí kò lè yí padà. Pa wọ́n mọ́ ní òde ìpèpadà àyàfi tí ìlànà iṣẹ́ bá ṣàlàyé ìlànà ààbò tí ó ṣe kedere fún wọn. Ìṣọ́ra kan náà kan gbogbo ohun tí ó ń náwó tàbí tí ó ń fi ìfiránṣẹ́ ránṣẹ́. Ìgbèsẹ̀ ìdá méjì jẹ́ ìjíròrò tí ó le ju ìlà àkọsílẹ̀ méjì lọ.

Ìtẹ́wọ́gbà gbọdọ̀ tún àwọn ipò mẹ́rin ṣe: àwọn oníbàárà méjì ń díje fún ìlà kan náà, ìfagilé tí iṣẹ́ sọ pé ó lè tún ṣe, ìdánilójú tí ìdáhùn rẹ̀ kò dé rárá, àti pípàdánù ẹ̀kùn kan tàbí ìsopọ̀ láàárín wọn. Ṣàkọsílẹ̀ àbájáde ìṣòwò tí a dá mọ́ àti àwọn ipò tí a kò tíì yanjú lẹ́gbẹ̀ẹ́ àpẹẹrẹ ìtọ́nà, kí ẹnikẹ́ni má baà ṣe àṣìṣe kí ó ka nẹ́tíwọ́kì sí ẹ̀yà tí ó ń fúnni ní ìdánilójú.

Àwọn àpilẹ̀kọ tó jọra