څو سیمه ییز لیکنې: بدلون په رښتیا چېرته تصدیق کېږي؟
لارښوونه غوښتنه یوې سیمې ته رسوي؛ یوازې د معاملې پوله لیکنه اتومي کوي۔ انواریانټ ونوموئ، مالک وټاکئ، بیا د هغې شاوخوا بیا هڅه ډیزاین کړئ۔
په دوو سیمو کې دوه اپلیکیشن سرورونه، له VPN لارې لیکونکی یو کلاینټ، او یو پوښتنه چې چا نه ده لیکلې: کومه برخه پرېکړه کوي چې لیکنه شوې؟ لارښوونه غوښتنه یوې پروسې ته رسوي۔ د معاملې پوله پرېکړه کوي چې بدلون کله دوامداره او لیدل کېدونکی کېږي۔ دا هغه بېلابېل کارونه دي چې بېلابېل سیستمونه یې کوي، او د دوی ترمنځ تشه هغه ځای دی چې ډېری څو سیمه ییزې لیکنې تېروتنې پکې اوسېږي۔
له نقشې نه، له سوداګریزې قاعدې پیل کړئ
د جغرافیې پر ځای د سوداګریزې قاعدې په اړه په یوې جملې پیل وکړئ: کوم لوستل او لیکنې باید یوځای بریالي شي، او کوم هممهاله بدلونونه باید په دې موده کې ناممکن وي۔ د سټاک د ساتنې لپاره د دې مانا دا ده چې د سټاک کتنه او ساتنه یا دواړه نافذېږي یا هیڅ یو، او هیڅ دوهم امر نشي کولی په دې منځ کې هماغه واحد وکاروي۔
| 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 |
پرې هماغه منځنۍ کرښه ټیمونه تېروي۔ اتومیتوب پرته له کافي جلاوالي دوه معاملو ته اجازه ورکوي چې هر یو په سمه توګه تصدیق شي او بیا هم داسې حالت پیدا کړي چې سوداګرۍ یې ناممکن ګڼي، او وروسته هیڅ اندازه بیا هڅې منطق هغه نه سموني۔
یوه بااعتباره پوله پر دوو سیمه ییزو سرورونو بریالۍ ده
سیمه ییز اپلیکیشن سرورونه کولی شي خپل ځای کې پاتې شي، که چېرې عملیات هغه خدمت ته وسپاري چې د یوې ملاتړ شوې معاملې پولې دننه یې ترسره کوي۔ اپلیکیشن پوړ د نیت لارښوونکی کېږي؛ د ډاټا پوړ حقیقت لري۔
هغه پوله لنډه او هغو ډاټا ته نږدې وساتئ چې لمس یې کوي۔ هغه معامله چې پرانیستې پاتې کېږي تر څو یو انسان ځواب ووايي، یا تر څو یوه زنګ دوه سیمې تېرې کړي، خپل وخت د قفلونو په ساتلو او د دې احتمال په زیاتولو تېروي چې ترې وروسته بل څه وخت وباسي۔ هغه ناکامي د ډاټابیس ستونزه ښکاري او په رښتیا داسې جامې اغوستې ډیزاین ستونزه ده۔ پرېکړه د ډاټا پوړ ته لېږدول معمولاً هغه په بشپړه توګه لرې کوي۔
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;
هغه سکیچ د پولې په توګه ولولئ، نه د کارکرد د وړاندیز په توګه۔ ټکی دا دی چې کتنه او ننوتل یو تصدیق شریکوي، نو هممهاله امر یا سټاک کارول شوی ویني یا هغه هیڅ نه ویني۔
بیا تولید شوی ډاټابیس څه ورکوي او څه نه ورکوي
بیا تولید شوی ډاټابیس کولی شي پراخه پوله ورکړي کله چې د هغه خپل د معاملې ماډل ملاتړ وکړي۔ Spanner په یو ډاټابیس کې د جدولونو په اوږدو کې اتومي لوستل-لیکل معاملې د ټاکل شوي جلاوالي او بیا هڅې چلند سره مستند کوي۔ دا هغه تضمین دی چې تاسو یې لولئ، ازموئ او په قصد ورته تکیه کوئ۔
دا هغه تضمین هم دی چې له محصول څخه راځي، نه له لارې۔ د سیمو ترمنځ VPN بدلوي چې پاکټونه څنګه سفر کوي او ناکامۍ څنګه ښکاري۔ دا د معاملې پوله حتی یوه کرښه هم نه غځوي، هر څومره روغ تونل ښکاره شي۔ د دواړو ګډول داسې معماري جوړوي چې هر جز خپله کتنه تېروي او ډاټا بیا هم نه سره سمون خوري۔
دوه ډاټابیسونه یو سیستم نه کېږي
دوه په خپلواکه توګه اداره شوي ډاټابیسونه د دې له امله ګډ د معاملې مدیر نه ترلاسه کوي چې کلاینټونه دواړو ته رسېدلی شي۔ که سوداګرۍ واقعاً دې جوړه کې اتومي ژمنې ته اړتیا لري، د همغږۍ میکانیزم، ګډونوال او د بیا رغونې بهیر باید ټول فرض نه شي، بلکې وټاکل شي او وړ وګڼل شي۔
د هغه شېبې فکر وکړئ چې کار چمتو کېدو وروسته یو ګډونوال یا لینک ورک شي۔ ملاتړ شوې ویشل شوې تصدیق کولی شي یو ناڅرګند حالت پرېږدي چې د بیا رغونې بهیر او انساني پرېکړې ته اړتیا لري، او هیڅ داسې ژمنه نه لري چې هره سیمه به د هر تقسیم په اوږدو کې د لیکلو وړ پاتې شي۔
که پر ځای یې ناهمغږه همغږي منل کېدونکې ده، هغه روښانه ووایاست او منځني سوداګریز حالتونه او د سره سمون قواعد ولیکئ۔ د تاوان سره په سیمه ییزه توګه تصدیق شوو ګامونو زنځیر قانوني ډیزاین دی؛ دا یوازې په بل نوم یوه اتومي معامله نه ده۔
بیا هڅه له لومړي خنډ مخکې ډیزاین کړئ
کلاینټ کولی شي عملیات تصدیق کېدو وروسته ځواب له لاسه ورکړي، نو غوښتونکی نشي کولی وخت ختمېدل ناکامي وګڼي۔ دوامداره غوښتنلیک هویت وساتئ او د بدلون له بیا هڅې مخکې د خدمت پایله یا د تکرار ضد میکانیزم وکاروئ، که نه بیا هڅه دوهمه لیکنه کېږي۔
اتوماتیکې معاملې بیا غږونه کولی شي د بیا هڅې وړ لغوه وروسته له یو ځل ډېر ځلې وځي، چې هغوی د نه بدلېدونکو بهرنیو اغیزو لپاره بد کور ګرځوي۔ هغوی د بیا غږ نه بهر وساتئ پرته له دې چې کاري بهیر د هغوی لپاره روښانه خوندي پروتوکول ټاکي۔ ورته احتیاط پر هر هغه څه تطبیقېږي چې پیسې لګوي یا پیغام لېږي۔ دوه ځله تادیه د دوه ځله لاګ کرښې څخه ډېره سخته خبرې اترې ده۔
مننه باید څلور سناریوګانې بیا وګرځوي: دوه کلاینټونه چې د یوې کرښې لپاره سیالي کوي، هغه لغوه چې خدمت یې د بیا هڅې وړ بولي، هغه تصدیق چې ځواب یې هیڅکله نه راځي، او د یوې سیمې یا د دوی ترمنځ د لینک ورکېدل۔ تصدیق شوې سوداګریزه پایله او نه حل شوي حالتونه د لارښوونې ډیزاین ترڅنګ ثبت کړئ، تر څو چا شبکې ته د تضمین ورکوونکي جز په سترګه ونه ګوري۔