मुझे आश्चर्य है कि वास्तव में एक कॉच डीबी डेटाबेस बी-पेड़ में क्या संग्रहीत किया जाता है? CouchDB: The Definitive Guide बताता है कि एक डेटाबेस बी-पेड़ का उपयोग केवल परिचालन के लिए किया जाता है और यह कि डेटाबेस एक बी-पेड़ (प्रति-दृश्य बी-पेड़ के अलावा) में संग्रहीत होता है।वास्तव में CouchDB में बी-पेड़ डेटाबेस में कौन सा डेटा संग्रहीत किया जाता है?
तो मुझे लगता है कि डेटा आइटम डेटाबेस फ़ाइल के साथ जोड़े जाते संशोधन दस्तावेजों के, न कि पूरी दस्तावेज हैं:
+---------|### ...
| |
+------|###|------+ ... ---+
| | | |
+------+ +------+ +------+ +------+
| doc1 | | doc2 | | doc1 | ... | doc1 |
| rev1 | | rev1 | | rev2 | | rev7 |
+------+ +------+ +------+ +------+
यह सच है?
यदि यह सत्य है, तो इस तरह के बी-पेड़ के आधार पर दस्तावेज़ का वर्तमान संशोधन कैसे निर्धारित किया जाता है?
इसका मतलब यह नहीं है कि CouchDB को O12 (लॉग n) पहुंच को संरक्षित करने के लिए दस्तावेज़ों के वर्तमान संशोधन अनुक्रमणित करने के लिए एक अलग "दृश्य" डेटाबेस की आवश्यकता है? ऐसी इंडेक्स बनाने के दौरान यह दौड़ की स्थिति का नेतृत्व नहीं करेगा? (जहां तक मुझे पता है, कॉच डीबी कोई लिखने वाले ताले का उपयोग नहीं करता है)।
इसे 'erlang' के रूप में क्यों टैग किया गया है? – Zed
@ जेड हाँ, यह यहां अप्रासंगिक है। –
कॉच डीबी निश्चित रूप से * करता है * serialize लिखता है। फ़ाइल में डेटा लिखने के लिए एक एरलांग प्रक्रिया है। सभी लिखना उस प्रक्रिया के मेलबॉक्स के माध्यम से जाना चाहिए जो पाठ्यक्रम के Erlang serializes। – JasonSmith