मैंने ऑरलिंस एफएक्यू में पढ़ा है जब विभाजन-मस्तिष्क हो सकता है लेकिन मुझे समझ में नहीं आता कि क्या बुरा हो सकता है और इसे कैसे ठीक से संभालना है।विभाजन-मस्तिष्क को कैसे संभालें?
पूछे जाने वाले प्रश्न का कहना है कुछ की तरह अस्पष्ट:
तुम बस, जबकि आपके आवेदन लेखन एक अभिनेता के दो उदाहरणों होने के दुर्लभ संभावना पर विचार करने की जरूरत है।
लेकिन मुझे वास्तव में इस पर विचार करना चाहिए और यदि मैं नहीं करूँ तो क्या हो सकता है?
ऑरलियन्स कागज (http://research.microsoft.com/pubs/210931/Orleans-MSR-TR-2014-41.pdf) इस कहते हैं:
आवेदन बाहरी लगातार भंडारण पर भरोसा कर सकते मजबूत डेटा स्थिरता प्रदान करने के लिए
लेकिन मुझे समझ नहीं आता कि इसका क्या मतलब।
मान लीजिए विभाजित मस्तिष्क हुआ। अब मेरे पास एक अनाज के दो उदाहरण हैं। जब मैं कुछ संदेश भेजूंगा तो उन्हें इन दोनों द्वारा प्राप्त किया जा सकता है (या और भी हो सकता है?) अलग-अलग उदाहरण। मान लीजिए इन संदेशों को प्राप्त करने से पहले प्रत्येक उदाहरण में एक ही स्थिति थी। अब, इन संदेशों को संसाधित करने के बाद उनके पास अलग-अलग राज्य हैं।
उन्हें अपने राज्यों को कैसे जारी रखना चाहिए? एक संघर्ष हो सकता है।
जब एक और उदाहरण नष्ट हो जाएंगे और केवल एक ही रहेगा नष्ट किए गए उदाहरणों के राज्यों के साथ क्या होगा? यह उनके द्वारा संसाधित संदेशों की तरह कभी संसाधित नहीं किया जाएगा? फिर ग्राहक स्थिति और सर्वर स्थिति desucronized IIUC हो सकता है।
मुझे यह एक बड़ी समस्या के रूप में (विभाजन-मस्तिष्क) दिखाई देता है और मुझे समझ में नहीं आता कि इसका इतना ध्यान क्यों है।
क्या यह सच है, "एक अपवाद फेंक दिया गया है और अनाज अगले संदेश को संसाधित करने की अनुमति देने से पहले राज्य पढ़ेगा" जैसा कि मैंने देखा, असंगतस्टेट अपवाद को ढांचे द्वारा नियंत्रित नहीं किया जाता है। – lmagyar
@LaszloMagyar आपका संदेह सही है। मैंने https://github.com/dotnet/orleans/issues/1420 खोला है और उत्तर को सही किया है। धन्यवाद :) –
यह अभी भी उस परिदृश्य को कवर नहीं कर रहा है जहां एक अनाज को केवल पढ़ने वाले संदेश प्राप्त होते हैं और दूसरा व्यक्ति पढ़ने/लिखने वाले संदेश प्राप्त करता है- पूर्व पुराने डेटा के साथ जवाब देगा। –