Hacker News

સિલેક્ટ અને ડિસ્ક વચ્ચે ત્રણ કેશ લેયર્સ

સિલેક્ટ અને ડિસ્ક વચ્ચે ત્રણ કેશ લેયર્સ આ અન્વેષણ તેના મહત્વ અને સંભવિત પ્રભાવની તપાસ કરીને ત્રણમાં વિવરણ કરે છે. મુખ્ય ખ્યાલો આવરી લેવામાં આવ્યા છે આ સામગ્રી અન્વેષણ કરે છે: મૂળભૂત સિદ્ધાંતો અને સિદ્ધાંતો વ્યવહાર...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

જ્યારે તમારી એપ્લિકેશન SELECT સ્ટેટમેન્ટને ફાયર કરે છે, ત્યારે તે ક્વેરી લગભગ ક્યારેય સ્પિનિંગ ડિસ્ક અથવા કાચી ફ્લેશ સ્ટોરેજને સ્પર્શતી નથી — તે ત્રણ વિશિષ્ટ કેશ સ્તરોમાંથી પસાર થાય છે જે શાંતિપૂર્વક નિર્ધારિત કરે છે કે તમારો પ્રતિસાદ માઇક્રોસેકન્ડમાં આવે છે કે મિલીસેકંડમાં. આ સ્તરોને સમજવું એ એક બિઝનેસ પ્લેટફોર્મ કે જે વિના પ્રયાસે સ્કેલ કરે છે અને જે વાસ્તવિક-દુનિયાના ભાર હેઠળ બકલ કરે છે તે વચ્ચેનો તફાવત છે.

જ્યારે સિલેક્ટ ક્વેરી તમારી અરજી છોડી દે ત્યારે શું થાય છે?

જે ક્ષણે તમારી એપ્લિકેશન SELECT ક્વેરી મોકલે છે, તે પાઇપલાઇનમાં પ્રવેશે છે મોટાભાગના વિકાસકર્તાઓ ક્યારેય તપાસ કરતા નથી. ડેટાબેઝ એન્જીન કોઈપણ I/O થાય તે પહેલા વિનંતીને અટકાવે છે, એસક્યુએલને આંતરિક એક્ઝેક્યુશન પ્લાનમાં પાર્સ કરે છે અને તરત જ તેની પ્રથમ લાઇન ઓફ ડિફેન્સ: ક્વેરી રિઝલ્ટ કેશની સલાહ લે છે. જો સમાન પરિમાણો સાથે સમાન ક્વેરી તાજેતરમાં એક્ઝિક્યુટ કરવામાં આવી હોય, તો એન્જિન ડેટાના એક પણ પૃષ્ઠને સ્પર્શ કર્યા વિના કેશ્ડ પરિણામ સેટ પરત કરી શકે છે. આને કેટલીકવાર ક્વેરી કેશ અથવા પરિણામ કેશ કહેવામાં આવે છે, અને ઉચ્ચ-વાંચિત, ઓછા-લખતા વર્કલોડ પર — જેમ કે એનાલિટિક્સ ડેશબોર્ડ્સ અને રિપોર્ટિંગ મોડ્યુલ્સ — તે મોટાભાગની ડિસ્ક રીડને સંપૂર્ણપણે દૂર કરી શકે છે.

અહીં મહત્ત્વની સમજ એ છે કે ક્વેરી કેશ ડેટા મ્યુટેશન માટે અત્યંત સંવેદનશીલ છે. અંતર્ગત કોષ્ટકની સામે કોઈપણ INSERT, UPDATE, અથવા DELETE સંબંધિત કેશ્ડ પરિણામોને અમાન્ય કરે છે. આથી જ રાઈટ-હેવી ટ્રાન્ઝેક્શન સિસ્ટમ્સ ઘણીવાર ક્વેરી કેશને સંપૂર્ણપણે અક્ષમ કરે છે અને તેના બદલે ઊંડા સ્તરો પર આધાર રાખે છે.

બફર પૂલ શું છે અને તે શા માટે તમે વિચારો છો તેના કરતાં વધુ મહત્વનું છે?

