मुझे पहले से ही मोंगोडीबी, कॉच डीबी, रेडिस, टोक्यो कैबिनेट और अन्य नोएसक्यूएल डेटाबेस के साथ अनुभव है। हाल ही में मैंने Riak पर ठोकर खाई और यह मेरे लिए बहुत दिलचस्प लग रहा है। इसके साथ शुरुआत करने के लिए, मैंने नोएसक्यूएल वर्ल्ड में "हैलो वर्ल्ड", एक छोटा ट्विटर क्लोन लिखने का फैसला किया। पूरी तरह से काम करने वाले क्लोन प्राप्त करने के लिए, कालक्रम के अनुसार ट्वीट्स को ऑर्डर करना आवश्यक है। Riak दस्तावेज़ों को पढ़ने के बाद मैंने पाया कि मानचित्र-कमी इस नौकरी के लिए सही उपकरण है। मेरे विकास-पर्यावरण में यह काफी अच्छा काम करता है, लेकिन सैकड़ों समांतर प्रश्नों के साथ उत्पादन में प्रदर्शन कैसा है? डेटा को सॉर्ट करने के लिए अन्य, शायद तेज, विधियां हैं, या क्या ऑर्डर किए गए फॉर्म (जैसे कैसंद्रा) में डेटा स्टोर करना संभव है?Riak में डेटा को सॉर्ट/ऑर्डर कैसे करें?
अद्यतन: मुझे लगता है कि मुझे इस समस्या का एक और समाधान मिला है - एक साधारण लिंक्ड सूची। तो एक संभावित कार्यान्वयन हो सकता है, कि प्रत्येक उपयोगकर्ता को अपनी "टाइमलाइन बाल्टी" मिलती है, जहां ट्वीट्स के लिए लिंक-डेटा स्वयं संग्रहित हो जाता है (ट्वीट्स "ट्वीट्स" बाल्टी में अलग से संग्रहित हो जाती हैं)। जैसा कि आप जानते होंगे, इस टाइमलाइन-बाल्टी में "पहली" नाम की एक कुंजी होनी चाहिए, जो नवीनतम टाइमलाइन-ऑब्जेक्ट से जुड़ा हुआ है और सूची का प्रारंभिक बिंदु है। टाइमलाइन में एक नया ट्वीट डालने के लिए, टाइमलाइन बाल्टी में बस एक नया आइटम डालें, इस "नई" -लिंक को "पहले" -लिंक को "पहले" -इटम पर सेट करें, उसके बाद, नया आइटम "पहले" बनाएं।
संक्षेप में: एक आइटम सम्मिलित करें के रूप में आप एक लिंक्ड सूची में करना होगा ...
चहचहाना के साथ के रूप में, व्यक्तिगत समय सिर्फ 20 ट्वीट्स उपयोगकर्ता को दिखाया आयोजित करता है। अंतिम 20 ट्वीट प्राप्त करने के लिए, केवल 2 प्रश्न आवश्यक हैं। चीजों को गति देने के लिए, पहली क्वेरी "अगली" द्वारा टैग की गई नवीनतम 20 वस्तुओं को प्राप्त करने के लिए रीक की लिंक-चलने की क्षमता का उपयोग करती है। आखिरकार, दूसरी और आखिरी क्वेरी ट्वीट्स प्राप्त करने के लिए पहली क्वेरी द्वारा गणना की गई कुंजी का उपयोग करती है (मानचित्र/कम करने का उपयोग करके)।
आपके द्वारा अभी तक खोले गए उपयोगकर्ताओं की ट्वीट्स को निकालने के लिए, मैं संबंधित टाइमलाइन-ऑब्जेक्ट्स/ट्वीट्स प्राप्त करने के लिए Riak 1.0 की द्वितीयक अनुक्रमणिका क्षमता का उपयोग करूंगा।
चूंकि रीक 1.4 सॉर्टिंग और पेजिनेशन माध्यमिक इंडेक्स के साथ उपलब्ध है: http://basho.com/basho-announces- उपलब्धता-of-riak-1-4/ – nacmartin