TimesTen एक Oracle उत्पाद है जिसमें Oracle डेटाबेस के परफॉरमेंस को काफी हद तक बढ़ाने की क्षमता है।
मेमोरी के लिए ऑप्टिमाइज़्ड होने के अलावा, TimesTen हाई थ्रूपुट भी प्रदान करता है, स्थायित्व सुनिश्चित करता है और स्केल करने की क्षमता प्रदान करता है। ये सब न्यूनतम रिस्पांस टाइम प्रदान करते हुए, विशेष रूप से उन एप्लिकेशन के लिए जिनका परफॉरमेंस पर महत्वपूर्ण निर्भरता है। पारंपरिक डेटाबेस के विपरीत, TimesTen पूरी तरह से RAM में रहकर हाई एफिशिएंसी प्रदान करता है।
TimesTen का इतिहास
- 1994 में HP Labs में आविष्कृत
- HP के Open Call सॉल्यूशन में एम्बेडेड
- 1996 में VC फंडेड स्टार्टअप के रूप में स्पिन ऑफ
- हजारों प्रोडक्शन कस्टमर
- 2005 में Oracle Corporation द्वारा अधिग्रहित
- 2005 के बाद से 3 प्रमुख रिलीज़: 6.0, 7.0, 11gR2, 18c रिलीज़ 1
Oracle TimesTen का अवलोकन
Oracle TimesTen In-Memory Database एक इन-मेमोरी, रिलेशनल डेटाबेस मैनेजमेंट सिस्टम है जिसमें पर्सिस्टेंस और हाई अवेलेबिलिटी है। मूल रूप से कैलिफोर्निया के पालो अल्टो में हेवलेट-पैकार्ड लैब्स में डिज़ाइन और कार्यान्वित किया गया, TimesTen 1996 में एक अलग स्टार्टअप के रूप में स्पिन आउट हुआ और 2005 में Oracle Corporation द्वारा अधिग्रहित किया गया।
TimesTen डेटाबेस में हाई पर्सिस्टेंस और अवेलेबिलिटी है। यह एक इन-मेमोरी डेटाबेस होने के कारण बहुत कम लेटेंसी और हाई थ्रूपुट प्रदान करता है। अन्य विशेषताओं में JDBC और ODBC जैसे स्टैंडर्ड रिलेशनल डेटाबेस APIs शामिल हैं। TimesTen का उपयोग न केवल स्टैंडअलोन इन-मेमोरी डेटाबेस के रूप में किया जा सकता है, बल्कि यह अन्य रिलेशनल डेटाबेस में कैश के रूप में उपयोग किए जाने की उपयोगिता भी प्रदान करता है, जिसमें Oracle Database भी शामिल है। इसका उपयोग अक्सर अत्यधिक हाई वॉल्यूम OLTP एप्लिकेशन में किया जाता है, जिसमें फाइनेंशियल ट्रेडिंग और टेलीकॉम बिलिंग शामिल हैं।
TimesTen डिस्क पर डेटा कैसे स्टोर करता है
प्रत्येक TimesTen डेटा स्टोर में ठीक दो चेकपॉइंट फाइलें होती हैं। डिफ़ॉल्ट रूप से हर 10 मिनट में एक चेकपॉइंट कहा जाता है; यह डर्टी मेमोरी पेज को पहली चेकपॉइंट फाइल में लिखता है, और फिर अगला चेकपॉइंट दूसरी चेकपॉइंट फाइल का उपयोग करता है। राइट ट्रांजैक्शन पहले इन-मेमोरी बफर में रखे जाते हैं, फिर लॉग फाइल में फ्लश किए जाते हैं।
दो प्रकार के ट्रांजैक्शनल लॉगिंग:
1. बफर्ड लॉगिंग:
(स्पीड: फास्ट, ड्यूरेबिलिटी: गुड) ट्रांजैक्शन पहले इन-मेमोरी लॉग बफर में सेव किए जाते हैं। जब बफर भर जाता है, तो इसे बैकग्राउंड में डिस्क पर फ्लश किया जाता है। प्रोसेस बहुत तेज है (5000 TPS या अधिक)। यदि क्रैश होने से पहले बफर फ्लश नहीं होता है तो ट्रांजैक्शन खोने की थोड़ी संभावना होती है। कस्टमर लॉग बफर का आकार कॉन्फ़िगर कर सकता है।
2. ड्यूरेबल कमिट
(स्पीड: स्लो, ड्यूरेबिलिटी: एक्सीलेंट) हर ट्रांजैक्शन को तुरंत डिस्क पर फ्लश किया जाता है। इसकी स्पीड डिस्क डिवाइस की स्पीड पर निर्भर करती है। चूंकि हर ट्रांजैक्शन डिस्क पर सेव होता है, यह बहुत ड्यूरेबल है।
कस्टमर किसी भी समय ttDurableCommit() नामक SQL फंक्शन को कॉल करके BUFFERED LOGGING से DURABLE COMMIT पर स्विच कर सकता है। कस्टमर रनटाइम पर ड्यूरेबिलिटी बनाम परफॉरमेंस को फ्लेक्सिबली कंट्रोल कर सकता है, जो पारंपरिक RDBMS के साथ संभव नहीं है।
इन-मेमोरी डेटाबेस कैश + Oracle Database के साथ महत्वपूर्ण रिस्पांस टाइम सुधार
उपरोक्त ग्राफ 7 ट्रांजैक्शन प्रकारों में से प्रत्येक के लिए मापा गया औसत ट्रांजैक्शन रिस्पांस टाइम दिखाता है।
लाल बार TimesTen IMDB में डेटा कैश होने पर प्राप्त रिस्पांस टाइम हैं। यह एप्लिकेशन डेटाबेस ऑपरेशन के लिए एक बड़ा सुधार है। याद रखें कि Oracle डेटाबेस पर रिस्पांस टाइम का एक अच्छा हिस्सा क्लाइंट-सर्वर कनेक्शन और नेटवर्क राउंडट्रिप के कारण होता है, जो तब मौजूद नहीं होता जब एप्लिकेशन सीधे मेमोरी में TimesTen डेटाबेस से लिंक होता है। एप्लिकेशन TCP/IP क्लाइंट/सर्वर के माध्यम से भी TimesTen से कनेक्ट कर सकते हैं।
TimesTen डेटाबेस बनाना
DSN परिभाषित करें
- DataStore एट्रिब्यूट: डेटाबेस की चेकपॉइंट फाइलों के डायरेक्टरी नाम को निर्दिष्ट करता है, उदाहरण:
DataStore=/data/TTDEMO/TTDEMO-DSN1/TTDEMO-DSN1 - LogDir एट्रिब्यूट: ट्रांजैक्शन लॉग फाइलों के लिए डायरेक्टरी नाम निर्दिष्ट करता है। ट्रांजैक्शन लॉग में प्रत्येक डेटाबेस अपडेट, कमिट और रोलबैक के लिए लॉग रिकॉर्ड होते हैं
- DatabaseCharacterSet एट्रिब्यूट: कैरेक्टरसेट जिसमें डेटा स्टोर किया जाता है। लॉजिकली दो अलग-अलग मेमोरी क्षेत्रों में विभाजित
- डेटाबेस मेमोरी क्षेत्र:
- परमानेंट क्षेत्र - PermSize DSN एट्रिब्यूट इसका आवंटित आकार कॉन्फ़िगर करता है। - क्षेत्र लगातार डेटाबेस एलिमेंट स्टोर करता है (उदाहरण: टेबल, इंडेक्स) - क्षेत्र चेकपॉइंट ऑपरेशन के दौरान डिस्क पर लिखा जाता है। - टेम्पररी क्षेत्र - TempSize DSN एट्रिब्यूट इसका आवंटित आकार कॉन्फ़िगर करता है - क्षेत्र स्टेटमेंट निष्पादित करते समय उत्पन्न ट्रांजिएंट डेटा और जानकारी स्टोर करता है (टेम्प टेबल, स्टोर्ड रिजल्ट सेट..) - जब इंस्टेंस एडमिनिस्ट्रेटर डेटाबेस से कनेक्ट होता है तो डेटाबेस ऑटोमैटिकली बन जाएगा
$ttisql <DSN name>
- Ttisql यूटिलिटी सर्वर DSN से सीधे कनेक्ट होती है और ttIsqlCS यूटिलिटी TimesTen क्लाइंट DSNs से कनेक्ट होती है।
$ttisql connStr "DSN=TTDEMO-DSN1;UID=timesten;pwd=timesten"
- RAM Policy: निर्धारित करता है कि डेटाबेस कब मेमोरी में लोड और अनलोड होता है।
inUse: डेटाबेस मेमोरी में है यदि यह उपयोग में है (डिफ़ॉल्ट पॉलिसी)।
always: डेटाबेस हमेशा मेमोरी में रेजिडेंट रहता है।
manual: डेटाबेस मैन्युअली मेमोरी में लोड और अनलोड होता है।
इन-मेमोरी डेटाबेस कैश
• एप्लिकेशन टियर में Oracle डेटाबेस टेबल्स को कैश करें
- व्यक्तिगत टेबल्स और संबंधित टेबल्स को कैश करें
- सभी या रो और कॉलम के सबसेट को कैश करें
• रीड-ओनली और अपडेटेबल कैश डेटाबेस
- रेगुलर SQL डेटाबेस टेबल्स की तरह कैश्ड टेबल्स को एक्सेस करें
- जॉइन/सर्च, इंसर्ट/अपडेट/डिलीट
• ऑटोमैटिक डेटा सिंक्रोनाइज़ेशन
- TimesTen से Oracle
- Oracle से TimesTen
Oracle IMDB Cache
कैश ग्रुप क्या है?
TimesTen डेटाबेस में बनाए गए कैश्ड टेबल्स का एक सेट जो Oracle Database में टेबल्स से मेल खाता है
रीड-ओनली कैश ग्रुप
रीड ऑपरेशन TimesTen में किए जाते हैं
राइट ऑपरेशन Oracle को पास किए जाते हैं और ऑटोमैटिकली TimesTen पर रीफ्रेश होते हैं
Oracle में Cache Connect यूजर को अपने Oracle डेटाबेस के सबसेट को TimesTen में कैश करने में सक्षम बनाता है ताकि अक्सर एक्सेस किए जाने वाले डेटा के लिए बेहतर रिस्पांस टाइम और थ्रूपुट प्रदान किया जा सके।
आप पूरी टेबल्स, रो के सबसेट, या कॉलम के सबसेट को कैश कर सकते हैं। कैश रीड-ओनली या अपडेटेबल हो सकता है। यदि डेटा TimesTen डेटाबेस के अंदर अपडेट किया जाता है, तो अपडेट सिंक्रोनस राइट-थ्रू या एसिंक्रोनस राइट-थ्रू के माध्यम से Oracle डेटाबेस में प्रचारित होते हैं। आपके पास एक ही Oracle DB से कैशिंग करने वाले कई कैश इंस्टेंस हो सकते हैं; प्रत्येक कैश इंस्टेंस का अपना अलग कैश्ड कंटेंट सेट हो सकता है।
IMDB Cache एडमिनिस्ट्रेशन और बेस्ट प्रैक्टिस
- Oracle और TimesTen दोनों डेटाबेस में वन-टाइम कैश सेटअप (प्रति इम्प्लीमेंटेशन डॉक्यूमेंट)
- कैश एजेंट रीस्टार्ट पॉलिसी सेट करें: मैन्युअल, ऑलवेज, नोरीस्टार्ट
- AUTOREFRESH अंतराल निर्दिष्ट करें
- कैश ग्रुप में Oracle टेबल्स पर INSERT, UPDATE, और DELETE ट्रिगर बनाता है
- ट्रिगर एक छोटी रो को लॉगिंग टेबल में इन्सर्ट करता है जिसे TimesTen Oracle में रखता है
- TimesTen एजेंट इस टेबल को क्वेरी करता है और आपके द्वारा निर्दिष्ट अंतराल में डेटा को रीफ्रेश करता है • Oracle में डेटा डेफिनिशन परिवर्तनों के लिए LOAD, UNLOAD, FLUSH, REFRESH CACHE GROUPS की आवश्यकता होगी
निष्कर्ष
TimesTen एक इन-मेमोरी रिलेशनल डेटाबेस है जो SQL ऑपरेशन के लिए बहुत कम लेटेंसी और अत्यधिक हाई थ्रूपुट प्रदान करता है जबकि स्टैंडर्ड APIs के माध्यम से स्टैंडर्ड रिलेशनल डेटाबेस फंक्शनलिटी प्रदान करता है। इसे स्टैंडअलोन डेटाबेस के रूप में या Oracle Database के लिए हाई-परफॉरमेंस रिलेशनल कैश के रूप में तैनात किया जा सकता है।