Hacker News

தேர்வு மற்றும் வட்டுக்கு இடையே மூன்று கேச் லேயர்கள்

தேர்வு மற்றும் வட்டுக்கு இடையே மூன்று கேச் லேயர்கள் இந்த ஆய்வு மூன்றாக ஆராய்கிறது, அதன் முக்கியத்துவம் மற்றும் சாத்தியமான தாக்கத்தை ஆய்வு செய்கிறது. முக்கிய கருத்துக்கள் மூடப்பட்டிருக்கும் இந்த உள்ளடக்கம் ஆராய்கிறது: அடிப்படைக் கோட்பாடுகள் மற்றும் கோட்பாடுகள் நடைமுறை...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

உங்கள் பயன்பாடு ஒரு SELECT அறிக்கையை வெளியிடும் போது, ​​அந்த வினவல் சுழலும் வட்டு அல்லது மூல ஃபிளாஷ் சேமிப்பகத்தைத் தொடாது - உங்கள் பதில் மைக்ரோ விநாடிகள் அல்லது மில்லி விநாடிகளில் வருமா என்பதை அமைதியாகத் தீர்மானிக்கும் மூன்று தனித்துவமான கேச் லேயர்களைக் கடந்து செல்கிறது. இந்த அடுக்குகளைப் புரிந்துகொள்வது என்பது சிரமமின்றி அளவிடும் வணிகத் தளத்திற்கும் நிஜ உலகச் சுமையின் கீழ் வளைக்கும் தளத்திற்கும் உள்ள வித்தியாசம்.

தேர்வு வினவல் உங்கள் விண்ணப்பத்தை விட்டு வெளியேறும் தருணத்தில் என்ன நடக்கும்?

உங்கள் பயன்பாடு SELECT வினவலை அனுப்பும் தருணத்தில், பெரும்பாலான டெவலப்பர்கள் ஆய்வு செய்யாத பைப்லைனில் அது நுழைகிறது. தரவுத்தள இயந்திரம் ஏதேனும் I/O ஏற்படுவதற்கு முன் கோரிக்கையை இடைமறித்து, SQL ஐ உள்ளக செயலாக்கத் திட்டத்தில் பாகுபடுத்தி, அதன் முதல் வரிசையான பாதுகாப்பை உடனடியாக ஆலோசிக்கிறது: வினவல் முடிவு கேச். ஒரே மாதிரியான அளவுருக்கள் கொண்ட ஒரே மாதிரியான வினவல் சமீபத்தில் செயல்படுத்தப்பட்டிருந்தால், தரவின் ஒரு பக்கத்தைத் தொடாமல், தற்காலிகச் சேமிப்பு முடிவை எஞ்சின் திரும்பப் பெறலாம். இது சில சமயங்களில் வினவல் கேச் அல்லது ரிசல்ட் கேச் என அழைக்கப்படுகிறது, மேலும் அதிக வாசிப்பு, குறைந்த எழுதும் பணிச்சுமைகளில் - பகுப்பாய்வு டாஷ்போர்டுகள் மற்றும் அறிக்கையிடல் தொகுதிகள் போன்றவை - இது பெரும்பாலான வட்டு வாசிப்புகளை முழுவதுமாக அகற்றும்.

வினவல் கேச் தரவு பிறழ்வுகளுக்கு அதிக உணர்திறன் கொண்டது என்பது இங்குள்ள முக்கியமான நுண்ணறிவு. அடிப்படை அட்டவணைக்கு எதிராக ஏதேனும் செருகு, புதுப்பிப்பு அல்லது DELETE தொடர்புடைய தற்காலிக சேமிப்பு முடிவுகளை செல்லாததாக்கும். இதனால்தான் எழுதும்-கடுமையான பரிவர்த்தனை அமைப்புகள் வினவல் தற்காலிக சேமிப்பை முழுவதுமாக முடக்கி, அதற்குப் பதிலாக ஆழமான அடுக்குகளை நம்பியிருக்கின்றன.

Buffer Pool என்றால் என்ன, நீங்கள் நினைப்பதை விட இது ஏன் முக்கியமானது?

