2012-10-19 4 views
13

ट्रेलो अपने डेटा (कार्ड) को मोंगोडीबी में कैसे स्टोर करता है?मोंडो डीबी में ट्रेलो स्टोर डेटा कैसे करता है? (प्रति बोर्ड संग्रह?)

मैंने पढ़ा (How does Trello show history so quickly?) कि उनके क्रिया संग्रह सबसे बड़ा है। इस प्रकार मुझे लगता है कि वे सभी कार्ड एक विशाल संग्रह में स्टोर नहीं करते हैं।

एकमात्र अन्य तार्किक समाधान प्रति बोर्ड या प्रति उपयोगकर्ता संग्रह संग्रह लगता है। लेकिन उनके पास बहुत सारे उपयोगकर्ता हैं और मैंने पढ़ा है (http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+Collections) कि संग्रह की संख्या पर एक सीमा है और कुछ लोग बहुत सारे संग्रहों का उपयोग करने के खिलाफ सलाह देते हैं।

मुझे आशा है कि ट्रेलो टीम के किसी व्यक्ति ने इसका जवाब दिया होगा और मुझे उम्मीद है कि इस तरह की समस्या को सामान्य समुदाय से भी हल करने पर कुछ विचार प्राप्त होंगे।

+2

वे इसे एक संग्रह में क्यों स्टोर नहीं करेंगे और वे इस तरह से पूछे जाने वाले तरीके पर शर्मिंदा नहीं होंगे कि आप प्रभावी ढंग से केवल एक कंप्यूटर से पूछेंगे कि क्वेरी को एक छोटे से संग्रह के रूप में तेज़ी से जितना तेज़ कर दिया जाए, शीर्ष पर जोड़ें कि वे शायद पिंग करें डेटा को अन्य क्षेत्रों में भी ताकि प्रतिक्रिया समय लगातार रहे और लंबे समय से आपको अरबों पंक्तियों में पूरी तरह से स्केलेबल संग्रह मिला। आपको यह भी याद रखना होगा कि लॉक डीबी स्तर है, इसलिए यदि वे किसी चीज के गुणक का उपयोग कर रहे थे तो यह बहुत से डीबी का उपयोग करने के लिए स्नैस बना देगा। – Sammaye

+0

@ सैमैय मैं "वे क्या पूछताछ पर शेर" समझ में नहीं आता है। आप बोर्ड में सभी कार्ड देख सकते हैं, कार्ड बोर्ड द्वारा सभी बोर्डों के माध्यम से खोज सकते हैं ... मैं शेरर्ड के बुनियादी सिद्धांत को समझता हूं, लेकिन मुझे समझ में नहीं आता कि आप क्या कह रहे हैं। क्या आप इसे थोड़ा और समझा सकते हैं। – Ben

+4

ठीक है, मैं केवल 10 मिनट के लिए ट्रेलो का उपयोग कर रहा हूं और पहले से ही मुझे लगता है कि अगर मैं इस साइट को डिजाइन कर रहा था तो मेरे पास तीन संग्रह होंगे: 'उपयोगकर्ता',' बोर्ड', 'कार्ड'। मैं बोर्ड के लिए 'बोर्ड_आईडी' पर shard होगा क्योंकि एक बोर्ड को कई उपयोगकर्ताओं के लिए सुलभ होने की जरूरत है। इस तरह जब आप उपयोगकर्ता के लिए पूछताछ करते हैं (जिसे '{_id, उपयोगकर्ता नाम, ईमेल} 'पर शेड किया जाता है) और फिर अपने सभी बोर्ड प्राप्त करें जो स्केल हो जाएंगे। बोर्ड की सूचियां बोर्ड की पंक्ति में एम्बेडेड होंगी लेकिन कार्ड नहीं। कार्ड शायद बोर्ड_आईडी और टाइमस्टैम्प और शायद user_id पर sharded किया जाएगा। मेरी पहली 10 मिनट की नज़र – Sammaye

उत्तर

13

ट्रेलो एक संग्रह में सभी कार्ड स्टोर करता है। संग्रह कार्ड के बोर्ड आईडी पर sharded है।

+0

क्या आप जानते हैं कि किस बिंदु पर जरूरी हो जाएगा? मैं मोंगोडीबी के लिए अपेक्षाकृत नया हूं और एक ऐप बना रहा हूं जिसे स्केल करने की आवश्यकता हो सकती है। – MadPhysicist

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