Hacker News

चयन आ डिस्क के बीच तीन कैश परत

चयन आ डिस्क के बीच तीन कैश परत ई अन्वेषण तीन में गहराई स॑ उतरै छै, जेकरा म॑ एकरऽ महत्व आरू संभावित प्रभाव के जांच करलऽ गेलऽ छै । कोर अवधारणा कवर ई सामग्री खोज करैत अछि: मौलिक सिद्धांत एवं सिद्धांत प्रैक्टिकल...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

जखन अहां कें एप्लीकेशन SELECT स्टेटमेंट फायर करयत छै, तखन ओ क्वेरी लगभग कहियो घूम रहल डिस्क या कच्चा फ्लैश स्टोरेज कें सेहो नहि छूबैत छै — इ तीन अलग-अलग कैश परत सं गुजरयत छै जे चुपचाप इ निर्धारित करयत छै की अहां कें प्रतिक्रिया माइक्रोसेकंड या मिलीसेकंड मे पहुंचयत छै. ई परतऽ क॑ समझना एगो बिजनेस प्लेटफॉर्म के बीच के अंतर छै जे बिना कोनो प्रयास के स्केल करै छै आरू जे वास्तविक दुनिया के भार के तहत बकसुआ बनाबै छै.

ओह क्षण की होयत छै जखन कोनों SELECT क्वेरी अहां कें एप्लिकेशन सं बाहर निकलय छै?

जखन अहाँक एप्लिकेशन SELECT क्वेरी भेजैत अछि, ओ एकटा पाइपलाइन मे प्रवेश करैत अछि जकर अधिकांश डेवलपर कहियो निरीक्षण नहि करैत अछि. डाटाबेस इंजन कोनों I/O घटित हुअ सं पहिले अनुरोध कें इंटरसेप्ट करयत छै, SQL कें एकटा आंतरिक निष्पादन योजना मे पार्स करयत छै आ तुरंत ओकर रक्षा कें पहिल लाइन: क्वेरी परिणाम कैश सं परामर्श करयत छै. यदि हाल मे समान पैरामीटर कें साथ कोनों समान क्वेरी निष्पादित कैल गेलय छै, त इंजन डाटा कें कोनों पन्ना कें स्पर्श करय कें बिना कैश रिजल्ट सेट वापस कयर सकय छै. एकरा कखनो-कखनो क्वेरी कैश या परिणाम कैश कहलऽ जाय छै, आरू उच्च-पढ़लऽ, कम-लिखै वाला कार्यभार प॑ — जेना कि विश्लेषणात्मक डैशबोर्ड आरू रिपोर्टिंग मॉड्यूल — ई डिस्क रीड केरऽ विशाल बहुमत क॑ पूरा तरह स॑ समाप्त करी सकै छै.

एतय महत्वपूर्ण अंतर्दृष्टि इ छै कि क्वेरी कैश डाटा उत्परिवर्तन कें प्रति अत्यधिक संवेदनशील छै. अंतर्निहित तालिका क विरुद्ध कोनो INSERT, UPDATE, अथवा DELETE प्रासंगिक कैश कएल गेल परिणाम केँ अमान्य करैत अछि. यही कारण छै कि लिखै-भारी लेनदेन प्रणाली अक्सर क्वेरी कैश क॑ पूरा तरह स॑ अक्षम करी दै छै आरू एकरऽ बदला म॑ गहरा परतऽ प॑ भरोसा करै छै.

बफर पूल की अछि आ अहाँक सोचसँ बेसी एकर महत्व किएक अछि ?

दोसर कैश परत — आरू तर्कसंगत रूप स॑ उत्पादन प्रणाली म॑ सबस॑ महत्वपूर्ण — बफर पूल (जेकरा PostgreSQL म॑ साझा बफर कहलऽ जाय छै, MySQL म॑ InnoDB बफर पूल कहलऽ जाय छै) छै । इ रैम कें एकटा क्षेत्र छै जेकर उपयोग डाटाबेस इंजन हाल मे एक्सेस कैल गेल डाटा पन्नाक कें रखय कें लेल करय छै. जखन कोनों क्वेरी कें परिणाम कैश सं परोसल नहि जा सकय छै, तखन इंजन कोनों डिस्क रीड जारी करय सं पहिले इ जांचयत छै की आवश्यक डाटा पन्ना बफर पूल मे पहिने सं निवासी छै या नहि.

