आप Prevayler जैसे कुछ कोशिश कर सकते हैं (मूल रूप से एक इन-मेमोरी कैश जो आपके लिए क्रमबद्धता और बैकअप को संभालता है ताकि डेटा बनी रहती है और लेनदेन से सुरक्षित है)। अन्य समान परियोजनाएं हैं। मैंने इसे एक बड़ी परियोजना के लिए उपयोग किया है, यह सुरक्षित और बेहद तेज़ है।
यदि यह 20,000 ऑब्जेक्ट्स का एक ही सेट है, या कम से कम 20,000 नई ऑब्जेक्ट्स हर 5 सेकंड में नहीं हैं लेकिन बहुत सारे बदलाव हैं, तो आप बदलावों को कैश करने और बैच मोड में समय-समय पर परिवर्तन लिखने से बेहतर हो सकते हैं (jdbc बैच अपडेट बहुत अधिक हैं व्यक्तिगत पंक्ति अद्यतन से तेज़)। इस पर निर्भर करता है कि क्या आपको प्रत्येक लेखन को लेनदेन से लपेटने की आवश्यकता है, और क्या आपको परिवर्तन लॉग या केवल कुल परिवर्तनों के रिकॉर्ड की आवश्यकता होगी।
संपादित: के रूप में अन्य पदों Prevayler उल्लेख किया है मैंने सोचा कि मैं यह क्या करता है पर एक नोट छोड़ चाहते हैं: मूल रूप से आप एक खोज/serializable वस्तु (आमतौर पर किसी प्रकार का मानचित्र) बना है जो एक Prevayler में लपेटा जाता है उदाहरण, जो डिस्क पर क्रमबद्ध है। अपने मानचित्र पर सीधे परिवर्तन करने के बजाय, आप अपने प्रीवायलर इंस्टेंस को अपने परिवर्तन का एक क्रमिक रिकॉर्ड भेजकर परिवर्तन करते हैं (केवल एक ऑब्जेक्ट जिसमें परिवर्तन निर्देश होता है)। प्रीवायलर का लेनदेन का संस्करण डिस्क में अपने क्रमिक परिवर्तनों को लिखना है ताकि विफलता की स्थिति में यह अंतिम पूर्ण बैकअप लोड कर सके और फिर उसके खिलाफ परिवर्तनों को फिर से चला सके। यह सुरक्षित है, हालांकि आपके पास अपने सभी डेटा को लोड करने के लिए पर्याप्त मेमोरी है, और यह काफी पुरानी एपीआई है, इसलिए दुर्भाग्य से कोई सामान्य इंटरफ़ेस नहीं है। लेकिन निश्चित रूप से स्थिर और विज्ञापित के रूप में काम करता है।
स्रोत
2009-01-13 17:47:47
Prevayler में बहुत रुचि रखते हैं ... किसी भी अच्छे ट्यूटोरियल के बारे में पता है? – systemoutprintln
साइट पर प्रलेखन बहुत व्यापक नहीं है, लेकिन लाइब्रेरी डाउनलोड में डेमो शामिल हैं। उपयोग बहुत सरल है। –
स्टीव, क्या आप प्रीवायलर के बारे में मेरे प्रश्न को देख सकते हैं? http://stackoverflow.com/questions/454294/what-are-synchronizing-strategies-for-prevayler – Sergey