मुझे लगता है कि यह समस्या कैसंड्रा-उपयोगकर्ता मेलिंग सूची पर सबसे अच्छी तरह से ली गई है; वह जगह है जहां लोग हैं।
कैसंड्रा में स्वचालित लोड संतुलन अभी तक नहीं है लेकिन यह बहुत दूर-दूर के भविष्य में ऐसा कर सकता है। 0.5 शाखा अब इस में सक्षम हो सकती है।
अनिवार्य रूप से जब आप पहले से चल रहे सिस्टम पर एक नोड बूटस्ट्रैप करते हैं, तो उसे अंगूठी में एक स्थान मिलना चाहिए जो संतुलन को सबसे अच्छा लोड करेगा और खुद को वहां रखेगा। बशर्ते आप एक समय में नोड्स जोड़ें (यानी एक नोड को दूसरे जोड़ने से पहले बूटस्ट्रैपिंग को समाप्त करने के लिए प्रतीक्षा करें), जो कि बहुत अच्छी तरह से काम करना चाहिए, बशर्ते आपका मुख्य वितरण समय के साथ बहुत अधिक न हो।
हालांकि, आपकी चाबियाँ समय के साथ बदल सकती हैं (विशेष रूप से यदि वे समय-आधारित हैं) ताकि आप एक कामकाज चाहें।
यह उस चीज़ पर निर्भर करता है जिसे आप श्रेणीबद्ध करना चाहते हैं-स्कैन करें। यदि आपको केवल कुंजी के भाग स्कैन करने की आवश्यकता है, तो आप उस बिट को हश कर सकते हैं जिसे आप स्कैन नहीं करना चाहते हैं, और कुंजी के पहले भाग के रूप में इसका उपयोग करें।
मैं कुंजी का हिस्सा उल्लेख करने के लिए शब्द "विभाजन" यहाँ का उपयोग करेंगे आप अगर आप किसी दिए गए विभाजन के भीतर कुंजी स्कैन लेकर करना चाहते लेकर स्कैन
function makeWholeKey(partition, key) {
return concat(make_hash(partition), partition, key);
}
अब नहीं करना चाहते , आप makeWholeKey (पी, स्टार्ट) और makeWholeKey (पी, एंड)
के बीच स्कैन रेंज कर सकते हैं लेकिन यदि आप विभाजन को स्कैन करना चाहते हैं, तो आप भाग्य से बाहर हैं।
लेकिन आप अपने नोड्स को टोकन बना सकते हैं जो मेक_शैश() आउटपुट की सीमा के आसपास समान रूप से वितरित किए जाते हैं, और आपको समान रूप से वितरित डेटा मिल जाएगा (मान लें कि आपके पास एनओयूजीई विभाजन हैं जो यह सभी एक पर नहीं बढ़ते हैं या दो हैश मान)
मुझे इस ब्लॉग http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/ – deepblue