இரண்டாவது கேச் லேயர் — மற்றும் தயாரிப்பு அமைப்புகளில் மிக முக்கியமானது — buffer pool (PostgreSQL இல் பகிரப்பட்ட பஃபர் என்று அழைக்கப்படுகிறது, MySQL இல் InnoDB பஃபர் பூல்). சமீபத்தில் அணுகப்பட்ட தரவுப் பக்கங்களை வைத்திருக்க தரவுத்தள இயந்திரம் பயன்படுத்தும் RAM இன் பகுதி இது. ரிசல்ட் கேச்சில் இருந்து வினவலை வழங்க முடியாதபோது, டிஸ்க் ரீட் ஒன்றை வழங்குவதற்கு முன், தேவையான தரவுப் பக்கங்கள் ஏற்கனவே பஃபர் பூலில் உள்ளதா என்பதை இன்ஜின் சரிபார்க்கிறது.

இடையகக் குளம் தற்காலிக மற்றும் இடஞ்சார்ந்த இருப்பிடத்தின் அடிப்படையில் செயல்படுகிறது: சமீபத்தில் அணுகப்பட்ட தரவு மீண்டும் அணுகப்பட வாய்ப்புள்ளது, மேலும் அணுகப்பட்ட தரவுகளுக்கு அருகில் சேமிக்கப்பட்ட தரவு விரைவில் அணுகப்படும். தரவுத்தள நிர்வாகிகள், தாங்கல் பூல் அளவை, அவர்கள் எடுக்கும் மிக உயர்ந்த-செயல்திறன் உள்ளமைவு முடிவுகளில் ஒன்றாக மாற்றுகிறார்கள். மிகவும் சிறியதாக இருக்கும் ஒரு பஃபர் பூல், நிலையான பக்க வெளியேற்றத்தை ஏற்படுத்துகிறது, இது த்ராஷிங் எனப்படும் ஒரு நிகழ்வை உருவாக்குகிறது, இதில் கணினி வினவல்களை இயக்குவதை விட கேச் மிஸ்களை நிர்வகிப்பதற்கு அதிக நேரம் செலவிடுகிறது.

முக்கிய நுண்ணறிவு: பெரும்பாலான OLTP பணிச்சுமைகளில், ஒரு நல்ல அளவிலான இடையகக் குளம் என்பது 95-99% தரவு வாசிப்புகளில் ரேமில் இருந்து வழங்கப்படுகிறது. வேலை செய்யும் தொகுப்பு - வினவல்கள் அடிக்கடி தொடும் உங்கள் தரவின் துணைக்குழு - பெரும்பாலும் மொத்த தரவுத்தள அளவை விட மிகவும் சிறியதாக இருக்கும். உங்களின் முழு தரவுத்தொகுப்பையும் அல்ல, உங்கள் பணித் தொகுப்பிற்கு ஏற்றவாறு உங்கள் இடையகக் குளத்தை அளவிடுவது, நீங்கள் எடுக்கக்கூடிய அதிக வருமானம் தரும் டியூனிங் செயலாகும்.

ஆப்பரேட்டிங் சிஸ்டம் கேச் ரேம் மற்றும் டிஸ்க்கிற்கு இடையே உள்ள இடைவெளியை எவ்வாறு நிரப்புகிறது?

தரவுத்தளத்தின் சொந்த பஃபர் பூல் தவறவிட்டாலும், உண்மையான வட்டு வாசிப்புக்கு வினவல் இன்னும் விதிக்கப்படவில்லை. இயக்க முறைமை ஒரு பக்க தற்காலிக சேமிப்பை (கோப்பு முறைமை கேச் என்றும் அழைக்கப்படுகிறது) பராமரிக்கிறது, இது கர்னல்-நிர்வகிக்கப்பட்ட 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 SSDகள் மற்றும் RAID கன்ட்ரோலர்கள் பேட்டரி அல்லது மின்தேக்கி காப்புப் பிரதியுடன் உள் எழுதும் கேச்களை பராமரிக்கின்றன. இது fsync தாமதத்தின் இழப்பில் எழுதும் செயல்திறனைத் தியாகம் செய்யாமல் நீடித்து நிலைத்தன்மையைப் பாதுகாக்கிறது.
  • Application-layer cache (Redis, Memcached): தரவுத்தளத்திற்கு முழுவதுமாக மேலே அமர்ந்து, வரிசைப்படுத்தப்பட்ட வினவல் முடிவுகள் அல்லது தரவுத்தளத்தைத் தாக்குவதைத் தவிர்ப்பதற்காக கணக்கிடப்பட்ட பொருள்களை தேக்ககப்படுத்துகிறது — ஒரே நேரத்தில் ஆயிரக்கணக்கான பயனர்களுக்குச் சேவை செய்யும் பல வாடகை SaaS இயங்குதளங்களுக்கு ஏற்றது.

