अनुकूली प्रतिस्थापन कैश: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
एडेप्टिव रिप्लेसमेंट कैश (एआरसी) [[ पृष्ठ प्रतिस्थापन एल्गोरिथ्म |पृष्ठ प्रतिस्थापन एल्गोरिथ्म]] है
अनुकूली प्रतिस्थापन कैश (एआरसी) एलआरयू (कम से कम वर्तमान में उपयोग किए गए) की तुलना में श्रेष्ठ प्रदर्शन<ref>One Up on LRU, [https://www.usenix.org/publications/login/august-2003-volume-28-number-4/one-lru Usenix :login; August 2003]</ref> के साथ एक [[ पृष्ठ प्रतिस्थापन एल्गोरिथ्म |पृष्ठ प्रतिस्थापन एल्गोरिथ्म]] है। यह अधिकांश उपयोग किए जाने वाले और वर्तमान में उपयोग किए गए पृष्ठों के साथ-साथ दोनों के लिए वर्तमान में निष्कासन इतिहास का ट्रैक रखने के द्वारा पूरा किया जाता है। एल्गोरिथम<ref>[[Nimrod Megiddo]] and [[Dharmendra Modha]],  [https://web.archive.org/web/20100329071954/http://www.almaden.ibm.com/StorageSystems/projects/arc/ 2010-03-09 archive of the ARC home page], with pointers to several articles</ref> आईबीएम [[अल्माडेन रिसर्च सेंटर]] में विकसित किया गया था। 2006 में आईबीएम को [https://web.archive.org/web/20170624055115/http://patft1.uspto.gov/netacgi/nph-Parser?patentnumber=6996676 अनुकूली प्रतिस्थापन कैश नीति के लिए पेटेंट] प्रदान किया गया था।
बेहतर प्रदर्शन<ref>One Up on LRU, [https://www.usenix.org/publications/login/august-2003-volume-28-number-4/one-lru Usenix :login; August 2003]</ref> [[कैश एल्गोरिदम]] की तुलना में (कम से कम हाल ही में उपयोग किया गया)। यह अक्सर उपयोग किए जाने वाले और हाल ही में उपयोग किए गए पृष्ठों के साथ-साथ दोनों के लिए हाल ही में निष्कासन इतिहास का ट्रैक रखने के द्वारा पूरा किया जाता है। एल्गोरिदम विकसित किया गया था<ref>[[Nimrod Megiddo]] and [[Dharmendra Modha]],  [https://web.archive.org/web/20100329071954/http://www.almaden.ibm.com/StorageSystems/projects/arc/ 2010-03-09 archive of the ARC home page], with pointers to several articles</ref> आईबीएम [[अल्माडेन रिसर्च सेंटर]] में। 2006 में, IBM को [https://web.archive.org/web/20170624055115/http://patft1.uspto.gov/netacgi/nph-Parser?patentnumber=6996676 अनुकूली प्रतिस्थापन कैश नीति के लिए पेटेंट] दिया गया था।


== सारांश ==
== सारांश ==
बेसिक एलआरयू कैश में संसाधन प्रविष्टियों की आदेशित सूची (कैश निर्देशिका) रखता है, जिसमें सबसे हालिया पहुंच के समय के आधार पर क्रमबद्ध क्रम होता है। नीचे की प्रविष्टि को बेदखल करने के बाद सूची के शीर्ष पर नई प्रविष्टियाँ जोड़ी जाती हैं। कैशे हिट अन्य सभी प्रविष्टियों को नीचे धकेलते हुए शीर्ष पर चले जाते हैं।
बेसिक एलआरयू कैश में संसाधन प्रविष्टियों की आदेशित सूची (कैश निर्देशिका) रखता है, जिसमें सबसे हालिया पहुंच के समय के आधार पर क्रमबद्ध क्रम होता है। नीचे की प्रविष्टि को बेदखल करने के बाद सूची के शीर्ष पर नई प्रविष्टियाँ जोड़ी जाती हैं। कैशे हिट अन्य सभी प्रविष्टियों को नीचे धकेलते हुए शीर्ष पर चले जाते हैं।


एआरसी हाल ही में और अक्सर संदर्भित प्रविष्टियों के लिए कैश निर्देशिका को दो सूचियों, टी 1 और टी 2 में विभाजित करके बुनियादी एलआरयू रणनीति में सुधार करता है। बदले में, इनमें से प्रत्येक को भूत सूची (बी1 या बी2) के साथ विस्तारित किया जाता है, जो दो सूचियों के नीचे से जुड़ी होती है। ये भूत सूचियां हाल ही में निकाले गए कैश प्रविष्टियों के इतिहास का ट्रैक रखकर स्कोरकार्ड के रूप में कार्य करती हैं, और एल्गोरिदम संसाधन उपयोग में हालिया परिवर्तन के अनुकूल होने के लिए घोस्ट हिट का उपयोग करता है। ध्यान दें कि घोस्ट सूचियों में केवल मेटाडेटा (प्रविष्टियों के लिए कुंजियाँ) होते हैं और स्वयं संसाधन डेटा नहीं होते हैं, यानी किसी प्रविष्टि को घोस्ट सूची में बेदखल कर दिया जाता है, इसके डेटा को छोड़ दिया जाता है। संयुक्त कैश निर्देशिका को चार LRU सूचियों में व्यवस्थित किया गया है:
एआरसी वर्तमान में और अधिकांश संदर्भित प्रविष्टियों के लिए कैश निर्देशिका को दो सूचियों, टी 1 और टी 2 में विभाजित करके बुनियादी एलआरयू रणनीति में सुधार करता है। बदले में, इनमें से प्रत्येक को भूत सूची (बी1 या बी2) के साथ विस्तारित किया जाता है, जो दो सूचियों के नीचे से जुड़ी होती है। ये भूत सूचियां वर्तमान में निकाले गए कैश प्रविष्टियों के इतिहास का ट्रैक रखकर स्कोरकार्ड के रूप में कार्य करती हैं, और एल्गोरिदम संसाधन उपयोग में हालिया परिवर्तन के अनुकूल होने के लिए घोस्ट हिट का उपयोग करता है। ध्यान दें कि घोस्ट सूचियों में केवल मेटाडेटा (प्रविष्टियों के लिए कुंजियाँ) होते हैं और स्वयं संसाधन डेटा नहीं होते हैं, यानी किसी प्रविष्टि को घोस्ट सूची में बेदखल कर दिया जाता है, इसके डेटा को छोड़ दिया जाता है। संयुक्त कैश निर्देशिका को चार LRU सूचियों में व्यवस्थित किया गया है:


# T1, हाल की कैश प्रविष्टियों के लिए।
# T1, हाल की कैश प्रविष्टियों के लिए।
# T2, लगातार प्रविष्टियों के लिए, कम से कम दो बार संदर्भित।
# T2, लगातार प्रविष्टियों के लिए, कम से कम दो बार संदर्भित।
# बी 1, हाल ही में टी 1 कैश से बेदखल की गई भूत प्रविष्टियां, लेकिन अभी भी ट्रैक की जाती हैं।
# बी 1, वर्तमान में टी 1 कैश से बेदखल की गई भूत प्रविष्टियां, लेकिन अभी भी ट्रैक की जाती हैं।
# बी2, समान घोस्ट एंट्री, लेकिन टी2 से बेदखल।
# बी2, समान घोस्ट एंट्री, लेकिन टी2 से बेदखल।


T1 और B1 को साथ L1 के रूप में संदर्भित किया जाता है, हाल ही के एकल संदर्भों का संयुक्त इतिहास।
T1 और B1 को साथ L1 के रूप में संदर्भित किया जाता है, वर्तमान के एकल संदर्भों का संयुक्त इतिहास।
इसी तरह, L2 T2 और B2 का संयोजन है।
इसी तरह, L2 T2 और B2 का संयोजन है।


Line 44: Line 43:
[[VMware]] का vSAN (पूर्व में वर्चुअल SAN) VMware द्वारा विकसित हाइपर-कन्वर्ज्ड, सॉफ़्टवेयर-डिफ़ाइंड स्टोरेज (SDS) उत्पाद है। यह अपने कैशिंग एल्गोरिदम में एआरसी के प्रकार का उपयोग करता है। <ref>Reference document, [https://www.storagehub.vmware.com/t/vmware-vsan/vmware-vsan-caching-algorithms/ "VMware vSAN Caching Algorithms"]{{Dead link|date=June 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
[[VMware]] का vSAN (पूर्व में वर्चुअल SAN) VMware द्वारा विकसित हाइपर-कन्वर्ज्ड, सॉफ़्टवेयर-डिफ़ाइंड स्टोरेज (SDS) उत्पाद है। यह अपने कैशिंग एल्गोरिदम में एआरसी के प्रकार का उपयोग करता है। <ref>Reference document, [https://www.storagehub.vmware.com/t/vmware-vsan/vmware-vsan-caching-algorithms/ "VMware vSAN Caching Algorithms"]{{Dead link|date=June 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
[[OpenZFS]] रीड कैश के रूप में बहु-स्तरीय कैश में ARC और L2ARC का उपयोग करने का समर्थन करता है।
[[OpenZFS]] रीड कैश के रूप में बहु-स्तरीय कैश में ARC और L2ARC का उपयोग करने का समर्थन करता है।
OpenZFS में, डिस्क रीड अक्सर ARC का उपयोग करके RAM में प्रथम स्तर के डिस्क कैश को हिट करता है।
OpenZFS में, डिस्क रीड अधिकांश ARC का उपयोग करके RAM में प्रथम स्तर के डिस्क कैश को हिट करता है।
यदि दूसरे स्तर के डिस्क कैश को स्टोर करने के लिए SSD स्थापित किया गया है, तो इसे L2ARC कहा जाता है। L2ARC समान ARC एल्गोरिद्म का उपयोग करता है, लेकिन कैश्ड डेटा को RAM में संग्रहीत करने के बजाय, L2ARC कैश्ड डेटा को तेज़ SSD में संग्रहीत करता है।<ref>
यदि दूसरे स्तर के डिस्क कैश को स्टोर करने के लिए SSD स्थापित किया गया है, तो इसे L2ARC कहा जाता है। L2ARC समान ARC एल्गोरिद्म का उपयोग करता है, लेकिन कैश्ड डेटा को RAM में संग्रहीत करने के बजाय, L2ARC कैश्ड डेटा को तेज़ SSD में संग्रहीत करता है।<ref>
[https://www.45drives.com/community/articles/zfs-caching/ "ZFS Caching"].
[https://www.45drives.com/community/articles/zfs-caching/ "ZFS Caching"].

Revision as of 09:34, 14 June 2023

अनुकूली प्रतिस्थापन कैश (एआरसी) एलआरयू (कम से कम वर्तमान में उपयोग किए गए) की तुलना में श्रेष्ठ प्रदर्शन[1] के साथ एक पृष्ठ प्रतिस्थापन एल्गोरिथ्म है। यह अधिकांश उपयोग किए जाने वाले और वर्तमान में उपयोग किए गए पृष्ठों के साथ-साथ दोनों के लिए वर्तमान में निष्कासन इतिहास का ट्रैक रखने के द्वारा पूरा किया जाता है। एल्गोरिथम[2] आईबीएम अल्माडेन रिसर्च सेंटर में विकसित किया गया था। 2006 में आईबीएम को अनुकूली प्रतिस्थापन कैश नीति के लिए पेटेंट प्रदान किया गया था।

सारांश

बेसिक एलआरयू कैश में संसाधन प्रविष्टियों की आदेशित सूची (कैश निर्देशिका) रखता है, जिसमें सबसे हालिया पहुंच के समय के आधार पर क्रमबद्ध क्रम होता है। नीचे की प्रविष्टि को बेदखल करने के बाद सूची के शीर्ष पर नई प्रविष्टियाँ जोड़ी जाती हैं। कैशे हिट अन्य सभी प्रविष्टियों को नीचे धकेलते हुए शीर्ष पर चले जाते हैं।

एआरसी वर्तमान में और अधिकांश संदर्भित प्रविष्टियों के लिए कैश निर्देशिका को दो सूचियों, टी 1 और टी 2 में विभाजित करके बुनियादी एलआरयू रणनीति में सुधार करता है। बदले में, इनमें से प्रत्येक को भूत सूची (बी1 या बी2) के साथ विस्तारित किया जाता है, जो दो सूचियों के नीचे से जुड़ी होती है। ये भूत सूचियां वर्तमान में निकाले गए कैश प्रविष्टियों के इतिहास का ट्रैक रखकर स्कोरकार्ड के रूप में कार्य करती हैं, और एल्गोरिदम संसाधन उपयोग में हालिया परिवर्तन के अनुकूल होने के लिए घोस्ट हिट का उपयोग करता है। ध्यान दें कि घोस्ट सूचियों में केवल मेटाडेटा (प्रविष्टियों के लिए कुंजियाँ) होते हैं और स्वयं संसाधन डेटा नहीं होते हैं, यानी किसी प्रविष्टि को घोस्ट सूची में बेदखल कर दिया जाता है, इसके डेटा को छोड़ दिया जाता है। संयुक्त कैश निर्देशिका को चार LRU सूचियों में व्यवस्थित किया गया है:

  1. T1, हाल की कैश प्रविष्टियों के लिए।
  2. T2, लगातार प्रविष्टियों के लिए, कम से कम दो बार संदर्भित।
  3. बी 1, वर्तमान में टी 1 कैश से बेदखल की गई भूत प्रविष्टियां, लेकिन अभी भी ट्रैक की जाती हैं।
  4. बी2, समान घोस्ट एंट्री, लेकिन टी2 से बेदखल।

T1 और B1 को साथ L1 के रूप में संदर्भित किया जाता है, वर्तमान के एकल संदर्भों का संयुक्त इतिहास। इसी तरह, L2 T2 और B2 का संयोजन है।

संपूर्ण कैश निर्देशिका को पंक्ति में देखा जा सकता है:

. . . '[' B1 <-'[' T1 <-'!'-> T2 ']'-> B2 ']' । .
 '['। . . . '['। . . . . . '!' . '^'। . . . ']'। . . . ']'
 '[' निश्चित कैश आकार (सी) ']'

आंतरिक '[' ']' कोष्ठक वास्तविक कैश को इंगित करता है, जो हालांकि आकार में तय है, B1 और B2 इतिहास में स्वतंत्र रूप से स्थानांतरित हो सकता है।

L1 अब दाएँ से बाएँ प्रदर्शित होता है, शीर्ष से प्रारंभ होकर, '!' द्वारा दर्शाया जाता है मार्कर। '^' T1 के लिए लक्षित आकार को इंगित करता है, और वास्तविक आकार के बराबर, उससे छोटा या बड़ा हो सकता है (जैसा कि '!' द्वारा इंगित किया गया है)।

  • नई प्रविष्टियाँ '!' के बाईं ओर T1 में प्रवेश करती हैं, और धीरे-धीरे बाईं ओर धकेल दी जाती हैं, अंततः T1 से B1 में निकाल दी जाती हैं, और अंत में पूरी तरह से बाहर हो जाती हैं।
  • L1 में कोई भी प्रविष्टि जो बार फिर से संदर्भित हो जाती है, उसे और मौका मिलता है, और L2 में प्रवेश करती है, ठीक केंद्रीय '!' मार्कर। वहां से, इसे फिर से बाहर की ओर धकेला जाता है, T2 से B2 में। L2 में प्रविष्टियां जो और हिट प्राप्त करती हैं, इसे अनिश्चित काल तक दोहरा सकती हैं, जब तक कि वे अंत में B2 के दूर दाईं ओर से बाहर नहीं निकल जातीं।

प्रतिस्थापन

कैश (T1, T2) में प्रवेश करने वाली प्रविष्टियाँ (पुनः-) कारण होंगी ! लक्ष्य मार्कर ^ की ओर बढ़ने के लिए। यदि संचय में कोई रिक्त स्थान मौजूद नहीं है, तो यह चिह्नक यह भी निर्धारित करता है कि क्या T1 या T2 में से कोई प्रविष्टि निकालेगा।

  • B1 में हिट करने से T1 का आकार बढ़ जाएगा, ^ को दाईं ओर धकेल दिया जाएगा। T2 में अंतिम प्रविष्टि B2 में बेदखल है।
  • B2 में हिट ^ को वापस बाईं ओर धकेलते हुए T1 को सिकोड़ देगा। T1 में अंतिम प्रविष्टि अब B1 में बेदखल कर दी गई है।
  • कैश मिस ^ को प्रभावित नहीं करेगा, लेकिन ! सीमा ^ के करीब जाएगी।

परिनियोजन

ARC वर्तमान में IBM के DS6000/IBM DS8000 भंडारण नियंत्रकों में परिनियोजित है।

सन माइक्रोसिस्टम्स का स्केलेबल फ़ाइल सिस्टम ZFS संस्करण का उपयोग करता है[3] वर्चुअल मेमोरी में पारंपरिक सोलारिस (ऑपरेटिंग सिस्टम) फाइल सिस्टम पेज कैश के विकल्प के रूप में एआरसी का। इसे लॉक किए गए पृष्ठों की अनुमति देने के लिए संशोधित किया गया है जो वर्तमान में उपयोग में हैं और खाली नहीं किए जा सकते हैं।

PostgreSQL ने थोड़े समय के लिए अपने बफर मैनेजर में ARC का उपयोग किया (संस्करण 8.0.0), लेकिन जल्दी से इसे दूसरे एल्गोरिथम से बदल दिया, एआरसी पर आईबीएम पेटेंट पर चिंताओं का हवाला देते हुए।[4] VMware का vSAN (पूर्व में वर्चुअल SAN) VMware द्वारा विकसित हाइपर-कन्वर्ज्ड, सॉफ़्टवेयर-डिफ़ाइंड स्टोरेज (SDS) उत्पाद है। यह अपने कैशिंग एल्गोरिदम में एआरसी के प्रकार का उपयोग करता है। [5] OpenZFS रीड कैश के रूप में बहु-स्तरीय कैश में ARC और L2ARC का उपयोग करने का समर्थन करता है। OpenZFS में, डिस्क रीड अधिकांश ARC का उपयोग करके RAM में प्रथम स्तर के डिस्क कैश को हिट करता है। यदि दूसरे स्तर के डिस्क कैश को स्टोर करने के लिए SSD स्थापित किया गया है, तो इसे L2ARC कहा जाता है। L2ARC समान ARC एल्गोरिद्म का उपयोग करता है, लेकिन कैश्ड डेटा को RAM में संग्रहीत करने के बजाय, L2ARC कैश्ड डेटा को तेज़ SSD में संग्रहीत करता है।[6][7][8][9][10][11]


यह भी देखें

संदर्भ

  1. One Up on LRU, Usenix :login; August 2003
  2. Nimrod Megiddo and Dharmendra Modha, 2010-03-09 archive of the ARC home page, with pointers to several articles
  3. comments in Solaris ZFS arc.c source file explains differences with original work
  4. Article in Postgresql General Bits, "The Saga of the ARC Algorithm and Patent", published 6 February 2005
  5. Reference document, "VMware vSAN Caching Algorithms"[permanent dead link]
  6. "ZFS Caching".
  7. "ZFS Primer".
  8. Jim Salter. "Persistent L2ARC might be coming to ZFS on Linux". 2020.
  9. "Cache: L2ARC accesses".
  10. Brendan Gregg. "ZFS L2ARC".
  11. Ranvir Singh. "Adaptive Replacement Cache (ARC) and L2ARC".


बाहरी संबंध