जावा का उपयोग करना मैं एक ऐसा मानचित्र बनाना चाहता हूं जो बढ़ सकता है और बढ़ सकता है और संभावित रूप से उपलब्ध स्मृति के आकार से बड़ा हो सकता है। अब स्पष्ट रूप से मानक POJO हैश मैप का उपयोग करके हम स्मृति से बाहर निकलने जा रहे हैं और JVM क्रैश हो जाएगा। तो मैं एक मानचित्र के साथ सोच रहा था कि अगर यह कम चलने वाली स्मृति के बारे में जागरूक हो जाता है, तो यह डिस्क पर वर्तमान सामग्री लिख सकता है।जावा में एक बहुत, बहुत बड़ा नक्शा बनाना
क्या किसी ने इस तरह कुछ भी लागू किया है या वहां मौजूद किसी भी मौजूदा समाधान के बारे में पता है?
जो मैं करने की कोशिश कर रहा हूं वह एक समय में एक बहुत बड़ी ASCII फ़ाइल (50 जीबी कहें) एक पंक्ति पढ़ा जाता है। प्रत्येक पंक्ति में एक कुंजी और एक मूल्य होता है। कुंजी को फाइल में डुप्लिकेट किया जा सकता है। मैं फिर प्रत्येक पंक्ति को मानचित्र में संग्रहीत करूंगा, जो मूल्यों की सूची के लिए कुंजी है। यह नक्शा वह वस्तु है जो सिर्फ बढ़ेगा और बढ़ेगा।
किसी भी सलाह की सराहना की।
फिल
अद्यतन:
सभी टिप्पणियों और सलाह हर किसी के लिए धन्यवाद। मैंने जिस समस्या का वर्णन किया है, उसके साथ डेटाबेस एक सही, स्केलेबल, समाधान है। मुझे यह कहना चाहिए था कि यह एक अस्थायी मानचित्र है जिसे फ़ाइल की पार्सिंग में सहायता के लिए थोड़े समय के लिए बनाया और उपयोग किया जाना चाहिए। इस मामले में, माइकल के सुझाव "वास्तविक मूल्य की बजाय केवल पंक्ति संख्या को स्टोर करने" के लिए सबसे उपयुक्त है। अनुशंसित समाधान के रूप में माइकल के जवाब को चिह्नित करना।
क्या एचएसक्यूएल जैसे इन-मेमोरी डेटाबेस का उपयोग करना आसान नहीं होगा? – mcfinnigan
आप किस कुंजी/मूल्य प्रकार का मानचित्रण कर रहे हैं? –
मैं डेटाबेस दृष्टिकोण पर उत्सुक नहीं हूं। यह बहुत भारी वजन है। – Phil