2011-08-28 9 views
5

यहां परिदृश्य है: एक साधारण वेबसाइट जो एक memcached कैश से पूछताछ करता है। वही कैश हर 10-15 मिनट में एक बैच नौकरी द्वारा अद्यतन किया जाता है। उस पैटर्न के साथ कुछ भी गलत हो सकता है (उदाहरण के लिए कैश मिस)?मेमकैड - क्या जीईटी और एसईटी ऑपरेशंस परमाणु हैं?

मैं होने वाली सभी संभावित रेसिंग स्थिति से चिंतित हूं। उदाहरण के लिए, यदि वेबसाइट मेमकैच में कैश किए गए ऑब्जेक्ट पर जीईटी ऑपरेशन करती है, जबकि बैच जॉब द्वारा उसी ऑब्जेक्ट को ओवरराइड किया जाता है, तो क्या होगा?

उत्तर

6

मेरा प्रारंभिक वृत्ति यह था कि आप किसी भी दुष्प्रभाव के साथ एक ज्ञात कैश से पढ़ने/लिखने में सक्षम होना चाहिए (दौड़ की स्थिति के कारण बालों के डेटा की संभावना के अलावा)।

memcached का सामान्य प्रश्न पर:

परमाणु memcached है? किसी भी बग के अलावा आप आ सकते हैं, हां सभी कमांड आंतरिक रूप से परमाणु हैं। पर एक ही समय में एकाधिक सेट जारी करने से कोई बुरा प्रभाव नहीं पड़ता है, पिछले एक के अलावा स्टिक।

अपने विशिष्ट स्थिति के बारे में अधिक जानने के बिना

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

2

यहां परिदृश्य है: एक साधारण वेबसाइट जो एक मेमकैच कैश से पूछताछ करती है। वही कैश हर 10-15 मिनट में एक बैच नौकरी द्वारा अद्यतन किया जाता है। उस पैटर्न के साथ कुछ भी गलत हो सकता है (उदाहरण के लिए कैश मिस)?

ध्यान रखें कि memcached गारंटी नहीं है कि डेटा में संग्रहीत हमेशा कैश में रहेगी रखें (, उदा,, यह एक कैश, नहीं एक डेटाबेस है)। यदि आप अन्य डेटा के लिए memcached का उपयोग कर रहे हैं, तो बैच नौकरी पुन: दर्ज करने से पहले इस क्वेरी के परिणाम कैश से निकाल दिए जा सकते हैं।

2

यदि आपको डेटा प्राप्त होता है, तो यह आपके द्वारा संग्रहीत नवीनतम डेटा होगा।

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

संबंधित मुद्दे