બીજું કેશ લેયર — અને પ્રોડક્શન સિસ્ટમ્સમાં દલીલપૂર્વક સૌથી મહત્વપૂર્ણ — એ બફર પૂલ છે (જેને PostgreSQL માં શેર્ડ બફર કહેવાય છે, MySQL માં InnoDB બફર પૂલ). આ RAM નો વિસ્તાર છે જેનો ઉપયોગ ડેટાબેઝ એન્જીન તાજેતરમાં એક્સેસ કરેલા ડેટા પેજીસને રાખવા માટે કરે છે. જ્યારે પરિણામ કેશમાંથી ક્વેરી આપી શકાતી નથી, ત્યારે એન્જિન કોઈપણ ડિસ્ક રીડ જારી કરતા પહેલા જરૂરી ડેટા પેજ બફર પૂલમાં પહેલાથી જ રહે છે કે કેમ તે તપાસે છે.

બફર પૂલ ટેમ્પોરલ અને અવકાશી વિસ્તારના સિદ્ધાંત પર કાર્ય કરે છે: તાજેતરમાં એક્સેસ કરાયેલો ડેટા ફરીથી એક્સેસ કરવામાં આવે તેવી શક્યતા છે, અને એક્સેસ કરેલ ડેટાની નજીક સંગ્રહિત ડેટાને ટૂંક સમયમાં એક્સેસ કરવામાં આવે તેવી શક્યતા છે. ડેટાબેઝ એડમિનિસ્ટ્રેટર્સ બફર પૂલના કદને તેઓ જે ઉચ્ચતમ-લીવરેજ રૂપરેખાંકન નિર્ણયો લે છે તેમાંના એક તરીકે ટ્યુન કરે છે. એક બફર પૂલ જે ખૂબ નાનો છે તે સતત પૃષ્ઠ ખાલી કરાવવાનું કારણ બને છે, જે થ્રેશિંગ નામની ઘટનાનું નિર્માણ કરે છે, જ્યાં સિસ્ટમ ક્વેરી ચલાવવા કરતાં કેશ મિસનું સંચાલન કરવામાં વધુ સમય વિતાવે છે.

મુખ્ય આંતરદૃષ્ટિ: મોટા ભાગના OLTP વર્કલોડ્સમાં, સારી-કદના બફર પૂલનો અર્થ છે કે તમામ ડેટા રીડનો 95-99% RAM માંથી આપવામાં આવે છે. કાર્યકારી સમૂહ — તમારા ડેટાનો સબસેટ કે જે વાસ્તવમાં વારંવાર સ્પર્શ કરે છે — ઘણી વખત કુલ ડેટાબેઝ કદ કરતાં ઘણો નાનો હોય છે. તમારા કાર્યકારી સમૂહને ફિટ કરવા માટે તમારા બફર પૂલનું કદ બદલવું, તમારા સમગ્ર ડેટાસેટને નહીં, તમે લઈ શકો તે એકમાત્ર સૌથી વધુ વળતર આપતી ટ્યુનિંગ ક્રિયા છે.

ઓપરેટિંગ સિસ્ટમ કેશ RAM અને ડિસ્ક વચ્ચેના ગેપને કેવી રીતે ભરે છે?

જ્યારે ડેટાબેઝનો પોતાનો બફર પૂલ ચૂકી જાય છે, ત્યારે પણ સાચી ડિસ્ક વાંચવા માટે ક્વેરી હજી નક્કી નથી. ઓપરેટિંગ સિસ્ટમ પૃષ્ઠ કેશ જાળવે છે (જેને ફાઇલસિસ્ટમ કેશ પણ કહેવાય છે), કર્નલ-સંચાલિત RAM નો એક પ્રદેશ જે ઉપકરણોને અવરોધિત કરવા માટે વાંચન અને લખવાનું બફર કરે છે. જ્યારે ડેટાબેઝ એન્જિન તેના બફર પૂલમાંથી ગેરહાજર હોય તેવા પૃષ્ઠની વિનંતી કરે છે, ત્યારે OS કર્નલ સ્ટોરેજ કંટ્રોલરને ભૌતિક 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 →

