मजबूत स्थिरता: जब आवश्यक हो
मजबूत संगति एक मॉडल है जिसमें सभी संचालन ऐसे दिखते हैं जैसे वे वास्तविक समय के अनुरूप एकल वैश्विक क्रम में तुरंत और लगातार प्रदर्शन करते हैं। उपयोगकर्ता अंतिम पुष्टि किए गए मूल्य को पढ़ेगा, और दो समानांतर ग्राहक तार्किक रूप से एक दूसरे से आगे नहीं निकल पाएंगे।
सख्त स्थिरता एक सरल मानसिक मॉडल देती है और कठिन आक्रमणकारियों की रक्षा करती है, लेकिन समन्वय (कोरम/नेता) की आवश्यकता होती है, जो नेटवर्क विभाजन के लिए विलंबता और संवेदनशीलता को बढ़ाती है।
1) जब मजबूत होना अनिवार्य है
वित्त और बस्तियाँ
बैलेंस और राइट-ऑफ: "डबल खर्च" अस्वीकार्य है।
हस्तांतरण और बस्तियां: एक ही राशि दो बार पोस्ट नहीं की जा सकती है।
सूची और सीमाएँ
शेष सामान/होटल स्थान/टिकट: आप नकारात्मक मूल्यों में नहीं जा सकते।
समय की प्रति इकाई (क्रेडिट सीमा, एपीआई क्रेडिट) लेनदेन सीमाएं।
विशिष्टता और अखंडता
अद्वितीय डीडुप्लीकेशन लॉगिन/आईडी/नियम।
डोमेन स्तर पर आक्रमणकारी: "≥1 डॉक्टर को विभाग में ड्यूटी पर होना चाहिए", "कतार में> एन सक्रिय कार्य नहीं हो सकते।"
ऑडिटिंग और अपरिवर्तनीय लॉग
ऐसी घटनाएँ जो सत्य के कानूनी स्रोत के रूप में कार्य करती हैं: आदेश और पूर्णता महत्वपूर्
यदि अपरिवर्तनीय का उल्लंघन एक अस्वीकार्य व्यवसाय जोखिम (धन की हानि, प्रतिबंधों, विश्वास की हानि) वहन करता है - मजबूत निरंतरता चुनें।
2) वास्तव में "सख्त" क्या है
रैखिकता (परिचालन स्तर): पढ़ ना सबसे हालिया सफल लेखन देखता है; समय का सम्मान किया जाता है।
क्रमबद्ध (लेनदेन स्तर): परिणाम क्रमिक रूप से लेनदेन को निष्पादित करने के बराबर है (मजबूत हो सकता है, लेकिन कभी-कभी कठिन वास्तविक समय के आदेश के बिना लागू किया जाता है)।
एक महत्वपूर्ण अंतर: क्रमबद्ध लेनदेन स्तर की विसंगतियों (प्रेत/लेखन-तिरछा) से बचाता है, और लाइनराइजेबल एकल तात्कालिकता और एकल संचालन के आदेश से बचाता है। अक्सर आपको दोनों गुणों की आवश्यकता होती है (उदाहरण के लिए, डेटाबेस + इवेंट लॉग में पैसा)।
3) मूल्य कठोरता: PACELC और CAP
PACELC: नेटवर्क (P) को विभाजित करते समय, आपको C (कठोरता) या A (उपलब्धता) चुनना होगा। मजबूत → सीपी: अपरिवर्तनीय का उल्लंघन करने की तुलना में इनकार या ब्लॉक करना बेहतर है। जब कोई पृथक्करण नहीं होता है, तो हम एल - पी 95/पी 99 के साथ समन्वय/कोरम में बढ़ ता है।
अभ्यास: "इनवेरिएंट्स की कर्नेल" के लिए मजबूत, चारों ओर - अंतिम अनुमान के साथ तेज अनुमान/कैश ताकि यूएक्स पीड़ित न हो।
4) कैसे मजबूत स्थिरता हासिल की जाती है
नेतृत्व और कोरम
एकमात्र नेता रिकॉर्डिंग स्वीकार करता है; पढ़ ना - नेता पर या प्रतिकृतियों के कोरम द्वारा।
'आर + डब्ल्यू> के साथ पढ़ ने के लिए कोरम' डब्ल्यू 'लिखने के लिए कोरम' डब्ल्यू '।
मिलान एल्गोरिदम
बेड़ा/पैक्सोस: प्रतिकृति लॉग, बहुमत की पुष्टि, शब्द/सूचकांक।
तुल्यकालिक प्रतिकृति - कोरम पर दृढ़ ता के बाद ही रिकॉर्ड को मान्य किया जाता है।
घंटे और क्रम
TrueTime/Hybrid Logical Clocks (HLC): सुरक्षित वैश्विक क्रमबद्धता के लिए घड़ी मिसलिग्नमेंट को सीमित करें।
बाड़ टोकन/संस्करण: "सुबह" नेताओं और विभाजित मस्तिष्क के खिलाफ सुरक्षा।
लेनदेन अलगाव
क्रमबद्ध (SI + विधेय संघर्ष जाँच/लॉक): प्रेत/लेखन-तिरछा के खिलाफ सुरक्षा।
सख्त-क्रमबद्ध: वास्तविक समय के सापेक्ष क्रमबद्धता + रैखिकता।
5) बहु-क्षेत्र: विकल्प और व्यापार-बंद
वैश्विक नेता (सीपी)
रिकॉर्ड एक प्रमुख क्षेत्र से पढ़ ता है - स्थानीय कैश/अनुमान या एक नेता के माध्यम से।
पेशेवरों: सरल मॉडल। विपक्ष: P - रिकॉर्ड ताले के साथ नेता के लिए।
क्षेत्रीय नेता + तुल्यकालिक कोरम
कई क्षेत्रों से भौगोलिक रूप से विस्तारित कोरम; प्रत्येक रिकॉर्ड पुष्टि> 50% के लिए इंतजार कर रहा है।
पेशेवरों: एक एकल "संकीर्ण गर्दन" के बिना, उच्च स्थिरता। विपक्ष: अंतरमहाद्वीपीय विलंबता।
भू-विभाजन
क्षेत्र के लिए गृह डेटा (किरायेदार/अधिकार क्षेत्र); वैश्विक संचालन - सागा/समुच्चय के माध्यम से।
पेशेवरों: स्थानीय रिकॉर्डिंग के लिए कम विलंबता। विपक्ष: योजना डेटा सीमाएं।
6) आर/डब्ल्यू सेट करें और पढ़ें
प्रविष्टियाँ: 'W = बहुमत' मजबूत के लिए मानक है।
रीडिंग:- "फ्रेश" - 'आर = बहुमत' या नेता पर पढ़ ना।
- L को कम करने के लिए - "बासी-ओके" माध्यमिक स्क्रीन के लिए प्रतिकृतियों से पढ़ ता है (स्पष्ट रूप से UX में चिह्नित)।
- पढ़ें-मरम्मत/पट्टा पढ़ें: नेता के छोटे पट्टों के लिए गंभीरता के नुकसान के बिना अनुकूलन।
7) प्रदर्शन और UX
विलंबता: ग्राहक और नेता/कोरम (अंतरक्षेत्रीय रूप से सैकड़ों एमएस) के बीच आरटीटी पर ध्यान केंद्रित करें।
लेखक के लिए RYW के साथ "राइट-स्ट्रॉन्ग, रीड-फास्ट" पैटर्न: राइट + कैश/प्रोजेक्शन पर मजबूत।
बैच/पैकेट: समूह रिकॉर्ड, लेकिन पूंछ विलंबता के लिए देखें।
गिरावट आकृति: एक घटना में - केवल पढ़ा-लिखा, ईमानदार स्टेटस, खतरनाक उत्परिवर्तन का निषेध।
8) सख्त-पथ की अवलोकन
मेट्रिक्स
p50/p95/p99 विलंबता: कोरम लिखें, कोरम पढ़ें, नेतृत्व रीडिंग करें।
कोरम सफलता, रिप्ले/रोलबैक, नेता परिवर्तन।
प्रतिकृति अंतराल (अपेक्षित छोटा, लेकिन निगरानी अनिवार्य है)।
"स्टील" का हिस्सा पढ़ ता है (यदि शामिल है)।
ट्रेसिंग
स्पैन: "नेता स्वीकृति", "प्रतिकृति", "कोरम प्रतिबद्ध"।
Теги: 'शब्द', 'नेता _ आईडी', 'कोरम _ आकार', 'क्षेत्र'।
अलर्ट
ग्रोथ p95/p99, लगातार री-इलेक्शन लीडर, कोरम-टाइमआउट, स्प्लिट-ब्रेन इंडिकेटर।
9) टेस्ट और अराजकता
जेपसेन-जैसे: नेटवर्क विभाजन, देरी, बूंदें, घड़ी-तिरछा।
सुरक्षा-अपरिवर्तनीय: दोहरे खर्च/नकारात्मक शेष/डबल बुकिंग की असंभवता।
नेतृत्व: नेता इनकार, भार के तहत फिर से चुनाव, बाड़ टोकन।
स्थिरता पढ़ें: लिखने के तुरंत बाद पढ़ ना "नया" (RYW/रैखिक पढ़ ने योग्य) देखना चाहिए।
10) हादसा प्लेबुक
कोरम नुकसान: केवल पढ़ ने के लिए स्विच करें, ग्राहकों को सूचित करें, "घर" क्षेत्र में एक प्रविष्टि भेजें यदि भू-विभाजन मौजूद है।
विलंबता की वृद्धि अंतर्क्षेत्रीय है: अस्थायी रूप से सख्त रिकॉर्ड (कतार/अनुमानों में कुछ धाराओं का प्रवास) की मात्रा को कम करें, यातायात को स्थानीय बनाएं।
लीडर फ्लैप: चुनाव समय बढ़ाएं, नेटवर्क/घंटे-लंबे ड्रिफ्ट/जीसी रुकें।
स्प्लिट-ब्रेन: बाड़ -टोकन/लीज-चेक सक्षम करें, ऑपरेटर स्तर पर पुराने नेताओं को रोकें।
11) विशिष्ट त्रुटियां
मजबूत "हर जगह" की मांग करें: आक्रमणकारियों पर ध्यान केंद्रित करने के बजाय विलंबता और लागत का एक विस्फोट।
वास्तविक विभाजन के तहत सीए होने की कोशिश कर रहा है: बिंदु पी पर, सिस्टम अभी भी एक विकल्प बनाता है, अक्सर स्पष्ट रूप से।
सागा/समन्वयक के बिना विभिन्न क्षेत्रों में दोहरी लिखें: प्रेत और आक्रमणकारियों का नुकसान।
RYW की अनुपस्थिति: उपयोगकर्ता अपनी नई रिकॉर्ड की गई इकाई को नहीं देखता है - ट्रस्ट में एक गिरावट।
घड़ी की अनदेखी: एचएलसी/ट्रूटाइम सीमाओं के बिना, "कूदना" समय और रेसिंग प्राप्त करना आसान है।
कोई गिरावट योजना नहीं है: पी पर, अराजक आंशिक विफलताएं शुरू होती हैं।
12) त्वरित सुधार (व्यंजनों)
भुगतान/संतुलन: नेता + बहुमत-कोरम; सख्त-क्रमबद्ध लेनदेन शॉर्ट टाइमआउट, पी में कठिन विफलता
बुकिंग (सीटें/स्लॉट): नेता के माध्यम से लिखना-मजबूत, पढ़ ता है - RYW के साथ कैश; TTL-भंडार + TCC।
ग्लोबल सास: 'किरायेदार/क्षेत्र' द्वारा भू-विभाजन; गृह क्षेत्र में सख्त संचालन, रिपोर्ट/खोज - अनुमानों के माध्यम से।
ऑडिट/लॉग: एपेंड-ओनली सीपी-लॉग; रीड को कैश किया जा सकता है, लेकिन चौकियों के साथ सत्यापित किया जा सकता है।
13) प्री-सेल चेकलिस्ट
- मजबूत की आवश्यकता वाले आक्रमणकारी लिखे गए थे; बाकी एपी/प्रक्षेपण में है।
- एकल नेता/कोरम अंतरक्षेत्रीय/भू-विभाजन चयनित।
- महत्वपूर्ण रास्तों के लिए 'W = बहुमत', 'R = नेता' बहुमत 'कॉन्फ़िगर किया गया।
- RYW/मोनोटोनिक UX के लिए प्रदान किया गया; स्पष्ट रूप से चिह्नित "बासी-ओके" पढ़ ता है।
- कोरम, लैग्स, लेटेंसी के मैट्रिक्स शामिल हैं; P95/p99 पर अलर्ट और फिर से चुनाव।
- एक अपमानजनक योजना है: केवल पढ़ ना, खतरनाक उत्परिवर्तन को अक्षम करना, "तूफान के बाद" के लिए कतारें।
- अराजकता परीक्षण: विभाजन, घड़ी-तिरछा, नेता विफलता; सुरक्षा अपरिवर्तनों की जांच की गई।
- अनुबंध प्रलेखन: उत्पाद/समर्थन के लिए संचार क्या सख्त है, "पीछे क्या हो सकता है"।
निष्कर्ष
मजबूत संगति सत्य की रक्षा के लिए एक उपकरण है जहां त्रुटि अस्वीकार्य है। इसे कठोर अपरिवर्तनों के आसपास बिंदुवार लागू करें, जानबूझकर तूफानों में विलंबता और उपलब्धता के साथ समन्वय के लिए भुगतान करें। संयोजन: गति के लिए महत्वपूर्ण, एपी-रीडिंग और प्रक्षेपण के लिए सीपी-कर्नेल। सही टेलीमेट्री, क्षरण और परीक्षण के साथ, आप शुद्धता और उपयोगकर्ता अनुभव दोनों को बनाए रखेंगे।