நவீன வணிக பிளாட்ஃபார்ம்கள், அளவுகளில் நம்பகத்தன்மைக்காக கேச் கட்டமைப்பை எவ்வாறு பயன்படுத்த முடியும்?

சிஆர்எம், ப்ராஜெக்ட் மேனேஜ்மென்ட், இ-காமர்ஸ், அனலிட்டிக்ஸ் போன்ற பல செயல்பாட்டுத் தொகுதிகளில் செயல்படும் வணிகங்களுக்கு, அணிகள் வளரும்போது, கேச் ஆர்கிடெக்சர் நேரடியாக இயங்குதளப் பதிலைத் தீர்மானிக்கிறது. நன்கு அடுக்கப்பட்ட கேச் மூலோபாயத்தில் கட்டமைக்கப்பட்ட இயங்குதளங்கள், விகிதாசார உள்கட்டமைப்பு செலவு இல்லாமல் பல்லாயிரக்கணக்கான ஒரே நேரத்தில் பயனர்களுக்கு சேவை செய்ய முடியும். கேச் எல்லைகளை மதிக்கும் தரவு அணுகல் வடிவங்களை வடிவமைப்பது முக்கியமானது: சூடான தரவை சிறியதாக வைத்திருத்தல் மற்றும் அணுகல் வடிவங்களை யூகிக்கக்கூடியதாக வைத்திருத்தல், பஃபர் பூல் சுமைகளை விநியோகிக்க வாசிப்புப் பிரதிகளைப் பயன்படுத்துதல் மற்றும் ஒரே நேரத்தில் பல பயனர்களுக்கு ஒரே மாதிரியான தரவை வழங்கும் இறுதிப்புள்ளிகளுக்கு ரெடிஸ் போன்ற பயன்பாட்டு அடுக்கு தற்காலிக சேமிப்பை தரவுத்தளத்தின் முன் நிலைநிறுத்துதல்.

Mewayz இந்த தத்துவத்தை மனதில் கொண்டு கட்டமைக்கப்பட்டவர். 207 ஒருங்கிணைந்த வணிக தொகுதிகள் 138,000 பயனர்களுக்கு மேல் ஆற்றலுடன், இயங்குதளத்தின் தரவு அடுக்கு வடிவமைக்கப்பட்டுள்ளது. இதனால் பெரும்பாலான வாசிப்புகள் தற்காலிக சேமிப்பில் இருந்து வழங்கப்படுகின்றன - பதிலளிப்பு நேரத்தை வேகமாக வைத்திருத்தல் மற்றும் நீங்கள் $19/மாதம் தொடக்கத் திட்டத்தில் இயங்குகிறீர்களோ அல்லது $49/மாதம் தொழில்முறை அடுக்கு

இல் இயங்கினாலும் உள்கட்டமைப்புச் செலவுகளைக் கணிக்க முடியும்.

அடிக்கடி கேட்கப்படும் கேள்விகள்

வினவல் தற்காலிக சேமிப்பை முடக்குவது எப்போதும் தரவுத்தள செயல்திறனை மேம்படுத்துமா?

எப்போதும் இல்லை, ஆனால் எழுதும்-அதிகமான பணிச்சுமைகளுக்கு இது பொதுவாகச் செய்யும். வினவல் தற்காலிகச் சேமிப்பிற்கு நிலைத்தன்மையை பராமரிக்க உலகளாவிய மியூடெக்ஸ் தேவைப்படுகிறது, இது அதிக ஒத்திசைவின் கீழ் ஒரு தடையாக மாறும். இந்த காரணத்திற்காக MySQL 8.0 வினவல் தற்காலிக சேமிப்பை முழுவதுமாக நீக்கியது. PostgreSQL ஒரு உள்ளமைக்கப்பட்ட வினவல் தற்காலிக சேமிப்பை ஒருபோதும் செயல்படுத்தவில்லை, அதற்குப் பதிலாக பஃபர் பூல் மற்றும் அப்ளிகேஷன்-லேயர் கேச்சிங் ஆகியவற்றை நம்பியுள்ளது. உங்களின் வாசிப்பு-எழுத விகிதம் அதிகமாகவும், உங்கள் வினவல்கள் மீண்டும் மீண்டும் நிகழக்கூடியதாகவும் இருந்தால், வினவல் கேச் உண்மையான ஆதாயங்களை அளிக்கும் - இல்லையெனில், அந்த டியூனிங் முயற்சியை பஃபர் பூலில் முதலீடு செய்யுங்கள்.