बफर पूल टेम्पोरल आ स्थानिक स्थानीयता कें सिद्धांत पर संचालित होयत छै: हाल मे एक्सेस कैल गेल डाटा कें फेर सं एक्सेस करय कें संभावना छै, आ एक्सेस कैल गेल डाटा कें पास संग्रहीत डाटा कें जल्द एक्सेस करय कें संभावना छै. डाटाबेस प्रशासक बफर पूल आकार कें उच्चतम-उत्तोलन विन्यास निर्णयक मे सं एकटा कें रूप मे ट्यून करएयत छै. बफर पूल जे बहुत छोट होय छै, लगातार पन्ना बेदखल होय जाय छै, जेकरा स॑ थ्रेशिंग नाम केरऽ एगो घटना पैदा होय छै, जहाँ सिस्टम क्वेरी क॑ निष्पादित करै स॑ बेसी कैश मिस क॑ प्रबंधित करै म॑ बिताबै छै.

<ब्लॉककोट>

मुख्य अंतर्दृष्टि: अधिकांश ओएलटीपी कार्यभार मे, एकटा नीक आकार कें बफर पूल कें मतलब छै की 95–99% सबटा डाटा रीड कें सेवा रैम सं कैल जायत छै. कामकाजी सेट — अहां कें डाटा कें उपसमूह जे क्वेरी वास्तव मे अक्सर स्पर्श करयत छै — अक्सर कुल डाटाबेस आकार सं कहीं छोट होयत छै. अपन बफर पूल कें आकार देनाय जे अहां कें काज करय वाला सेट कें फिट करय, अपन पूरा डाटासेट कें नहि, एकल उच्चतम-रिटर्न ट्यूनिंग क्रिया छै जे अहां कयर सकय छी.

के अछि

ऑपरेटिंग सिस्टम कैश रैम आ डिस्क कें बीच कें अंतराल कें कोना भरयत छै?

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

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

ई तेसर परत एप्लीकेशन डेवलपर्स कें लेल काफी हद तइक अदृश्य छै मुदा ओय सिस्टम पर गहराई सं महत्वपूर्ण छै जत डाटाबेस बफर पूल कें कम प्रावधान छै. ओएस पृष्ठ कैश सब प्रक्रियाक मे साझा कैल जायत छै, अइ कें लेल इ अहां कें एप्लीकेशन सर्वर, वेब सर्वर, आ कोनों अन्य सॉफ्टवेयर कें साथ प्रतिस्पर्धा करयत छै जे एकहि होस्ट पर चल रहल छै. समर्पित डाटाबेस सर्वर पर इ प्रतिस्पर्धा न्यूनतम छै, आ ओएस कैश एकटा सार्थक सेकेंड-चांस बफर प्रदान करयत छै. साझा होस्ट या कड़ा मेमोरी सीमा वाला कंटेनर पर, ओएस कैश अक्सर मदद करय कें लेल बहुत छोट होयत छै.

व्यावहारिक रूप स बेसी प्रदर्शन जीत क लेल कोन कैश परत जिम्मेदार अछि?

