पृथक्करण स्तर
पृथक्करण स्तर यह परिभाषित करते हैं कि कोई लेन-देन अन्य समवर्ती लेन-देन के प्रभावों से कितना सुरक्षित है, उच्च समवर्तीता और थ्रूपुट के बदले कुछ पृथक्करण गारंटियों का त्याग करते हुए।
Definition
एक पृथक्करण स्तर यह निर्दिष्ट करता है कि एक लेन-देन किन समवर्ती विसंगतियों का अवलोकन कर सकता है; उच्च स्तर कम समवर्तीता की लागत पर अधिक विसंगतियों को रोकते हैं (पूर्ण सीरियलाइजेबिलिटी तक), जबकि निचले स्तर प्रदर्शन के बदले कुछ विसंगतियों की अनुमति देते हैं।
Scope
यह विषय मानक पृथक्करण स्तरों — रीड अनकमिटेड, रीड कमिटेड, रिपीटेबल रीड, और सीरियलाइजेबल — को शामिल करता है, जिन्हें उन घटनाओं (डर्टी रीड, नॉन-रिपीटेबल रीड, फैंटम) के संदर्भ में परिभाषित किया गया है जिन्हें वे अनुमति देते हैं या रोकते हैं, उस प्रभावशाली आलोचना को जिसने उन्हें अनुमत विसंगतियों के संदर्भ में फिर से परिभाषित किया, और व्यावहारिक रूप से महत्वपूर्ण स्नैपशॉट पृथक्करण और इसकी विसंगतियाँ जैसे राइट स्क्यू। यह संगति और समवर्तीता के बीच के व्यापार-बंद पर विचार करता है। इसमें अंतर्निहित लॉकिंग और मल्टीवर्जन तंत्र शामिल नहीं हैं जो इन स्तरों को लागू करते हैं।
Core questions
- प्रत्येक पृथक्करण स्तर किन विसंगतियों — डर्टी रीड, नॉन-रिपीटेबल रीड, फैंटम — की अनुमति देता है?
- SQL मानक चार पृथक्करण स्तरों को कैसे परिभाषित करता है?
- शोधकर्ताओं ने विसंगति-आधारित परिभाषाओं की अस्पष्टता के रूप में आलोचना क्यों की?
- स्नैपशॉट पृथक्करण कहाँ फिट बैठता है, और यह किन विसंगतियों (जैसे राइट स्क्यू) की अनुमति दे सकता है?
- अनुप्रयोग किसी दिए गए वर्कलोड के लिए पृथक्करण स्तर का चयन कैसे करते हैं?
Key concepts
- रीड अनकमिटेड
- रीड कमिटेड
- रिपीटेबल रीड
- सीरियलाइजेबल
- डर्टी रीड
- नॉन-रिपीटेबल रीड
- फैंटम रीड
- स्नैपशॉट पृथक्करण और राइट स्क्यू
Key theories
- विसंगति-आधारित पृथक्करण स्तर
- SQL मानक पृथक्करण स्तरों को इस आधार पर परिभाषित करता है कि वे तीन घटनाओं — डर्टी रीड, नॉन-रिपीटेबल रीड, और फैंटम — में से किसे अनुमति देते हैं, जो रीड अनकमिटेड (सभी अनुमत) से लेकर सीरियलाइजेबल (कोई भी अनुमत नहीं) तक होते हैं।
- ANSI पृथक्करण स्तरों की आलोचना
- बेरेनसन और उनके सहयोगियों ने दिखाया कि मानक की घटना-आधारित परिभाषाएँ अस्पष्ट हैं और मल्टीवर्जन प्रणालियों को स्पष्ट रूप से चित्रित नहीं करती हैं, और उन्होंने स्नैपशॉट पृथक्करण को एक विशिष्ट, व्यापक रूप से लागू स्तर के रूप में पेश किया जो मूल परिभाषाओं द्वारा कैप्चर नहीं किया गया था।
- स्नैपशॉट पृथक्करण और इसकी विसंगतियाँ
- स्नैपशॉट पृथक्करण के तहत प्रत्येक लेन-देन अपनी शुरुआत के अनुसार एक सुसंगत स्नैपशॉट पढ़ता है, जो रीड लॉक के बिना मजबूत रीड व्यवहार देता है, लेकिन यह नॉन-सीरियलाइजेबल विसंगतियों जैसे राइट स्क्यू की अनुमति दे सकता है, जो सीरियलाइजेबल स्नैपशॉट पृथक्करण को प्रेरित करता है।
Clinical relevance
पृथक्करण स्तर एप्लिकेशन डेवलपर्स के लिए एक नियमित लेकिन महत्वपूर्ण कॉन्फ़िगरेशन विकल्प है: बहुत कमजोर स्तर चुनने से सूक्ष्म विसंगतियों के माध्यम से डेटा चुपचाप दूषित हो सकता है, जबकि हमेशा सीरियलाइजेबल का उपयोग करने से थ्रूपुट बाधित हो सकता है, इसलिए सही, उच्च-प्रदर्शन वाले लेन-देन संबंधी अनुप्रयोगों के लिए स्तरों को समझना आवश्यक है।
History
ANSI/ISO SQL मानक ने अनुमत घटनाओं के संदर्भ में पृथक्करण स्तरों को परिभाषित किया। बेरेनसन, बर्नस्टीन, ग्रे, और ओ'नील्स द्वारा 1995 की आलोचना ने उन परिभाषाओं में अस्पष्टताओं को उजागर किया और स्नैपशॉट पृथक्करण को चित्रित किया, जिसे मुख्यधारा के मल्टीवर्जन डेटाबेस ने अपनाया। बाद के काम ने शेष विसंगति अंतर को बंद करने के लिए सीरियलाइजेबल स्नैपशॉट पृथक्करण को परिभाषित किया।
Debates
- विसंगतियों द्वारा पृथक्करण को परिभाषित करना बनाम सीरियलाइजेबिलिटी द्वारा
- मानक की विसंगति-सूची परिभाषाएँ बताना आसान हैं लेकिन अस्पष्ट हैं और मल्टीवर्जन प्रणालियों के अनुकूल नहीं हैं; एक विकल्प यह है कि शुद्धता को सीधे सीरियलाइजेबिलिटी के माध्यम से परिभाषित किया जाए, जो अधिक स्पष्ट है लेकिन उन स्तरों पर मैप करना कठिन है जिन्हें डेवलपर्स व्यवहार में कॉन्फ़िगर करते हैं।
Key figures
- Jim Gray
- Philip Bernstein
- Hal Berenson
Related topics
Seminal works
- berenson1995
- gray1992
Frequently asked questions
- नॉन-रिपीटेबल रीड और फैंटम रीड में क्या अंतर है?
- एक नॉन-रिपीटेबल रीड तब होता है जब एक लेन-देन एक ही पंक्ति को दो बार पढ़ता है और अलग-अलग मान देखता है क्योंकि दूसरे लेन-देन ने बीच में इसे अपडेट कर दिया था। एक फैंटम रीड तब होता है जब एक लेन-देन एक खोज शर्त के साथ एक क्वेरी को फिर से चलाता है और नई पंक्तियों को देखता है जिन्हें दूसरे लेन-देन ने डाला था। रिपीटेबल रीड पहले वाले को रोकता है; केवल सीरियलाइजेबल ही फैंटम को मज़बूती से रोकता है।
- क्या स्नैपशॉट पृथक्करण सीरियलाइजेबल के समान है?
- नहीं। स्नैपशॉट पृथक्करण प्रत्येक लेन-देन को एक सुसंगत स्नैपशॉट देता है और डर्टी और नॉन-रिपीटेबल रीड को रोकता है, लेकिन यह पूरी तरह से सीरियलाइजेबल नहीं है: यह राइट-स्क्यू विसंगतियों की अनुमति देता है जहाँ दो लेन-देन ओवरलैपिंग डेटा पढ़ते हैं और अलग-अलग अपडेट करते हैं जो एक साथ एक बाधा का उल्लंघन करते हैं। सीरियलाइजेबल स्नैपशॉट पृथक्करण ऐसी विसंगतियों को खत्म करने के लिए इसे बढ़ाता है।