वर्तमान में हम अपने mssql सर्वर आधारित समाधान के साथ संसाधनों के किनारे पर चल रहे हैं।
लोड से निपटने के लिए अगले कदम के बारे में अब हमारे पास कई पारंपरिक विकल्प हैं:
- तेजी से सीपीयू और आईओ खरीदें
- सर्वर को अलग करने के लिए कुछ ग्राहकों को विभाजित करें
- क्लस्टर के लिए db ले जाएँ
सभी या तो लाइसेंस और हार्डवेयर या समय के मामले में महंगे हैं। इसलिए, मैं पूरे सिस्टम को एक स्केलेबल समाधान में स्थानांतरित करके एक और विकल्प जोड़ना चाहता हूं जो nosql इंजन कैसेंड्रा वादा करता है।
फिर भी, मुझे यकीन नहीं है और noSQL डेटाबेस के साथ अनुभव नहीं किया गया है, इसलिए मुझे "असंरचित" डेटा की संरचना को समझने की आवश्यकता है।
हमारे आवेदन में, हम मूल रूप से "कुंजी-मूल्य" सूची के रूप में उपयोगकर्ताओं द्वारा दर्ज किए गए डेटा को संग्रहीत करते हैं। एक पेरेंट टेबल होती है, जिसमें हेड एलिमेंट होता है (ऑर्डर की तरह) और इसमें एक चाइल्ड टेबल होती है जिसमें की-वैल्यू पेयर होते हैं, जिसमें ऑर्डर के कंटेंट होते हैं (जैसे कि ऑर्डर_Lines)।
व्यापार-वार, ऑर्डर और ऑर्डरलाइन एक इकाई हैं। लेकिन RDBMS के कारण, उन्हें तालिकाओं में संग्रहीत किया जाता है और उन्हें हर समय शामिल होना चाहिए।
संचालन के दौरान, हम कभी-कभी केवल शीर्ष भाग को लोड करने के लिए चुनते हैं, लेकिन अधिकांश समय, हम कुछ उपयोगी जानकारी प्रदर्शित करने के लिए शीर्ष पंक्ति + कुछ KVP लोड करते हैं।
उदाहरण के लिए, एक अवलोकन सूची में, हम प्रत्येक पंक्ति के लिए कॉलम में हेड आइडेंटिफ़ायर + कुछ मान दिखाते हैं।
अद्यतन: हम किसी भी प्रकार के रूपों को संग्रहीत करते हैं। इसलिए, मूल रूप से हम "दस्तावेज़" संग्रहीत करते हैं। फिर भी, हमें इन रूपों के माध्यम से किसी भी मूल्य, सॉर्ट आदि के माध्यम से तैयार करना और खोजना है। डेटा एक्सेस कंट्रोल डेटाबेस पर एक और परत की समानता जोड़ता है।
जैसा कि आप अनुमान लगा सकते हैं, कुछ केवीपी की राशि और उपलब्धता वस्तु से वस्तु में भिन्न होती है। प्रत्येक प्रकार की वस्तु के लिए सिंगल टेबल बनाने की कोई वैध संभावना नहीं है क्योंकि हमें विभिन्न डेटा संयोजनों के लिए हजारों टेबल बनाने होंगे।
क्या इस तरह के "डिक्शनरी" जैसे डेटासेट को नो एसक्यूएल डेटाबेस में बेहतर संग्रहित किया जा सकता है? और क्या इससे हमें प्रदर्शन लाभ होगा? क्या कैसेंड्रा इन सिर + केवीपी को एक डेटासेट के रूप में मॉडल करेगा? कैसंड्रा वेबपेज और कुछ ट्यूटोरियल्स को देखते हुए, मुझे यह आभास होता है, कि डेटा संगठन के मामले में हमारे RDBMS और कैसेंड्रा के बीच इतना अंतर नहीं है - यदि आप अपने KVP को चुनना चाहते हैं, तो हमें उतनी ही बड़ी राशि के साथ छोड़ना होगा। प्रत्येक पंक्ति के लिए एक सूची के लिए।
प्रबोधन का स्वागत है, कागजों की ओर इशारा करते हुए यह भी बताया कि मुद्दे ठीक हैं।