ऐसा लगता है कि एसटीएम (सॉफ्टवेयर लेनदेन संबंधी स्मृति) ढांचे और भाषा एक्सटेंशन में हाल ही में बढ़ती दिलचस्पी रही है। विशेष रूप से Clojure में एक उत्कृष्ट कार्यान्वयन है जो रोलिंग प्रतिबद्ध लॉग के बजाय MVCC (multi-version concurrency control) का उपयोग करता है। जीएचसी हास्केल में an extremely elegant STM monad भी है जो लेनदेन संरचना की अनुमति देता है। आखिरकार, मेरे खुद के सींग को थोड़ा सा टॉट करने के लिए, मैंने हाल ही में STM framework for Scala लागू किया है जो स्थिर रूप से संदर्भ प्रतिबंध लागू करता है।सॉफ्टवेयर ट्रांजैक्शनल मेमोरी का उपयोग कर कोई वास्तविक-दुनिया अनुभव?
ये सभी दिलचस्प प्रयोग हैं, लेकिन वे अकेले उस क्षेत्र तक ही सीमित हैं (प्रयोग)। तो मेरा सवाल है: क्या आप में से कोई भी असली दुनिया में एसटीएम देखा या इस्तेमाल किया है? यदि हां, तो क्यों? यह किस प्रकार के फायदे लाए? प्रदर्शन के बारे में क्या? (इस बिंदु पर विवादित जानकारी का एक बड़ा सौदा प्रतीत होता है) क्या आप फिर से एसटीएम का उपयोग करेंगे या आप अभिनेताओं की तरह कुछ अन्य समवर्ती अमूर्तता का उपयोग करना पसंद करेंगे?
यदि आप क्लोजर सूची पर यह पूछते हैं, तो आपको बहुत सारी प्रतिक्रियाएं मिलेंगी। मेरा मानना है कि क्लोजर की जरूरतों से प्रेरित है रिच हिकी वास्तव में है और इसका एसटीएम समर्थन वहां है क्योंकि उसे एक प्रयोग के रूप में नहीं, इसकी आवश्यकता है। –
ओह, मुझे यकीन है कि मैं करूँगा! लेकिन क्लोजर-भूमि के बाहर एसटीएम के उपयोग में मुझे अधिक दिलचस्पी थी। आखिरकार, यह शायद ही कोई नया विचार है, * कोई * होना चाहिए जो इसे उपयोगी पाता है। –
एक साइड नोट के रूप में, ऐसा लगता है कि माइक्रोसॉफ्ट द्वारा .NET में एसटीएम के साथ कुछ चल रहे प्रयोग हैं - पर्याप्त रूप से पहले से ही एक कार्यान्वयन कार्यान्वयन जारी करने के लिए: http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx - अब मुझे संदेह है कि यह सिर्फ इसके मजाक के लिए किया जा रहा है, और .NET के साथ एकीकृत करने से निश्चित रूप से एक बहुत ही व्यावहारिक कोण शुरू होता है, और मैं इस तथ्य का इलाज करने के इच्छुक हूं कि इसे गंभीरता से समझने वाली तकनीक के रूप में भी गंभीरता से माना जाता है "उत्पादन" के लिए। –