આ ત્રીજું સ્તર એપ્લીકેશન ડેવલપર્સ માટે મોટાભાગે અદ્રશ્ય છે પરંતુ તે સિસ્ટમો પર ખૂબ જ મહત્વપૂર્ણ છે જ્યાં ડેટાબેઝ બફર પૂલની જોગવાઈ ઓછી છે. OS પૃષ્ઠ કેશ બધી પ્રક્રિયાઓમાં વહેંચાયેલું છે, તેથી તે તમારા એપ્લિકેશન સર્વર, વેબ સર્વર અને સમાન હોસ્ટ પર ચાલતા અન્ય કોઈપણ સોફ્ટવેર સાથે સ્પર્ધા કરે છે. સમર્પિત ડેટાબેઝ સર્વર્સ પર, આ સ્પર્ધા ન્યૂનતમ છે, અને OS કેશ અર્થપૂર્ણ સેકન્ડ-ચાન્સ બફર પ્રદાન કરે છે. ચુસ્ત મેમરી મર્યાદાવાળા શેર કરેલ હોસ્ટ અથવા કન્ટેનર પર, OS કેશ મદદ કરવા માટે વારંવાર ખૂબ નાની હોય છે.

પ્રેક્ટિસમાં સૌથી વધુ પ્રદર્શન જીત માટે કયું કેશ લેયર જવાબદાર છે?

વાસ્તવિક-વિશ્વની ઉત્પાદન પ્રણાલીઓમાં, બફર પૂલ વ્યાપક માર્જિન દ્વારા પ્રદર્શન પરિણામો પર પ્રભુત્વ ધરાવે છે. અહીં શા માટે દરેક સ્તર ઉપયોગના કેસોમાં અલગ રીતે ફાળો આપે છે:

  • ક્વેરી રિઝલ્ટ કેશ: રીડ-હેવી, મોટે ભાગે સ્ટેટિક ડેટાસેટ્સ પર સૌથી વધુ ફાયદો — રિપોર્ટિંગ ક્વેરી, કેશ્ડ ડેશબોર્ડ્સ, સાર્વજનિક સામગ્રી એન્ડપોઇન્ટ્સ. લખવા-ભારે કોષ્ટકો પર નકામું.
  • ડેટાબેઝ બફર પૂલ: સાર્વત્રિક વર્કહોર્સ. દરેક પ્રોડક્શન ડેટાબેઝ સર્વરને અહીં પહેલા ટ્યુન કરવું જોઈએ. રેન્ડમ અને ક્રમિક એક્સેસ પેટર્ન બંનેને અસરકારક રીતે હેન્ડલ કરે છે.
  • OS પૃષ્ઠ કેશ: જ્યારે બફર પૂલનું કદ ઓછું હોય ત્યારે સુરક્ષા જાળ પ્રદાન કરે છે. મોટા કોષ્ટકોના ક્રમિક સ્કેન દરમિયાન પણ નોંધપાત્ર રીતે મદદ કરે છે જે અન્યથા બફર પૂલમાંથી ગરમ પૃષ્ઠોને બહાર કાઢશે.
  • સ્ટોરેજ કંટ્રોલર કેશ (હાર્ડવેર લેયર): ચોથું, ઘણીવાર અવગણવામાં આવતું લેયર — NVMe SSDs અને RAID કંટ્રોલર્સ બેટરી અથવા કેપેસિટર બેકઅપ સાથે ઓનબોર્ડ રાઈટ કેશ જાળવી રાખે છે. આ fsync લેટન્સીના ખર્ચે લેખન થ્રુપુટને બલિદાન આપ્યા વિના ટકાઉપણુંનું રક્ષણ કરે છે.
  • એપ્લિકેશન-લેયર કેશ (રેડીસ, મેમકેશ્ડ): ડેટાબેઝને બિલકુલ હિટ કરવાનું ટાળવા માટે સીરીયલાઇઝ્ડ ક્વેરી પરિણામો અથવા કોમ્પ્યુટેડ ઑબ્જેક્ટ્સ કેશ કરીને સંપૂર્ણ રીતે ડેટાબેઝની ઉપર બેસે છે — હજારો સહવર્તી વપરાશકર્તાઓને સેવા આપતા મલ્ટિ-ટેનન્ટ SaaS પ્લેટફોર્મ માટે આદર્શ.