वास्तविक दुनिया कें उत्पादन प्रणाली मे, बफर पूल प्रदर्शन परिणामक पर व्यापक अंतर सं हावी होयत छै. एतय प्रत्येक परत उपयोग केस मे अलग-अलग योगदान किएक दैत अछि:

  • क्वेरी परिणाम कैश: रीड-हेवी, अधिकतर स्थिर डाटासेट पर सर्वाधिक लाभ — रिपोर्टिंग क्वेरी, कैश डैशबोर्ड, सार्वजनिक सामग्री अंत बिंदु. लिखब-भारी तालिका पर बेकार।
  • डेटाबेस बफर पूल: सार्वभौमिक कार्यघोड़ा। हर प्रोडक्शन डाटाबेस सर्वर कें पहिने एतय ट्यून करबाक चाही. यादृच्छिक आ क्रमिक पहुँच पैटर्न दूनू कें कुशलता सं संभालयत छै.
  • ओएस पृष्ठ कैश: एकटा सुरक्षा जाल प्रदान करयत छै जखन बफर पूल कें आकार कम होयत छै. पैघ टेबल क क्रमिक स्कैन क दौरान सेहो काफी मदद करैत अछि जे अन्यथा बफर पूल स हॉट पेज कए बेदखल करत.
  • भंडारण नियंत्रक कैश (हार्डवेयर परत): एकटा चारिम, अक्सर अनदेखी कैल गेल परत — NVMe SSDs आ RAID नियंत्रक बैटरी या संधारित्र बैकअप कें साथ ऑनबोर्ड लिखय कैश कें रखरखाव करयत छै. ई fsync विलंबता के कीमत पर लिखय के थ्रूपुट के बलिदान केने बिना स्थायित्व के सुरक्षा करै छै.
  • एप्लीकेशन-लेयर कैश (Redis, Memcached): डाटाबेस कें पूरा तरह सं ऊपर बैसयत छै, सीरियलाइज्ड क्वेरी परिणाम या गणना कैल गेल वस्तुअक कें कैश करयत छै ताकि डाटाबेस कें बिल्कुल हिट करय सं बचल जा सकय — हजारक समवर्ती उपयोगकर्ताक कें सेवा करय वाला बहु-किरायेदार SaaS प्लेटफॉर्म कें लेल आदर्श.

आधुनिक व्यवसाय प्लेटफार्म पैमाना पर विश्वसनीयता कें लेल कैश आर्किटेक्चर कें कोना लाभ उठा सकय छै?

बहुत सं कार्यात्मक मॉड्यूल कें पार संचालित व्यवसायक कें लेल — सीआरएम, परियोजना प्रबंधन, ई-कॉमर्स, विश्लेषणात्मकता — कैश आर्किटेक्चर सीधा प्लेटफॉर्म कें प्रतिक्रियाशीलता कें निर्धारित करयत छै जैना टीमक कें बढ़यत छै. एकटा नीक तरह सं स्तरित कैश रणनीति पर बनल प्लेटफार्म बिना आनुपातिक बुनियादी ढांचे कें लागत कें दस हजार समवर्ती उपयोगकर्ताक कें सेवा कयर सकय छै. कुंजी डाटा एक्सेस पैटर्न कें डिजाइन करनाय छै जे कैश सीमाक कें सम्मान करय छै: गरम डाटा कें छोट रखनाय आ एक्सेस पैटर्न कें पूर्वानुमानित रखनाय, बफर पूल लोड कें वितरित करय कें लेल पढ़ल प्रतिकृतिक कें उपयोग करनाय, आ अंतिम बिंदुअक कें लेल डाटाबेस कें सामने रेडिस जैना एप्लीकेशन-लेयर कैश कें स्थिति बनानाय जे एक साथ कई उपयोगकर्ताक कें समान डाटा कें सेवा करय छै.

मेवेज के वास्तुकला ठीक एहि दर्शन के ध्यान में राखि क' बनायल गेल अछि. 138,000 सं बेसी उपयोगकर्ताक कें शक्ति प्रदान करय वाला 207 एकीकृत व्यवसाय मॉड्यूल कें साथ, प्लेटफॉर्म कें डाटा परत कें डिजाइन कैल गेल छै ताकि रीड्स कें भारी बहुमत कैश सं परोसल जायत छै — प्रतिक्रिया समय कें तेज आ बुनियादी ढांचे कें लागत कें पूर्वानुमानित रखयत चाहे अहां $19/माह कें स्टार्टर योजना पर चल रहल होय या $49/माह कें पेशेवर स्तर पर.

बार-बार पूछल जाय वाला प्रश्न

की क्वेरी कैश केँ अक्षम करब सदिखन डाटाबेस प्रदर्शन मे सुधार करैत अछि?

