2010-08-26 8 views
10

में सभी उपयोगकर्ताओं को कैशिंग करना ISP.NET/C# में एक वेब ऐप पर काम कर रहा है जिसे उच्च उपयोगकर्ता लोड को संभालने के लिए स्केलेबल होने की आवश्यकता है (शायद वेब फार्म में चलाया जाएगा)। चूंकि यह उपयोगकर्ताओं की एक बड़ी संख्या को लगभग 1 मिलियन प्लस तक पूरा करेगा, लेकिन ऑनलाइन उपयोगकर्ताओं की संख्या लगभग 30 के -50 के आसपास होगी। मैं कैशिंग (प्रदाता आधारित) उपयोग करने की योजना है, और सोच रहा था:ASP.NET

  1. यह एक अच्छा विचार प्रदर्शन के लिए सभी उपयोगकर्ताओं को कैश करने के है? मैं सेटिंग्स आदि जैसे सभी अन्य सामान्य डेटा को कैश करने की योजना बना रहा हूं, लेकिन सभी उपयोगकर्ताओं को स्मृति में कैश करना कितना कुशल होगा? यदि कोई उपयोगकर्ता अपनी प्रोफ़ाइल बदलता है, तो मैं केवल उस विशेष उपयोगकर्ता को कैश में पुनः लोड कर दूंगा (सभी उपयोगकर्ताओं का संग्रह)। इस दृष्टिकोण पर कोई सुझाव?

  2. क्या मुझे इस उपरोक्त उपयोगकर्ताओं के कैश का उपयोग करते समय लॉक करने के बारे में चिंता करने की ज़रूरत है? प्रोफ़ाइल का केवल एक ही संपादन उपयोगकर्ता ही होगा, यह एक परमाणु ऑपरेशन होगा, हालांकि विभिन्न धागे में कई पढ़ने के लिए ओपेरेशन होंगे। तो उपयोगकर्ताओं को कैश से लाने, या एक कण उपयोगकर्ता को अद्यतन करते समय, क्या मुझे ताला का उपयोग करना चाहिए?

धन्यवाद

आसिफ

उत्तर

6

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

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

कैशिंग जटिलता बढ़ जाती है, और यहां तक ​​कि एक वेब फार्म में भी। जब तक आपको पूरी तरह से आवश्यकता न हो, अनावश्यक जटिलता को पेश न करें। रुको जब तक आप इसे हल करने के लिए प्रयास करने से पहले एक वास्तविक प्रदर्शन समस्या है।

0

कैशिंग उपयोगकर्ताओं शायद एक अच्छा विचार है। लेकिन यह इस बात पर निर्भर करता है कि आप प्रत्येक उपयोगकर्ता के लिए कितना डेटा कैश करने जा रहे हैं, और जहां भी इसे संग्रहीत किया जाता है, उस डेटा को पुनर्प्राप्त करने की लागत।

लॉकिंग के लिए - क्या कोई और उपयोगकर्ता की प्रोफ़ाइल संपादित कर सकता है (जैसे admininstrator)? क्या यह एक आम घटना होगी? यदि ऐसा है, तो आप कुछ लॉकिंग करना चाह सकते हैं। अन्यथा, अगर उपयोगकर्ता केवल अपनी सामग्री संपादित कर सकता है, तो मैं परेशान नहीं होगा।