लेनदेन / रीड-राइट लॉक को हल करने के लिए आप क्या एल्गोरिदम / रीडिंग मैटर सुझाएंगे?


10

एक सरलीकृत शास्त्रीय डेटाबेस लेनदेन निम्नानुसार देखा जा सकता है:

  • एम आइटम पढ़ना
  • उन रीड्स के आधार पर कुछ गणना करना
  • इन गणनाओं के आधार पर कुछ एन परिणाम लिखना, जिसमें मूल रूप से पढ़े गए तत्व शामिल हो सकते हैं।

इन लेनदेनों (समवर्ती) का प्रदर्शन करते समय एसीआईडी संपत्तियों को बनाए रखने की आवश्यकता होती है।

वास्तव में समान आवश्यकताएं (एम अपडेट के आधार पर एन अपडेट, अन्य गैर-डीबीएमएस समवर्ती प्रणालियों में मौजूद हैं)।

मुझे यह पता लगाने में रुचि है कि इन लेनदेन को करने / हल करने के लिए क्या एल्गोरिदम मौजूद हैं, और इन एल्गोरिदम की सापेक्ष ताकत और कमजोरियां क्या हैं। क्या आप कुछ पढ़ने की सलाह दे सकते हैं? यह किताबें या ऑनलाइन संदर्भ / ट्यूटोरियल हो सकते हैं।

स्पष्टीकरण:

इसलिए, उदाहरण के लिए, एक भोली एल्गोरिथ्म प्रत्येक लेनदेन हो सकता है जो एक एकल वैश्विक लॉक ले रहा है, प्रभाव में एकल थ्रेडिंग और संगामिति को हटाने के लिए मजबूर करता है। एक और अधिक जटिल एल्गोरिथ्म अलग-अलग आइटम रीड / राइट लॉक होंगे, जो कि गतिरोध से बचने के लिए एक आदेश के साथ)। आदि, इस समस्या को हल करने के लिए विभिन्न एल्गोरिदम का एक अच्छा स्रोत है। यहां तक ​​कि एक जवाब जो केवल एक एल्गोरिथ्म की ओर इशारा करता है, जिसमें ताकत और कमजोरियां हैं।


3
यह सवाल निश्चित रूप से इस साइट के दायरे में आता है। मैं उस संदर्भ के बारे में थोड़ा और लिखने की सलाह दूंगा जिसमें आप काम कर रहे हैं। वर्तमान में यह सामान्य और खुला है।
डेव क्लार्क

क्या आपको लगता है कि यह रीफ़्रेशिंग के लायक है इसलिए यह डेटाबेस का सवाल है? IE कुछ ऐसा है "मेरे पास एक डेटाबेस है जिसे पढ़ा और लिखा जा सकता है, और मैं ACID गुणों के साथ लेन-देन को पढ़ने और लिखने में सक्षम होना चाहता हूं। इन गुणों को सुनिश्चित करने के लिए क्या एल्गोरिदम मौजूद हैं"
निक फोर्टेस्क्यू

प्रश्न को रीफ़्रेश करने से आप जो खोज रहे हैं, उसके उत्तर में परिणाम हो सकता है, जैसे कि आप जिस समस्या को हल करने का प्रयास कर रहे हैं उसका अधिक विवरण देना; वर्तमान में आप केवल संकेत देते हैं। किसी भी मामले में, ऐसा लगता है कि आप शास्त्रीय डेटाबेस लेनदेन एल्गोरिदम के लिए पूछ रहे हैं।
डेव क्लार्क

@ क्या - धन्यवाद, मैंने संपादित किया है। बेहतर?
निक फोर्टेस्क्यू

1
क्या आप पहले से ही रामकृष्णन और गेहरके जैसे डीबीएमएस पाठ्यपुस्तकों से परिचित हैं? और यदि आप किसी DBMS के इंटर्नल के बारे में नहीं पूछ रहे हैं, तो क्या आप इस सवाल को स्पष्ट कर सकते हैं कि हमें एक DBMS और आप में क्या रुचि है, के बीच अंतर पता है?
मैवरिक वू