આધુનિક બિઝનેસ પ્લેટફોર્મ સ્કેલ પર વિશ્વસનીયતા માટે કેવી રીતે કેશ આર્કિટેક્ચરનો લાભ લઈ શકે છે?

ઘણા કાર્યાત્મક મોડ્યુલો - CRM, પ્રોજેક્ટ મેનેજમેન્ટ, ઈ-કોમર્સ, એનાલિટિક્સ - પર કામ કરતા વ્યવસાયો માટે - કેશ આર્કિટેક્ચર સીધું જ પ્લેટફોર્મ પ્રતિભાવને નિર્ધારિત કરે છે જેમ જેમ ટીમો વધે છે. સારી-સ્તરવાળી કેશ વ્યૂહરચના પર બનેલા પ્લેટફોર્મ્સ પ્રમાણસર માળખાકીય ખર્ચ વિના હજારો સહવર્તી વપરાશકર્તાઓને સેવા આપી શકે છે. ચાવી એ કેશ સીમાઓનું સન્માન કરતી ડેટા એક્સેસ પેટર્ન ડિઝાઇન કરવી છે: હોટ ડેટાને નાનો અને એક્સેસ પેટર્નને અનુમાનિત રાખવા, બફર પૂલ લોડને વિતરિત કરવા માટે રીડ પ્રતિકૃતિઓનો ઉપયોગ કરીને અને એક સાથે બહુવિધ વપરાશકર્તાઓને સમાન ડેટા પ્રદાન કરતા એન્ડપોઇન્ટ્સ માટે ડેટાબેઝની સામે રેડિસ જેવી એપ્લિકેશન-લેયર કેશને સ્થિત કરવી.

મેવેઝ બરાબર આ ફિલસૂફીને ધ્યાનમાં રાખીને રચાયેલ છે. 138,000 કરતાં વધુ વપરાશકર્તાઓને શક્તિ આપતા 207 સંકલિત બિઝનેસ મોડ્યુલ્સ સાથે, પ્લેટફોર્મના ડેટા લેયરને એવી રીતે ડિઝાઇન કરવામાં આવ્યું છે કે મોટા ભાગના વાંચન કેશમાંથી આપવામાં આવે — પ્રતિભાવ સમયને ઝડપી રાખવા અને ઇન્ફ્રાસ્ટ્રક્ચર ખર્ચ અનુમાનિત રાખવા કે પછી તમે $19/મહિનાના સ્ટાર્ટર પ્લાન પર ચાલી રહ્યાં છો અથવા $49/મહિનાના વ્યાવસાયિક ટાયર

પર.

વારંવાર પૂછાતા પ્રશ્નો

શું ક્વેરી કેશને અક્ષમ કરવાથી હંમેશા ડેટાબેઝ પ્રદર્શનમાં સુધારો થાય છે?

હંમેશા નહીં, પરંતુ લખવા-ભારે વર્કલોડ માટે તે સામાન્ય રીતે કરે છે. ક્વેરી કેશને સુસંગતતા જાળવવા માટે વૈશ્વિક મ્યુટેક્સની જરૂર છે, જે ઉચ્ચ સંમતિ હેઠળ અવરોધ બની જાય છે. MySQL 8.0 એ આ કારણોસર ક્વેરી કેશને સંપૂર્ણપણે દૂર કર્યું. PostgreSQL એ ક્યારેય બિલ્ટ-ઇન ક્વેરી કેશનો અમલ કર્યો નથી, તેના બદલે બફર પૂલ અને એપ્લિકેશન-લેયર કેશીંગ પર આધાર રાખ્યો છે. જો તમારો વાંચવા-લખવાનો ગુણોત્તર ઊંચો છે અને તમારી ક્વેરી ખૂબ જ પુનરાવર્તિત છે, તો ક્વેરી કેશ વાસ્તવિક લાભ પહોંચાડી શકે છે — અન્યથા, તે ટ્યુનિંગ પ્રયાસને બફર પૂલમાં રોકાણ કરો.

