බහු-කලාපීය ලේඛන: කමිට් ඇත්ත වශයෙන්ම පතිත වන්නේ කොහේද?
රවුටින් මගින් ඉල්ලීමක් කලාපයකට ගෙන යයි; ලේඛන පරමාණුක කරන්නේ ගනුදෙනු මායිමක් පමණි. වෙනස් නොවන ගුණය නම් කරන්න, හිමිකරු තෝරන්න, පසුව එය වටා නැවත උත්සාහය නිර්මාණය කරන්න.
කලාප දෙකක යෙදුම් සේවාදායක දෙකක්, 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 එකක් පැකට් ගමන් කරන ආකාරය සහ අසාර්ථකතා මතු වන ආකාරය වෙනස් කරයි. උමඟ කොතරම් සුවයෙන් පෙනුණත් එය ගනුදෙනු මායිම එක පේළියකින්වත් දිගු නොකරයි. දෙකම මුසු කිරීමෙන් සෑම අංගයක්ම තමන්ගේම පරීක්ෂාව සමත් වන නමුත් දත්ත තවමත් නොගැළපෙන ගෘහ නිර්මාණ ඇති වේ.
දත්ත සමුදායන් දෙකක් එක් පද්ධතියක් නොවේ
ස්වාධීනව කළමනාකරණය වන දත්ත සමුදායන් දෙකකට සේවාලාභීන් දෙකටම ළඟා විය හැකි නිසා පොදු ගනුදෙනු කළමනාකරුවෙකු ලැබෙන්නේ නැත. ව්යාපාරයට සැබවින්ම එම යුගලය හරහා පරමාණුක බැඳීමක් අවශ්ය නම්, සම්බන්ධීකරණ යාන්ත්රණය, සහභාගිවන්නන් සහ ප්රතිසාධන ක්රියාවලිය උපකල්පනය නොකර තෝරා ගත යුතුය.
වැඩ කටයුතු සූදානම් වූ පසු සහභාගිවන්නෙකු හෝ සබැඳියක් අතුරුදහන් වන මොහොත ගැන සිතන්න. ආධාරක විසිරුණු කමිට් එකක් ප්රතිසාධන ක්රියා පටිපාටියක් සහ මානව තීරණයක් අවශ්ය වන අවිනිශ්චිත තත්ත්වයක් ඉතිරි කළ හැක, සහ සෑම බෙදීමක් හරහාම සෑම කලාපයක්ම ලිවිය හැකි ලෙස පවතින බවට කිසිදු පොරොන්දුවක් එය සමඟ නොපැමිණේ.
ඒ වෙනුවට අසමකාලික සම්බන්ධීකරණය පිළිගත හැකි නම්, එය පැහැදිලිව කියන්න සහ අතරමැදි ව්යාපාරික තත්ත්වයන් සහ සමගි කිරීමේ නීති ලියන්න. වන්දි සමඟ ස්ථානීයව කමිට් වූ පියවරවල දාමයක් නීත්යනුකූල නිර්මාණයකි; එය වෙනත් නමකින් යුත් එක් පරමාණුක ගනුදෙනුවක් පමණක් නොවේ.
පළමු බාධාවට පෙර නැවත උත්සාහය නිර්මාණය කරන්න
ක්රියාවලිය කමිට් වූ පසු සේවාලාභියාට ප්රතිචාරය අහිමි විය හැක, එබැවින් ඇමතුම්කරුට කාලය ඉකුත් වීම අසාර්ථකත්වයක් ලෙස සැලකිය නොහැක. ටිකාකරණ ඉල්ලීම් අනන්යතාවයක් රඳවා ගන්න සහ වෙනසක් නැවත උත්සාහ කිරීමට පෙර සේවා ප්රතිඵලය හෝ අනන්යතා නොවන යාන්ත්රණය භාවිත කරන්න, නැතිනම් නැවත උත්සාහය දෙවන ලේඛනයක් බවට පත්වේ.
ස්වයංක්රීය ගනුදෙනු ආපසු ඇමතුම් නැවත උත්සාහ කළ හැකි අවලංගු කිරීමකින් පසු එක් වරකට වඩා ක්රියාත්මක විය හැක, එය ඒවා ආපසු හැරවිය නොහැකි බාහිර බලපෑම් සඳහා නරක නිවහනක් කරයි. වැඩ ප්රවාහය ඒවා සඳහා පැහැදිලි ආරක්ෂිත ප්රොටොකොලයක් අර්ථ දක්වන්නේ නැත්නම් ඒවා ආපසු ඇමතුමෙන් පිටත තබන්න. මුදල් වැය වන හෝ පණිවිඩයක් යවන සෑම දෙයකටම එම ආරක්ෂාවම අදාළ වේ. දෙගුණ ගාස්තුවක් දෙගුණ ලොග් පේළියකට වඩා බොහෝ අපහසු සංවාදයකි.
පිළිගැනීම අවස්ථා හතරක් නැවත ක්රියාත්මක කළ යුතුය: එකම පේළිය සඳහා තරඟ කරන සේවාලාභීන් දෙදෙනෙක්, සේවාව නැවත උත්සාහ කළ හැකි යැයි පවසන අවලංගු කිරීමක්, පිළිතුර කිසිවිටෙක නොපැමිණෙන කමිට් එකක්, සහ කලාපයක් හෝ ඒවා අතර සබැඳිය අහිමි වීම. කමිට් වූ ව්යාපාරික ප්රතිඵලය සහ නොවිසඳුණු තත්ත්වයන් රවුටින් නිර්මාණයට යාබදව සටහන් කරන්න, එවිට කිසිවෙකු ජාලය සහතිකය ලබා දෙන අංගය ලෙස වරදවා නොතේරෙනු ඇත.