2013-08-19 5 views
9

मैं प्रोजेक्ट में MapDB का उपयोग कर रहा हूं जो अरबों ऑब्जेक्ट्स से संबंधित है जिन्हें मैप/कतारबद्ध करने की आवश्यकता है। प्रोग्राम खत्म होने के बाद मुझे किसी भी तरह की दृढ़ता की आवश्यकता नहीं है (मैपडीबी डेटाबेस सभी अस्थायी हैं)। मैं प्रोग्राम जितनी जल्दी हो सके दौड़ना चाहता हूं, लेकिन मैं docs पढ़ने के बाद भी मैपडीबी के प्रतिबद्ध() फ़ंक्शन (जो मुझे लगता है कि प्रदर्शन के लिए प्रासंगिक है) के बारे में उलझन में है। मेरे प्रश्न:मैपडीबी का कुशलतापूर्वक उपयोग (काम करने के बारे में उलझन में)

  1. वास्तव में क्या प्रतिबद्ध करता है? मेरी कामकाजी समझ यह है कि यह ऑब्जेक्ट को ढेर से डिस्क तक क्रमबद्ध करता है, इस प्रकार ढेर अंतरिक्ष को मुक्त करता है। क्या यह सही है?

  2. ऑब्जेक्ट्स के संदर्भों का क्या होता है जो अभी प्रतिबद्ध थे?

अंत में मैं के रूप में कुशलतापूर्वक के रूप में मैं कर सकते हैं MapDB उपयोग करने के लिए कैसे जानना चाहते हैं वे जीसी द्वारा साफ मिलता है, या वे किसी भी तरह 'संदर्भ' डिस्क पर एक वस्तु करते हैं (MapDB इस पारदर्शी बनाने के साथ?), लेकिन मैं यह नहीं जानता कि क्या प्रतिबद्ध() के लिए है। मैं किसी अन्य सलाह की सराहना करता हूं जो आपके पास मैपडीबी का कुशलता से उपयोग करने के लिए हो सकता है।

उत्तर

2

commit ऑपरेशन transactions पर एक ऑपरेशन है, जैसा कि आप डेटाबेस सिस्टम में पाएंगे। मैपडीबी लेनदेन लागू करता है, इसलिए commit प्रभावी रूप से 'इस डीबी में किए गए परिवर्तनों को स्थायी बना देता है और इसके अन्य उपयोगकर्ताओं के लिए दृश्यमान होता है'। मानार्थ संचालन rollback है, जो वर्तमान लेनदेन के भीतर आपके द्वारा किए गए सभी परिवर्तनों को त्याग देता है। Commit (सीधे) स्मृति में क्या है और क्या नहीं प्रभावित करता है। यदि आप हीप स्पेस को पुनः प्राप्त करने का प्रयास कर रहे हैं, तो आप इसके बजाय compact() पर देखना चाहेंगे।

अपने दूसरे प्रश्न के लिए, यदि आप किसी ऑब्जेक्ट का मजबूत संदर्भ रखते हैं तो आप उस मजबूत संदर्भ को जारी रखते रहेंगे। MapDB आपके लिए इसे हटाने वाला नहीं है। आपको मैपडीबी के बारे में सामान्य जावा मानचित्र के रूप में सोचना चाहिए, ज्यादातर समय। जब आप get पर कॉल करते हैं, तो MapDB छुपाता है कि यह स्मृति में है या डिस्क से है और आपको पुनर्प्राप्त ऑब्जेक्ट के लिए एक उपयोगी संदर्भ देता है। यह पुनर्प्राप्त वस्तु स्मृति में चारों ओर लटकाएगी जब तक कि यह कचरा न हो जाए, बस कुछ और की तरह।

संबंधित मुद्दे