எனது பஃபர் பூலின் அளவு சரியாக உள்ளதா என்று எனக்கு எப்படித் தெரியும்?

உங்கள் பஃபர் பூல் ஹிட் ரேஷியோவைக் கண்காணிக்கவும்: டிஸ்க் ரீட் தேவைப்படுவதற்கு எதிராக பூலில் இருந்து வழங்கப்பட்ட பக்கக் கோரிக்கைகளின் சதவீதம். OLTP பணிச்சுமையில் 95%க்கும் குறைவான வெற்றி விகிதம் குளத்தின் அளவை அதிகரிப்பதற்கான சமிக்ஞையாகும். MySQL இல், SHOW ENGINE INNODB STATUS என வினவவும் மற்றும் பஃபர் பூல் வெற்றி விகிதத்தைப் பார்க்கவும். PostgreSQL இல், pg_statio_user_tables காட்சியானது, டிஸ்கிலிருந்து படிக்கப்பட்ட ஹீப் பிளாக்குகளை, பஃபர் பூலில் இருந்து வழங்கப்படுவதை வெளிப்படுத்துகிறது. உங்களின் முழு வேலைத் தொகுப்பையும் - உங்கள் முழு தரவுத்தொகுப்பு அல்ல - RAM இல் வசிப்பிட வேண்டும்.

கேச் லேயர்களுக்கும் பல குத்தகைதாரர்கள் SaaS நம்பகத்தன்மைக்கும் என்ன தொடர்பு?

பல்வேறு குத்தகைதாரர் SaaS இல், கேச் லேயர்கள் "சத்தமில்லாத அண்டை" சிக்கல்களைத் தடுக்கின்றன, அங்கு ஒரு குத்தகைதாரரின் அதிக வினவல் சுமை மற்ற அனைத்து குத்தகைதாரர்களின் செயல்திறனைக் குறைக்கிறது. TTL-அடிப்படையிலான செல்லாததாக்குதல் மூலம் குத்தகைதாரர்-விழிப்புணர்வு பயன்பாட்டு தேக்ககமானது, ரெடிஸில் ஒவ்வொரு குத்தகைதாரருக்கும் ஹாட் டேட்டாவை வைத்திருக்கிறது, பெரிய கணக்குகளில் இருந்து தாங்கல் பூல் அழுத்தத்தை வெகுவாகக் குறைக்கிறது. டேட்டாபேஸ்-லெவல் கனெக்ஷன் பூலிங், சூடான பஃபர் பூல் உடன் இணைந்து, எந்த ஒரு கணக்கிலிருந்தும் பர்ஸ்ட் செயல்பாடு, தற்காலிக சேமிப்பிலிருந்து பகிரப்பட்ட பக்கங்களை பறிக்காது மற்றும் பிளாட்ஃபார்ம் முழுவதும் லேட்டன்சி ஸ்பைக்குகளை ஏற்படுத்தாது என்பதை உறுதி செய்கிறது.


கேச் அடுக்குகள் தரவுத்தள ட்ரிவியா அல்ல - அவை நிலையான உள்கட்டமைப்பு தீயணைப்பு தேவைப்படும் தளங்களிலிருந்து வேகமாக இருக்கும் தளங்களை பிரிக்கும் கட்டடக்கலை அடித்தளமாகும். இந்த உண்மைகளுக்காக ஏற்கனவே மேம்படுத்தப்பட்ட இயங்குதளம் தேவைப்படும் வணிகத்தை நீங்கள் உருவாக்கி அல்லது நடத்திக் கொண்டிருந்தால், App.mewayz.com இல் Mewayz ஐ ஆராயுங்கள் — 207 தொகுதிகள், உங்கள் முதல் பயனரிடமிருந்து உங்கள் நூறாயிரத்தில் ஒருவருக்கு நம்பகத்தன்மையுடன் செயல்படும் வகையில் உருவாக்கப்பட்ட ஒரு ஒத்திசைவான தளம்.