जवाबों:


10

वेइकुम और वॉसेन द्वारा बुक ट्रांसेक्शनल इन्फॉर्मेशन सिस्टम काफी सारे क्षेत्र को कवर करता है, दोनों सैद्धांतिक और व्यावहारिक शब्दों में, विभिन्न दृष्टिकोणों से, न केवल लेनदेन। यह लगभग 1000 पृष्ठ लंबा है, इसलिए आपको सप्ताहांत या दो के लिए व्यस्त रखेगा। दूसरी ओर, यह लगभग 10 साल पुराना है, इसलिए कुछ और अप-टू-डेट उपलब्ध हो सकता है। अन्य पुस्तकों में कतार में शामिल डाटाबेस सिस्टम में संगामिति नियंत्रण और रिकवरी बर्नस्टीन, पी, Hadzilacos, वी, और गुडमैन, एन, एडिसन-वेस्ले, 1987 से, लेनदेन प्रसंस्करण: अवधारणाओं और तकनीकों जिम ग्रे और एंड्रियास रॉयटर, और द्वारा सिद्धांतों लेनदेन प्रसंस्करण कीफिलिप ए। बर्नस्टीन और एरिक न्यूकोमर, 2009 के द्वारा। मैंने बाद वाला नहीं देखा है, लेकिन सबसे हालिया होने के कारण यह शुरू करने के लिए एक अच्छी जगह हो सकती है, हालांकि आपका समाधान पुराने ग्रंथों में अच्छी तरह से मिल सकता है। पुस्तकालय की यात्रा सार्थक हो सकती है।

इस क्षेत्र में एक स्मारक पाठ नैन्सी लिंच एट अल द्वारा परमाणु लेनदेन है। यह आपके द्वारा रुचि रखने वाले एल्गोरिदम के कई प्रकार का एक औपचारिक खाता और प्रमाण प्रस्तुत करता है। यह बल्कि औपचारिक और थकाऊ है, इसलिए यह आपके स्वाद के लिए नहीं हो सकता है।

हाल ही में बहुत सारे काम सॉफ्टवेयर ट्रांसेक्शनल मेमोरी के लिए समर्पित हैं , जो लेनदेन के विचारों को बहु-थ्रेडेड अनुप्रयोगों पर लागू कर रहा है। प्रत्येक वर्ष इस विषय पर दसियों प्रकाशन होते हैं: विकिपीडिया पृष्ठ बहुत सारे संदर्भ प्रदान करता है।


1
धन्यवाद, विशेष रूप से "सॉफ्टवेयर ट्रांसेक्शनल मेमोरी" वाक्यांश के लिए, मैं इस नाम से नहीं आया था
निक फॉरेसिफिक

1
एसटीएम इन दिनों प्रोग्रामिंग भाषाओं के शोध में एक बहुत ही गर्म विषय है। एसटीएम या अभिनेता आधारित प्रोग्रामिंग मॉडल भविष्य के समवर्ती (= सभी) प्रोग्रामिंग भाषाओं का आधार होगा या नहीं यह देखने के लिए एक दौड़ है।
डेव क्लार्क

1
एसटीएम के अलावा, इन संदर्भों के अंदर देखने के लिए एक विशेष कीवर्ड MVCC है। इसका उपयोग सबसे आधुनिक DBMS में किया जाता है: en.wikipedia.org/wiki/Multiversion_concurrency_control
Maverick Woo

@supercooldave मुझे यकीन नहीं है कि यह एक दौड़ है: मुझे लगता है कि भविष्य की भाषाओं को कुछ हद तक या कुछ और दोनों का समर्थन करना होगा।
मार्क हैमन

@ मर्म हरमन: रूपक से बोलना।
डेव क्लार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.