अपनी योजना के साथ एक समस्या है कि किसी भी दोहराया लाइनों एक दोहराया हैश होता है; आप की पहचान नहीं कर सकता था जब उन पंक्तियों में से एक जोड़ा गया है या नष्ट कर दिया
बहुत अच्छा बिंदु है, लेकिन नहीं एक मुद्दा। एक दोहराया लाइन डुप्लिकेट है और सभी डुप्लिकेट प्रसंस्करण के अगले चरण में नष्ट हो जाती हैं। तो हाँ तुम ठीक कह रहे हैं, लेकिन यह कोई मुद्दा नहीं है।
"Diff" लिंक मुझे मैं क्या मान एक आवेदन है के विवरण के साथ एक पृष्ठ पर ले जाता? कोई डाउनलोड लिंक वहाँ किसी भी भाषा में कोई कोड है, नहीं है ... मैं यहाँ क्या याद आ रही है?
आप में से कुछ बाइट स्तर का पठन स्तर के बारे में बात की है। यह आवश्यक नहीं है। केवल लाइन स्तर के विवरण का स्तर की आवश्यकता है क्योंकि अगर लाइन पर कुछ भी बदल दिया गया है, पूरे लाइन (रिकार्ड) फिर से प्रोसेस किया जाना चाहिए क्योंकि लाइन के भीतर किसी भी बदलाव के लिए पूरी लाइन को प्रभावित करता है।
तो हम लगभग 1000 वर्ण (कोई बाइनरी), दो फ़ाइलें (आज स्नैपशॉट और कल स्नैपशॉट) कि प्रत्येक लगभग 1m लाइनें हैं में की तर्ज तुलना कर रहे हैं।
तो (MD5 टकराव है और तुलनात्मक रूप से धीमी है) SHA256 की तरह एक सुरक्षित हैश मैं बारे में मेरी ओ लैपटॉप पर 30MB / सेकंड संसाधित कर सकते हैं का उपयोग कर। निश्चित रूप से सर्वर एक बहुत तेज़ी से चबाना होगा।
तो अगर फ़ाइल arond 1GB है, तो सभी hases बनाने 33sec के बारे में लेता है, और खिड़कियों पेज स्मृति का उपयोग 1Gb फ़ाइल को पढ़ने 30sec के बारे में लेता है। भीषण नहीं
अब हम प्रत्येक फ़ाइल की पंक्तियों का प्रतिनिधित्व hashs के दो सरणियों की है। अगर हम उन्हें सॉर्ट, अब हम एक द्विआधारी खोज का उपयोग कर सकते हैं, इसलिए हम पुरानी फ़ाइलों hashs में एक मैच के लिए देख नई फ़ाइलें hashs के माध्यम से हमारे रास्ते पुनरावृति। हम न यह मिल जाए, कि लाइन परिवर्तन फाइल करने के लिए जोड़ा गया है।
ध्यान रखें कि लाइनों की पुस्तक (विरासत डेटाबेस) हर पहलू में अज्ञात है। वहाँ लाइनों, परिवर्तन के स्थान, परिवर्तन के प्रकार के आदेश की कोई गारंटी नहीं है।
पेज से foreward पेज पढ़ने का सुझाव अच्छा है, लेकिन यह मानता है कि दो फ़ाइलों पहला परिवर्तन तक ऊपर smae क्रम में हैं। यह नहीं माना जा सकता। लाइनों (पंक्तियाँ) किसी भी क्रम में हो सकता है। इसके अलावा एक मनमाना ब्लॉकसाइज का उल्लंघन एक पंक्ति का विवरण के स्तर को चुनने। इस कार्य के प्रयोजनों के लिए, लाइनों अपरिवर्तनीय हैं।
invrementa लोड हो रहा है पर कि उत्कृष्ट लिंक से: फ़ाइल तुलना कब्जा: यह विधि भी स्नैपशॉट अंतर विधि के रूप में जाना जाता है। इस विधि से पहले रखकर और फ़ाइलों है कि डेटा गोदाम के लिए चिंता का विषय है की छवियों के बाद काम करता है। रिकॉर्ड्स परिवर्तनों को खोजने की तुलना में कर रहे हैं, और रिकॉर्ड चाबियाँ आवेषण और नष्टकरण लगता है की तुलना में कर रहे हैं। इस तकनीक को इस तथ्य से चलाता है कि आम तौर पर मौजूद नहीं है और हस्तांतरण लॉग या तो न के बराबर या एक मालिकाना प्रारूप में हैं की वजह से विरासत प्रणालियों के मामले में सबसे उपयुक्त है। चूंकि ज्यादातर विरासत डेटाबेस फ़ाइलों में डेटा को डंप करने के लिए कुछ तंत्र है, इस तकनीक आवधिक स्नैपशॉट बनाता है और फिर परिणामों की तुलना परिवर्तन रिकॉर्ड उत्पादन करने के लिए। निश्चित रूप से, सभी स्थैतिक कब्जा की समस्याओं यहां मौजूद हैं। जोड़ा जटिलता जानकारी की पूरी पंक्तियों की तुलना करने की चुनौती से और प्रमुख पहचान और मिलान द्वारा शुरू की है। इस तकनीक को प्रकृति में जटिल और आम तौर पर वांछनीय नहीं है लेकिन, कुछ मामलों में, एकमात्र समाधान हो सकता है।
यह यहां सबसे अधिक प्रासंगिक है: हम टेराबाइट डेटा गोदामों के क्षेत्र में आगे बढ़ने के रूप में, एक रात के आधार पर खरोंच से डेटा गोदाम के पुनर्निर्माण करने की क्षमता डायनासोर के मदद मिलेगी। डेटा गोदाम को अद्यतन करने के लिए तार्किक और कुशल दृष्टिकोण वृद्धिशील अद्यतन रणनीति के कुछ फार्म शामिल है।
तो मुझे लगता है मैं सही रास्ते पर फिर रहा हूँ? एक BTREE सूचकांक एक फायदा बर्दाश्त नहीं करेंगे?