મારા બફર પૂલનું કદ યોગ્ય રીતે છે કે કેમ તે હું કેવી રીતે જાણી શકું?

તમારા બફર પૂલ હિટ રેશિયોને મોનિટર કરો: ડિસ્ક રીડની જરૂર હોય તે વિરુદ્ધ પૂલમાંથી આપવામાં આવતી પૃષ્ઠ વિનંતીઓની ટકાવારી. OLTP વર્કલોડ પર 95% ની નીચે હિટ રેશિયો એ પૂલનું કદ વધારવાનો સંકેત છે. MySQL માં, શો ENGINE INNODB સ્ટેટસ ક્વેરી કરો અને બફર પૂલ હિટ રેટ જુઓ. PostgreSQL માં, pg_statio_user_tables વ્યુ બફર પૂલમાંથી પીરસવામાં આવેલ ડિસ્કથી વાંચેલા હીપ બ્લોક્સને એક્સપોઝ કરે છે. તમારા સંપૂર્ણ કાર્યકારી સેટને રાખવાનું લક્ષ્ય રાખો — તમારો સંપૂર્ણ ડેટાસેટ નહીં — રેમમાં રહેનાર.

કેશ સ્તરો અને મલ્ટિ-ટેનન્ટ SaaS વિશ્વસનીયતા વચ્ચે શું સંબંધ છે?

મલ્ટિ-ટેનન્ટ SaaS માં, કેશ સ્તરો "ઘોંઘાટીયા પડોશી" સમસ્યાઓને અટકાવે છે જ્યાં એક ભાડૂતનો ભારે ક્વેરી લોડ અન્ય તમામ ભાડૂતો માટે પ્રદર્શનને બગાડે છે. TTL-આધારિત અમાન્યતા સાથે ભાડૂત-જાગૃત એપ્લિકેશન કેશીંગ, Redis માં ભાડૂત દીઠ હોટ ડેટા રાખે છે, મોટા ખાતાઓમાંથી બફર પૂલ દબાણમાં ભારે ઘટાડો કરે છે. ગરમ બફર પૂલ સાથે જોડાયેલ ડેટાબેઝ-લેવલ કનેક્શન પૂલિંગ એ સુનિશ્ચિત કરે છે કે કોઈપણ એક એકાઉન્ટમાંથી બર્સ્ટ પ્રવૃત્તિ કેશમાંથી શેર કરેલ પૃષ્ઠોને ફ્લશ કરતી નથી અને સમગ્ર પ્લેટફોર્મ પર લેટન્સી સ્પાઇક્સનું કારણ બને છે.


કેશ લેયર્સ ડેટાબેઝ ટ્રીવીયા નથી — તે આર્કિટેક્ચરલ ફાઉન્ડેશન છે જે પ્લેટફોર્મને અલગ પાડે છે જે સ્કેલ પર ઝડપી રહે છે અને જેને સતત ઈન્ફ્રાસ્ટ્રક્ચર ફાયરફાઈટિંગની જરૂર હોય છે. જો તમે એવો વ્યવસાય બનાવી રહ્યા છો અથવા ચલાવી રહ્યા છો કે જેને આ વાસ્તવિકતાઓ માટે પહેલેથી જ ઑપ્ટિમાઇઝ કરેલ પ્લેટફોર્મની જરૂર હોય, તો app.mewayz.com પર Mewayz નું અન્વેષણ કરો — 207 મોડ્યુલ્સ, એક સુસંગત પ્લેટફોર્મ, જે તમારા પ્રથમ વપરાશકર્તાથી તમારા સો-હજાર સુધી વિશ્વસનીય રીતે કાર્ય કરવા માટે બનેલ છે.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Related Guide

HR Management Guide →

Manage your team effectively: employee profiles, leave management, payroll, and performance reviews.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime