फ़्लैश कैश

Flashcache, Linux कर्नेल के लिए एक डिस्क कैश (कंप्यूटिंग) घटक है, जिसे शुरुआत में अप्रैल 2010 से Facebook द्वारा विकसित किया गया था, और 2011 में ओपन सोर्स के रूप में जारी किया गया था। जनवरी 2013 से, Flashcache का एक फोर्क है, जिसे एन्हांसियो नाम दिया गया है और sTec, Inc. द्वारा विकसित किया गया है। 2015 के बाद से वह कांटा अनुरक्षित हो गया और इसे फिर से फोर्क किया गया और व्यक्तियों द्वारा बनाए रखा गया।

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

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

इसी तरह की तकनीक माइक्रोसॉफ़्ट विंडोज़ में विंडोज विस्टा के बाद से रेडी बूस्ट के रूप में मौजूद है।

कार्यान्वयन
Flashcache को Linux कर्नेल के डिवाइस मैपर के ऊपर बनाया गया है। कैश की डेटा संरचना एक सेट-एसोसिएटिव हैश तालिका है, जिसमें ब्लॉक खोजने के लिए एक सेट के भीतर रैखिक जांच का उपयोग करके कैश को कई निश्चित आकार के सेट (बकेट) में विभाजित किया जाता है। डिवाइस मैपर लेयर सभी I/O रिक्वेस्ट को कैश लेयर में रिक्वेस्ट पास करने से पहले ब्लॉक साइज चंक्स में तोड़ देती है।

जब एक लिखित अनुरोध होता है, तो संबंधित कैश ब्लॉक को गंदा चिह्नित किया जाता है; गंदी कैश ब्लॉक पृष्ठभूमि में डिस्क पर आलसी ढंग से लिखे गए हैं। राइट-बैक पॉलिसी को नियंत्रित करने के लिए कुछ पैरामीटर हैं: गंदे-दहलीज, आलस्य और अन्य गंदे ब्लॉकों के साथ निकटता जो वापस लिखे जाने वाले हैं।

सीमाएं
फ़्लैश कैशे के कार्यान्वयन द्वारा लगाई गई कुछ सीमाएँ हैं:


 * परमाणुता
 * कैश ब्लॉक लेखन वर्तमान में गैर-परमाणु हैं।


 * ट्रिम समर्थन
 * एटीए ट्रिम (कंप्यूटिंग) कमांड फ्लैश मेमोरी को अनुकूलित करने के लिए अभी तक समर्थित नहीं हैं।


 * कैश प्रदूषण संरक्षण
 * फ्लैशकैच को उसके अनुरोधों को कैश करने से रोकने के लिए एक प्रक्रिया को गैर-कैचेबल के रूप में चिह्नित किया जा सकता है; हालाँकि, अगर एक प्रक्रिया जो खुद को गैर-कैचेबल के रूप में चिह्नित करती है, मर जाती है, तो फ्लैश कैश को साफ करने का कोई तरीका नहीं है।


 * संरेखण
 * डिवाइस मैपर पर भरोसा करने के परिणामस्वरूप कैशिंग प्रदर्शन संबंधी समस्याएं हुईं और राइट्स की कोई कैशिंग नहीं हुई जो कि 4 KiB के गुणक नहीं हैं। मुख्य रूप से, यह Xen हाइपरविजर को प्रभावित करता है। इस प्रकार, एन्हांसियो डिवाइस मैपर एकीकरण से दूर चला गया है, जो इष्टतम उपयोग के मामलों के लिए उच्च प्रदर्शन प्रदान करता है।


 * राइट-अराउंड रीड लेटेंसी प्रभाव
 * राइट-अराउंड मोड में उच्च स्थिरता के लिए सभी राइट्स कैश को बायपास करते हैं। वर्तमान कार्यान्वयन एसएसडी डिवाइस के माध्यम से पढ़ता है और फिर उन्हें वास्तविक पाठक तक पहुंचाता है। इसका मतलब यह है कि पहले से अनकैश किए गए ब्लॉक को हमेशा पहले एसएसडी डिवाइस में जाने की जरूरत होगी, जिससे लगातार आईओ लिखा जा सकेगा। फ़ेसबुक द्वारा उपयोग किए जाने वाले एंटरप्राइज़ एसएसडी या Highend PCIe उपकरणों पर कोई समस्या नहीं है, लेकिन निचले सिरे एसएसडी पर प्रदर्शन को कम करता है।


 * राइट-अराउंड रीड कैश वार्म-अप चरण
 * राइट-अराउंड मोड में फ्लैश कैश के पास ऑन-डिस्क पर कैश्ड पेजों की उम्र की तुलना करने के लिए कोई जानकारी नहीं है। (1) क्योंकि डिवाइस को फ्लैशकैच के बाहर माउंट किया जा सकता था (2) क्योंकि इस मोड में कोई भी लिखा हुआ ट्रैक नहीं किया जाता है। इसका परिणाम प्रत्येक वॉल्यूम सक्रियण (यानी: रिबूट) के बाद एक खाली कैश में होता है। जब तक सभी गर्म क्षेत्रों को कैश नहीं किया जाता तब तक प्रदर्शन कम हो जाएगा।

यह भी देखें

 * बी.सी.ए
 * डीएम-कैश
 * कैश त्वरण सॉफ्टवेयर (इंटेल का उत्पाद)

बाहरी संबंध

 * Performance Comparison among EnhanceIO, bcache and dm-cache (LKML)
 * EnhanceIO, Bcache & DM-Cache Benchmarked
 * Flashcache at Facebook: From 2010 to 2013 and beyond
 * Facebook Releases Flashcache 3.0