मैं सत्र संबंधी सूचनाओं को संग्रहीत करने के लिए कैसंद्रा का उपयोग करना चाहता हूं। मेरे पास असली HTTP सत्र नहीं है - यह अलग प्रोटोकॉल है, लेकिन एक ही अवधारणा है।भारी लोड के तहत सत्र स्टोर के रूप में कैसंद्रा
मेमकैड ठीक होगा, लेकिन मैं अतिरिक्त रूप से डेटा जारी रखना चाहता हूं।
कैसेंड्रा स्थापना:
- गैर दोहराया कुंजी अंतरिक्ष
- एकल स्तंभ परिवार, जहां कुंजी सत्र आईडी और पंक्ति भंडार के भीतर प्रत्येक स्तंभ है एक कुंजी/मान - (
Map<String,Set<String,String>>
) - स्तंभ टीटीएल = 10 मिनट
- लिखने सीएल = एक
- 2.000 = एक
- सीएल पढ़ा लिखते हैं/एस
- 5.000 पढ़ता/एस
डेटा का उदाहरण:
session1:{ // CF row key
{prop1:val1, TTL:10 min},
{prop2:val2, TTL:10 min},
.....
{propXXX:val3, TTL:10 min}
},
session2:{ // CF row key
{prop1:val1, TTL:10 min},
{prop2:val2, TTL:10 min},
},
......
sessionXXXX:{ // CF row key
{prop1:val1, TTL:10 min},
{prop2:val2, TTL:10 min},
}
इस मामले स्थिरता में एक समस्या नहीं है, लेकिन प्रदर्शन हो सकता है, विशेष रूप से डिस्क आईओ।
चूंकि मेरे सत्र में डेटा कम समय के लिए छोड़ देता है, इसलिए मैं इसे हार्ड ड्राइव पर संग्रहीत करना चाहता हूं - प्रतिबद्ध लॉग को छोड़कर। स्तंभ SSTable को यह निस्तब्धता से पहले Memtable में समाप्त हो जाता है
- , कैसेंड्रा वैसे भी SSTable (HDD करने के लिए इसे फ्लश) में इस तरह के कॉलम स्टोर करेगा:
मैं कुछ प्रश्न हैं?
- मेरी कुंजी स्पेस के लिए प्रतिकृति अक्षम है, इस मामले में एसएसटीबल में इस तरह के समाप्त कॉलम को संग्रहीत करना आवश्यक नहीं होगा, है ना?
- प्रत्येक सीएफ टोपी अधिकतम 10 कॉलम। ऐसे मामले में मैं पंक्ति कैश सक्षम करता हूं और कुंजी कैश अक्षम करता हूं। लेकिन मुझे उम्मीद है कि मेरे डेटा को अभी भी मेमटेबल में उपलब्ध होने की उम्मीद है, इस मामले में मैं पूरे कैश को अक्षम कर सकता हूं, है ना? इस तरह के सत्र-स्टोर उपयोग के मामले के लिए
- किसी भी कैसेंड्रा विन्यास संकेत वास्तव में सराहना किया जाएगा :)
धन्यवाद, मेसिएज
आप कहते हैं कि आप डेटा जारी रखना चाहते हैं, लेकिन 10 मिनट के बाद भी टीटीएल करना चाहते हैं। – sdolgy
यह महत्वपूर्ण प्रक्रिया है और मैं यह सुनिश्चित करना चाहता हूं कि –