Monday, 15 March 2010

mongodb - How express-session manages its session storage? -


मान लें कि मेरा node.js + express + सॉकेट.ओ सर्वर एक्सप्रेस-सत्र मध्यवर्ल्ड के साथ mongoDB का उपयोग कर रहा है 'connect-mongo' ) के साथ सत्र का maxAge नल पर सेट होता है (अर्थात कुकी का उपयोग उपयोगकर्ता के ब्राउज़र के रूप में तब तक चलता रहता है), और अब यह सर्वर पूरी तरह से नीचे है।

युग एक नई सदी से गुजर रहा है, जबकि धरती लाश , वेयरवोल्फ्स और विदेशी आक्रमणकारियों , बेहद बहादुर वैज्ञानिकों का एक गुच्छा अपने सर्वर के अखंड अवशेषों को खोजते हैं और उन्हें बूट करते हैं।

इसलिए, इस समय तक कई (यदि हर नहीं) क्लाइंट के ब्राउज़र्स बंद हो गए और कुकीज साफ़ हो गई । यदि उन ग्राहकों में से एक मेरे सर्वर से कनेक्ट होगा, तो सर्वर पता लगाएगा कि वह (ग्राहक) किसी भी वैध कुकी को प्रस्तुत नहीं करेगा और उसके लिए एक नया होगा।

अब - जिस भाग में मुझे दिलचस्पी है - उन पुरानी सत्रों में संग्रहीत कनेक्ट-मांगो भंडारण के साथ क्या होता है। जाहिर है, सर्वर डाउन होने के दौरान उन्हें साफ करने में सक्षम नहीं था, और अब वे सिर्फ डीबी स्टोरेज में मृत कार्गो के रूप में लटकाएंगे? या उसके पीछे कुछ दिमाग वाला जादू है, जो कि सर्वर रिबूट के बाद, किसी तरह 'पता' होगा कि वे उपयोगकर्ता अपने सत्र समाप्त हो चुके हैं, जबकि सर्वर नीचे था और तदनुसार सब कुछ साफ कर देगा?

एक्सप्रेस-सत्र इसके स्टोर के लिए किसी भी क्लीन अप व्यवहार को लागू नहीं करता है (कम से कम मुझे कोई भी दिखाई नहीं देता उसमें का सबूत) हालांकि, स्टोर निश्चित तौर पर पुराने सत्र को साफ कर सकते हैं उदाहरण के लिए:

डिफ़ॉल्ट रूप से, कनेक्ट-मोंगो मोंगोडीबी की टीटीएल संग्रह सुविधा (2.2+) का इस्तेमाल करता है ताकि स्वचालित रूप से समय समाप्त हो चुके सत्रों को हटाया जा सके। लेकिन आप इस व्यवहार को बदल सकते हैं।


No comments:

Post a Comment