मैंने अपने आरईएसटी संसाधनों के लिए आशावादी लॉकिंग लागू की है जिसमें पीईटी कॉल के माध्यम से वापस प्राप्त करने वाले संस्करण संख्या को वापस पास करके डेटाबेस टेबल पर 1-से-1 मैपिंग है। यदि डेटा GET और PUT के बीच डेटाबेस में संस्करण संख्या बदल गई है, तो एक आशावादी लॉक अपवाद हुआ है। बहुत सरल डिजाइन।आप आरईएसटी में मोटे अनाज वाले आशावादी लॉक को कैसे कार्यान्वित करते हैं?
अब, मैं समग्र आरएसटी संसाधनों के लिए ऐसा कैसे करूं जो एकाधिक डेटाबेस टेबल पर मैप करते हैं? मैं एकाधिक संस्करण फ़ील्ड को वापस पास नहीं करना चाहता (एक समग्र डेटा से संबंधित प्रत्येक डेटा तालिका के लिए एक)। एक समग्र संसाधन का एक सरल उदाहरण/FooBar होगा जहां/Foo और/Bar गैर-समग्र संसाधन हैं।
मैं मूल रूप से फाउलर की स्थूल कणों का ताला लगा पैटर्न के बाकी implemetation का एक उदाहरण के लिए देख रहा हूँ: http://martinfowler.com/eaaCatalog/coarseGrainedLock.html
आपकी आरईएसटी सेवा में आप केवल संस्करणों को इकट्ठा कर सकते हैं और उन्हें एक ऐसे मानचित्र में डाल सकते हैं जो विशिष्ट रूप से जेनरेट की गई आईडी द्वारा बनाई गई है जो संस्करण का प्रतिनिधित्व करता है? फिर उसे क्लाइंट को भेजें और उन्हें संपादित करने के बाद इसे वापस भेज दें? फिर आप इकाइयों के ग्राफ के संस्करण प्राप्त करने के लिए उस आईडी का उपयोग कर सकते हैं। –