हमेशा नहि, मुदा लिखब-भारी कार्यभारक लेल ई आमतौर पर करैत अछि. क्वेरी कैश कें लेल स्थिरता कें बनाए रखय कें लेल एकटा वैश्विक म्यूटेक्स कें आवश्यकता होयत छै, जे उच्च समवर्ती कें तहत एकटा अड़चन बइन जायत छै. MySQL 8.0 एहि कारण सँ क्वेरी कैश केँ पूर्ण रूप सँ हटा देलक. PostgreSQL कहियो अंतर्निहित क्वेरी कैश लागू नहि केलक, एकर बजाय बफर पूल आओर एप्लीकेशन-लेयर कैशिंग पर निर्भर छल. यदि अहाँक पढ़य-लिखब अनुपात बेसी अछि आओर अहाँक क्वेरी बेसी दोहराओल जाइत अछि, त' क्वेरी कैश वास्तविक लाभ द' सकैत अछि — अन्यथा, ओहि ट्यूनिंग प्रयास केँ बफर पूल मे निवेश करू.

हमरा कोना पता चलत जे हमर बफर पूल सही आकारक अछि की नहि?

अपन बफर पूल हिट अनुपात कें निगरानी करू: पूल सं परोसल गेल पृष्ठ अनुरोधक कें प्रतिशत बनाम ओय जेकरा डिस्क रीड कें आवश्यकता होयत छै. ओएलटीपी वर्कलोड पर 95% सं कम हिट रेशियो पूल कें आकार बढ़ावा कें लेल एकटा संकेत छै. MySQL मे, SHOW ENGINE INNODB STATUS क्वेरी करू आओर बफर पूल हिट रेट देखू. PostgreSQL मे, pg_statio_user_tables दृश्य डिस्क सं पढ़ल गेल ढेर ब्लॉक बनाम बफर पूल सं परोसल गेल ढेर ब्लॉक कें उजागर करयत छै. अपन पूरा काज करय बला सेट — अपन पूरा डाटासेट नहि — रैम मे निवासी रखबाक लक्ष्य राखू.

कैश परत आओर बहु-किरायेदार SaaS विश्वसनीयता कें बीच की संबंध छै?

बहु-किरायेदार SaaS मे, कैश परत "शोरदार पड़ोसी" समस्या कें रोकएयत छै जत एकटा किरायेदार कें भारी क्वेरी लोड अन्य सबटा किरायेदारक कें लेल प्रदर्शन कें घटा दैत छै. टीटीएल आधारित अमान्यता कें साथ किरायेदार-जागरूक एप्लीकेशन कैशिंग प्रति किरायेदार हॉट डाटा कें रेडिस मे रखयत छै, जे पैघ खाताक सं बफर पूल कें दबाव कें काफी कम करयत छै. एकटा गर्म बफर पूल कें साथ मिललऽ डाटाबेस-स्तरीय कनेक्शन पूलिंग ई सुनिश्चित करै छै कि कोनों भी एक खाता स॑ बर्स्ट गतिविधि कैश स॑ साझा पन्ना क॑ फ्लश नै करै छै आरू पूरा प्लेटफॉर्म म॑ विलंबता स्पाइक पैदा करै छै.


कैश परत डाटाबेस सामान्य ज्ञान नहि छै — इ वास्तुशिल्प नींव छै जे पैमाना पर तेजी सं रहय वाला प्लेटफार्मक सं अलग करय छै जेकरा लगातार बुनियादी ढाँचा अग्निशामक कें आवश्यकता होयत छै. यदि अहां कोनों एहन व्यवसाय बना रहल छी या चला रहल छी जेकरा इ वास्तविकताक कें लेल पहिने सं अनुकूलित प्लेटफॉर्म कें जरूरत छै, त app.mewayz.com पर Mewayz कें खोज करूं — 207 मॉड्यूल, एकटा सुसंगत प्लेटफॉर्म, जे अहां कें पहिल उपयोगकर्ता सं ल क अहां कें लाखवां हिस्सा तइक विश्वसनीय रूप सं प्रदर्शन करय कें लेल बनायल गेल छै.