2012-12-07 11 views
5

मैं जावा वेब एप्लिकेशन को आर्किटेक्ट करने वाली एक टीम का हिस्सा हूं जिसमें उपयोगकर्ता एक रिलेशनल डेटाबेस में परिणाम खोजेंगे और फिर उन्हें ब्राउज़र में टैब्यूलर फैशन में देखेंगे। इसके बाद उपयोगकर्ताओं को एक अलग ब्राउज़र विंडो में एक ही परिणाम सेट (या उन परिणामों का एक सबसेट) देखने के लिए विकल्प होगा, उदाहरण के लिए एक चार्टिंग टूल का उपयोग करना। दूसरे शब्दों में, हमें उपयोगकर्ता को बाद में उसी परिणाम सेट रिकॉर्ड (24 घंटे की सीमा तक) को देखने की क्षमता प्रदान करने की आवश्यकता है।डेटाबेस क्वेरी परिणाम परिणाम कैशिंग के लिए अच्छा डिज़ाइन पैटर्न की आवश्यकता है

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

मेरा मानना ​​है कि यह जावा ऑब्जेक्ट्स के रूप में बने रहने के लिए सबसे अधिक समझ में आता है लेकिन मैं बेहतर सलाह के लिए खुला हूं। हम एक विक्रेता-तटस्थ दृष्टिकोण चाहते हैं, ताकि यदि डेटाबेस टीम विक्रेताओं को बाद में स्विच करने का विकल्प चुनती है तो हम मालिकाना समाधान से फंस नहीं जाते हैं। धन्यवाद।

+3

आह पाठ दीवार। कृपया खूनी आंखों को रोकने के लिए कम से कम प्रारूप – thatidiotguy

+0

यदि आप अपना प्रश्न स्वरूपित करते हैं और इसे यथासंभव सरल और बिंदु बनाते हैं तो आपको बेहतर परिणाम मिलेंगे .. –

+0

कृपया इसे और अधिक पठनीय बनाने के लिए अपनी पोस्ट संपादित करें ... –

उत्तर

1

मैंने देखा है कि http://www.jboss.org/infinispan/ बिल्कुल ऐसा करने के लिए उपयोग किया जाता है। यह स्मृति, डिस्क और डेटाबेस को कैश कर सकता है। मैं नहीं कहूंगा कि मैं इसे प्यार करता हूं (कॉन्फ़िगरेशन बहुत आसान नहीं है और दस्तावेज़ीकरण में कुछ कमी है) लेकिन यह निश्चित रूप से काम करता है और सक्रिय रूप से बनाए रखा जाता है।

1

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

कैश करने के कई तरीके हैं। विभिन्न नोएसक्ल समाधान का उपयोग करने में देखो।

अधिकांश समय आप अपनी वस्तु को क्रमानुसार और यह अपने कैश परत को बना रहेगा।

4

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

+0

एह कैश बहुत प्यारा है। मेरा अनुभव 'बस काम करता है।' –

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