ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

வணக்கம்! என் பெயர் அலெக்ஸி பியான்கோவ், நான் ஸ்போர்ட்மாஸ்டர் நிறுவனத்தில் டெவலப்பர். அதில் அஞ்சல் 2012 இல் ஸ்போர்ட்மாஸ்டர் இணையதளத்தில் வேலை எப்படி தொடங்கியது, என்ன முயற்சிகளை நாங்கள் "தள்ளியது" மற்றும் நேர்மாறாக, நாங்கள் என்ன ரேக் சேகரித்தோம் என்பதை நான் சொன்னேன்.

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

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

ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

ஸ்போர்ட்மாஸ்டர் இணையதளத்தின் புதிய பதிப்பு தயாரிப்பில் இறங்கியதும், லேசாகச் சொன்னால், மிகவும் வசதியாக இல்லாத வகையில் தரவுகள் பெறப்பட்டன. தளத்தின் முந்தைய பதிப்பிற்காக (பிட்ரிக்ஸ்) தயாரிக்கப்பட்ட அட்டவணைகள் அடிப்படையாக இருந்தது, இது ETL க்கு இழுக்கப்பட வேண்டும், ஒரு புதிய வடிவத்திற்கு கொண்டு வரப்பட்டு மேலும் ஒரு டஜன் அமைப்புகளிலிருந்து பல்வேறு சிறிய விஷயங்களால் வளப்படுத்தப்பட்டது. தளத்தில் ஒரு புதிய படம் அல்லது தயாரிப்பு விளக்கம் தோன்றுவதற்கு, நீங்கள் அடுத்த நாள் வரை காத்திருக்க வேண்டும் - இரவில் மட்டுமே, ஒரு நாளுக்கு ஒரு முறை புதுப்பிக்கப்படும்.

முதலில், தயாரிப்பிற்குச் சென்ற முதல் வாரங்களில் இருந்து பல கவலைகள் இருந்தன, உள்ளடக்க மேலாளர்களுக்கு இதுபோன்ற சிரமங்கள் ஒரு அற்பமானவை. ஆனால், எல்லாம் சரியாகியவுடன், திட்டத்தின் வளர்ச்சி தொடர்ந்தது - சில மாதங்களுக்குப் பிறகு, 2015 ஆம் ஆண்டின் தொடக்கத்தில், நாங்கள் நிர்வாகக் குழுவை தீவிரமாக உருவாக்கத் தொடங்கினோம். 2015 மற்றும் 2016 ஆம் ஆண்டுகளில், எல்லாம் சரியாக நடக்கிறது, நாங்கள் தவறாமல் வெளியிடுகிறோம், நிர்வாகக் குழு மேலும் மேலும் தரவுத் தயாரிப்பை உள்ளடக்கியது, மேலும் விரைவில் எங்கள் குழுவிற்கு மிக முக்கியமான மற்றும் சிக்கலான விஷயத்தை - தயாரிப்பு ஒப்படைக்கப்படும் என்பதற்கு நாங்கள் தயாராகி வருகிறோம். சுற்று (அனைத்து தயாரிப்புகளிலும் தரவை முழுமையாக தயாரித்தல் மற்றும் பராமரித்தல்). ஆனால் 2017 கோடையில், சரக்கு சுற்று தொடங்குவதற்கு சற்று முன்பு, திட்டம் மிகவும் கடினமான சூழ்நிலையில் தன்னைக் கண்டுபிடிக்கும் - துல்லியமாக கேச்சிங் சிக்கல்கள் காரணமாக. இந்த இரண்டு பகுதி வெளியீட்டின் இரண்டாம் பாகத்தில் இந்த அத்தியாயத்தைப் பற்றி பேச விரும்புகிறேன்.

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

கேச்சிங் பணி நிகழும்போது

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

முதல் கட்டங்களில், தேர்வுமுறை மற்றும் குறியீடு செயல்திறன் பற்றி நாங்கள் சிந்திக்க மாட்டோம். முக்கிய விஷயம் செயல்பாடு, விரைவாக ஒரு பைலட்டை உருட்டுதல் மற்றும் கருதுகோள்களை பரிசோதித்தல். சுமை அதிகரித்தால், இரும்பை பம்ப் செய்கிறோம். நாங்கள் அதை இரண்டு அல்லது மூன்று முறை, ஐந்து மடங்கு, ஒருவேளை 10 மடங்கு அதிகரிக்கிறோம். எங்கோ இங்கே - நிதி இனி அனுமதிக்காது. பயனர்களின் எண்ணிக்கை எத்தனை மடங்கு அதிகரிக்கும்? இது 2-5-10 போல இருக்காது, ஆனால் வெற்றியடைந்தால், அது 100-1000 முதல் 100 ஆயிரம் மடங்கு வரை இருக்கும். அதாவது, விரைவில் அல்லது பின்னர், நீங்கள் தேர்வுமுறை செய்ய வேண்டும்.

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

அதாவது, செயல்பாட்டை செயல்படுத்துவது எங்களுக்கு முக்கியமல்ல. முடிவு என்ன அளவுருக்களைப் பொறுத்தது என்பதை அறிந்து கொள்வது போதுமானது. பின்னர், அளவுரு மதிப்புகள் ஒரு பொருளின் வடிவத்தில் குறிப்பிடப்பட்டால், சில சேமிப்பகங்களில் ஒரு திறவுகோலாகப் பயன்படுத்தப்படலாம், பின்னர் கணக்கீட்டின் முடிவைச் சேமித்து அடுத்த முறை அணுகும்போது படிக்கலாம். செயல்பாட்டைச் செயல்படுத்துவதை விட இந்த முடிவை எழுதுவதும் படிப்பதும் வேகமாக இருந்தால், வேகத்தின் அடிப்படையில் நமக்கு லாபம் உள்ளது. லாபத்தின் அளவு 100, 1000 மற்றும் 100 ஆயிரம் மடங்குகளை அடையலாம் (10 ^ 5 ஒரு விதிவிலக்கு, ஆனால் மிகவும் பின்தங்கிய தளத்தின் விஷயத்தில், இது மிகவும் சாத்தியமாகும்).

கேச்சிங் சிஸ்டத்திற்கான அடிப்படை தேவைகள்

கேச்சிங் சிஸ்டத்தின் தேவையாக மாறக்கூடிய முதல் விஷயம் வேகமான வாசிப்பு வேகம் மற்றும் சற்றே குறைந்த அளவிற்கு, எழுதும் வேகம். இது உண்மைதான், ஆனால் நாம் உற்பத்திக்கான அமைப்பை உருவாக்கும் வரை மட்டுமே.

இந்த வழக்கை விளையாடுவோம்.

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

வன்பொருளின் ஆரம்ப விநியோகம் 2-5 மடங்கு அதிகமாக இருந்தால், தற்காலிக சேமிப்பின் உதவியுடன் செயல்திறனை 10 மடங்கு அல்லது, ஒரு நல்ல நிலையில், 100 மடங்கு, சில இடங்களில் ஒருவேளை ஒரு காரணி மூலம் மேம்படுத்தலாம். 1000. அதாவது, அதே வன்பொருளில் - 100 மடங்கு அதிகமான கோரிக்கைகளைச் செயல்படுத்துகிறோம். அருமை, நீங்கள் கிங்கர்பிரெட் தகுதியானவர்!

ஆனால் இப்போது, ​​ஒரு நல்ல தருணத்தில், தற்செயலாக, கணினி செயலிழந்தது மற்றும் தற்காலிக சேமிப்பு சரிந்தது. சிறப்பு எதுவும் இல்லை - எல்லாவற்றிற்கும் மேலாக, "அதிக படிக்க மற்றும் எழுதும் வேகம், மீதமுள்ளவை ஒரு பொருட்டல்ல" என்ற தேவையின் அடிப்படையில் தற்காலிக சேமிப்பு தேர்ந்தெடுக்கப்பட்டது.

தொடக்க சுமையுடன் ஒப்பிடுகையில், எங்கள் இரும்பு இருப்பு 2-5 மடங்கு இருந்தது, இந்த நேரத்தில் சுமை 10-100 மடங்கு அதிகரித்தது. தற்காலிக சேமிப்பைப் பயன்படுத்தி, கனமான செயல்பாடுகளுக்கான அழைப்புகளை அகற்றினோம், எனவே எல்லாம் வேலை செய்தன. இப்போது, ​​ஒரு தற்காலிக சேமிப்பு இல்லாமல், நமது கணினி எத்தனை முறை வேகத்தை குறைக்கும்? நமக்கு என்ன நடக்கும்? அமைப்பு வீழ்ச்சியடையும்.

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

முடிவு: அதிக ஏற்றப்பட்ட உற்பத்தித் திட்டங்களுக்கு அதிக வாசிப்பு மற்றும் எழுதும் வேகத்தைக் கொண்டிருப்பது மட்டுமல்லாமல், தரவுப் பாதுகாப்பு மற்றும் தோல்விகளுக்கு எதிர்ப்பை உறுதிப்படுத்தவும் கேச்சிங் அமைப்பு தேவைப்படுகிறது.

தேர்வின் வேதனை

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

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

நாங்கள் என்ன செய்தோம்:

  1. Google மற்றும் StackOverflow பரிந்துரைக்கும் அனைத்து அமைப்புகளின் பட்டியலை நாங்கள் உருவாக்குகிறோம். 30க்கு சற்று மேல்
  2. உற்பத்திக்கான பொதுவான சுமையுடன் நாங்கள் சோதனைகளை எழுதுகிறோம். இதைச் செய்ய, ஒரு உற்பத்தி சூழலில் கணினி வழியாக செல்லும் தரவை நாங்கள் பதிவு செய்துள்ளோம் - நெட்வொர்க்கில் அல்ல, ஆனால் கணினியில் உள்ள தரவுகளுக்கான ஒரு வகையான ஸ்னிஃபர். துல்லியமாக இந்த தரவு சோதனைகளில் பயன்படுத்தப்பட்டது.
  3. முழு குழுவுடன், அனைவரும் பட்டியலிலிருந்து அடுத்த அமைப்பைத் தேர்ந்தெடுத்து, அதை உள்ளமைத்து, சோதனைகளை இயக்குகிறார்கள். இது சோதனையில் தேர்ச்சி பெறாது, சுமைகளை சுமக்காது - நாம் அதை தூக்கி எறிந்துவிட்டு வரிசையில் அடுத்த இடத்திற்கு செல்கிறோம்.
  4. 17 வது அமைப்பில் எல்லாம் நம்பிக்கையற்றது என்பது தெளிவாகியது. பாட்டிலை அசைப்பதை நிறுத்துங்கள், தீவிரமாக சிந்திக்க வேண்டிய நேரம் இது.

ஆனால் முன் தயாரிக்கப்பட்ட சோதனைகளில் "வேகத்தை அடையும்" ஒரு அமைப்பை நீங்கள் தேர்வு செய்ய வேண்டியிருக்கும் போது இது ஒரு விருப்பமாகும். இன்னும் அத்தகைய சோதனைகள் இல்லை மற்றும் நீங்கள் விரைவாக தேர்வு செய்ய விரும்பினால் என்ன செய்வது?

இந்த விருப்பத்தை மாதிரியாக்குவோம் (ஒரு நடுத்தர+ டெவலப்பர் வெற்றிடத்தில் வாழ்கிறார் என்று கற்பனை செய்வது கடினம், மேலும் தேர்ந்தெடுக்கும் நேரத்தில் எந்த தயாரிப்பை முதலில் முயற்சி செய்ய வேண்டும் என்பது குறித்த அவரது விருப்பத்தை இன்னும் முறைப்படுத்தவில்லை - எனவே, மேலும் பகுத்தறிவு ஒரு கோட்பாட்டாளர்/தத்துவம்/ ஒரு ஜூனியர் பற்றி).

தேவைகளைத் தீர்மானித்த பிறகு, பெட்டியிலிருந்து ஒரு தீர்வைத் தேர்ந்தெடுக்கத் தொடங்குவோம். சக்கரத்தை ஏன் மீண்டும் கண்டுபிடிப்போம்: நாங்கள் சென்று ஒரு ரெடிமேட் கேச்சிங் சிஸ்டத்தை எடுப்போம்.

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

பட்டியல் முழுமையானது அல்ல; டஜன் கணக்கான அமைப்புகள் உள்ளன. மற்றும் நாம் ஒரு விஷயத்தை மட்டும் திருகுவோம். “அழகு போட்டிக்கு” ​​தேர்ந்தெடுக்கப்பட்ட 5 அமைப்புகளை எடுத்து தேர்வு செய்யலாம். வெற்றியாளர் யார்?

Redis

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

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

EhCache

EhCache - "ஜாவாவிற்கு மிகவும் பரவலாகப் பயன்படுத்தப்படும் கேச்" (அதிகாரப்பூர்வ வலைத்தளத்திலிருந்து முழக்கத்தின் மொழிபெயர்ப்பு). மேலும் ஓப்பன்சோர்ஸ். ரெடிஸ் ஜாவாவுக்கானது அல்ல, பொதுவானது என்பதை நாங்கள் புரிந்துகொள்கிறோம், அதனுடன் தொடர்பு கொள்ள உங்களுக்கு ஒரு ரேப்பர் தேவை. மேலும் EhCache மிகவும் வசதியாக இருக்கும். அமைப்பு வேறு என்ன உறுதியளிக்கிறது? நம்பகத்தன்மை, நிரூபிக்கப்பட்ட, முழு செயல்பாடு. சரி, இது மிகவும் பொதுவானது. மற்றும் டெராபைட் டேட்டாவை தேக்குகிறது.

Redis மறந்துவிட்டது, EhCache ஐ தேர்வு செய்ய நான் தயாராக இருக்கிறேன்.

ஆனால் தேசபக்தியின் உணர்வு டரான்டூலில் என்ன நல்லது என்பதைப் பார்க்க என்னைத் தள்ளுகிறது.

டரான்டூல்

டரான்டூல் - "நிகழ்நேர தரவு ஒருங்கிணைப்பு தளம்" என்ற பதவியை சந்திக்கிறது. இது மிகவும் சிக்கலானதாகத் தெரிகிறது, எனவே பக்கத்தை விரிவாகப் படித்து உரத்த அறிக்கையைக் காண்கிறோம்: "ரேமில் உள்ள 100% தரவை தேக்ககப்படுத்துகிறது." இது கேள்விகளை எழுப்ப வேண்டும் - எல்லாவற்றிற்கும் மேலாக, நினைவகத்தை விட அதிகமான தரவு இருக்கலாம். விளக்கம் என்னவென்றால், டேரான்டூல் நினைவகத்திலிருந்து வட்டுக்குத் தரவை எழுத வரிசைப்படுத்தலை இயக்கவில்லை. மாறாக, இது கணினியின் குறைந்த-நிலை அம்சங்களைப் பயன்படுத்துகிறது, நினைவகம் மிகச் சிறந்த I/O செயல்திறனுடன் கோப்பு முறைமைக்கு எளிமையாக மாற்றப்படும். பொதுவாக, அவர்கள் அற்புதமான மற்றும் குளிர்ச்சியான ஒன்றைச் செய்தார்கள்.

செயல்படுத்தல்களைப் பார்ப்போம்: Mail.ru கார்ப்பரேட் நெடுஞ்சாலை, Avito, Beeline, Megafon, Alfa-Bank, Gazprom...

Tarantool பற்றி இன்னும் ஏதேனும் சந்தேகங்கள் இருந்தால், Mastercard இல் செயல்படுத்தப்பட்ட வழக்கு என்னை முடித்து வைக்கிறது. நான் டரான்டூலை எடுத்துக்கொள்கிறேன்.

எப்படி இருந்தாலும்…

எரியூட்ட

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

செயலாக்கங்கள்: Sberbank, American Airlines, Yahoo! ஜப்பான். பின்னர் Ignite ஆனது Sberbank இல் மட்டும் செயல்படுத்தப்படவில்லை என்பதை நான் கண்டுபிடித்தேன், ஆனால் SberTech குழு அதன் நபர்களை Ignite குழுவிற்கு அனுப்பி தயாரிப்பை செம்மைப்படுத்துகிறது. இது முற்றிலும் வசீகரமாக உள்ளது மற்றும் நான் இக்னைட் எடுக்க தயாராக இருக்கிறேன்.

ஏன் என்பது தெளிவாகத் தெரியவில்லை, நான் ஐந்தாவது புள்ளியைப் பார்க்கிறேன்.

ஹேசல்காஸ்ட்

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

அவ்வளவுதான், நான் ஹேசல்காஸ்ட் எடுக்க தயாராக இருக்கிறேன்.

ஒப்பீடு

ஆனால் நீங்கள் பார்த்தால், ஐந்து வேட்பாளர்களும் ஒவ்வொருவரும் சிறந்தவர்கள் என்று விவரிக்கப்பட்டுள்ளனர். எப்படி தேர்வு செய்வது? எது மிகவும் பிரபலமானது என்று பார்க்கலாம், ஒப்பிட்டுப் பாருங்கள், தலைவலி போய்விடும்.

இது போன்ற ஒன்றை நாம் காண்கிறோம் கண்ணோட்டத்தை, எங்கள் 5 அமைப்புகளைத் தேர்ந்தெடுக்கவும்.

ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

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

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

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

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

ஹெர்ட்ஸ் எதிராக ரெடிஸ்

இதை நாங்கள் காண்கிறோம் ஒப்பீடு:
ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

நீலம் என்பது ரெடிஸ், சிவப்பு என்பது ஹேசல்காஸ்ட். ஹேசல்காஸ்ட் எல்லா இடங்களிலும் வெற்றி பெறுகிறது, இதற்கு ஒரு காரணம் உள்ளது: இது மல்டி த்ரெட், மிகவும் உகந்ததாக உள்ளது, ஒவ்வொரு நூலும் அதன் சொந்த பகிர்வுடன் வேலை செய்கிறது, எனவே தடுப்பு இல்லை. மேலும் ரெடிஸ் ஒற்றை-த்ரெட்; இது நவீன மல்டி-கோர் CPU களில் இருந்து பயனடையாது. ஹேசல்காஸ்டில் ஒத்திசைவற்ற I/O உள்ளது, Redis-Jedis பிளாக்கிங் சாக்கெட்டுகளைக் கொண்டுள்ளது. எல்லாவற்றிற்கும் மேலாக, ஹேசல்காஸ்ட் ஒரு பைனரி நெறிமுறையைப் பயன்படுத்துகிறது, மேலும் ரெடிஸ் உரை-மையமானது, அதாவது இது திறனற்றது.

ஒரு வேளை, ஒப்பிடுவதற்கான மற்றொரு ஆதாரத்திற்கு வருவோம். அவர் நமக்கு என்ன காட்டுவார்?

ரெடிஸ் Vs ஹெர்ட்ஸ்

இன்னும் ஒரு ஒப்பீடு:
ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

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

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

பாட்டிலை அசைப்பது

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

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

இந்த முறை இந்த உதாரணத்துடன் மிகவும் நன்றாக விளக்கப்பட்டுள்ளது.

ஒரு காலத்தில் பாய்மரப் படகை ஒரு பாட்டிலில் சேகரிப்பது மிகவும் பிரபலமாக இருந்தது. அதே நேரத்தில், பாய்மரப் படகு பெரியது மற்றும் உடையக்கூடியது, மற்றும் பாட்டிலின் கழுத்து மிகவும் குறுகியது, அதை உள்ளே தள்ள முடியாது. அதை எவ்வாறு இணைப்பது?

ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

அத்தகைய ஒரு முறை உள்ளது, மிக வேகமாக மற்றும் மிகவும் பயனுள்ளதாக இருக்கும்.

கப்பல் சிறிய விஷயங்களைக் கொண்டுள்ளது: குச்சிகள், கயிறுகள், படகோட்டம், பசை. இதையெல்லாம் ஒரு பாட்டிலில் போட்டோம்.
நாங்கள் இரண்டு கைகளாலும் பாட்டிலை எடுத்து குலுக்க ஆரம்பிக்கிறோம். நாங்கள் அவளை அசைத்து அசைக்கிறோம். பொதுவாக அது முழுமையான குப்பையாக மாறிவிடும். ஆனால் சில நேரங்களில். சில நேரங்களில் அது ஒரு கப்பலாக மாறிவிடும்! இன்னும் துல்லியமாக, ஒரு கப்பலுக்கு ஒத்த ஒன்று.

இதை நாங்கள் ஒருவரிடம் காட்டுகிறோம்: “செரியோகா, உனக்குத் தெரிகிறதா!?” உண்மையில், தூரத்திலிருந்து அது ஒரு கப்பல் போல் தெரிகிறது. ஆனால் இதை தொடர அனுமதிக்க முடியாது.

இன்னொரு வழியும் இருக்கிறது. ஹேக்கர்கள் போன்ற மேம்பட்ட தோழர்களால் அவை பயன்படுத்தப்படுகின்றன.

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

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

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

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

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

பாட்டில் கழுத்தை எங்கே தேடுவது

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

ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

கணினி விநியோகிக்கப்பட்டால், எங்களிடம் பல சேவையகங்கள் இருக்கும் (6). நான்கு உள்ளன என்று சொல்லலாம் (அவற்றை படத்தில் வைப்பது வசதியானது, ஆனால், நிச்சயமாக, நீங்கள் விரும்பும் அளவுக்கு அவற்றில் பல இருக்கலாம்). சேவையகங்கள் வெவ்வேறு முனைகளில் இருந்தால், அவை அனைத்தும் சில குறியீட்டை இயக்குகின்றன, அவை இந்த முனைகள் ஒரு கிளஸ்டரை உருவாக்குவதை உறுதிசெய்யும் மற்றும் முறிவு ஏற்பட்டால், ஒன்றோடொன்று இணைக்கப்பட்டு அடையாளம் காணும்.

நமக்கு குறியீடு தர்க்கம் (2) தேவை, இது உண்மையில் தேக்ககத்தைப் பற்றியது. வாடிக்கையாளர்கள் இந்த குறியீட்டுடன் சில API மூலம் தொடர்பு கொள்கின்றனர். கிளையண்ட் குறியீடு (1) ஒரே JVMக்குள் இருக்கலாம் அல்லது பிணையத்தில் அணுகலாம். உள்ளே செயல்படுத்தப்படும் தர்க்கம் என்பது எந்தெந்த பொருட்களை தற்காலிக சேமிப்பில் விடுவது, எதை வெளியேற்றுவது என்பதுதான். தற்காலிக சேமிப்பை சேமிக்க நினைவகம் (3) ஐப் பயன்படுத்துகிறோம், ஆனால் தேவைப்பட்டால், சில தரவை வட்டில் சேமிக்கலாம் (4).

எந்தெந்த பகுதிகளில் சுமை ஏற்படும் என்று பார்க்கலாம். உண்மையில், ஒவ்வொரு அம்பும் ஒவ்வொரு முனையும் ஏற்றப்படும். முதலாவதாக, கிளையன்ட் குறியீடு மற்றும் ஏபிஐ இடையே, இது பிணைய தொடர்பு என்றால், வீழ்ச்சி மிகவும் கவனிக்கத்தக்கது. இரண்டாவதாக, api இன் கட்டமைப்பிற்குள் - சிக்கலான தர்க்கத்துடன் நாம் அதை மிகைப்படுத்தினால், CPU உடன் சிக்கல்களை எதிர்கொள்ளலாம். தர்க்கம் நினைவகத்தில் நேரத்தை வீணாக்காமல் இருந்தால் நன்றாக இருக்கும். கோப்பு முறைமையுடன் தொடர்பு உள்ளது - வழக்கமான பதிப்பில் இது வரிசைப்படுத்துதல் / மீட்டமைத்தல் மற்றும் எழுதுதல் / வாசிப்பது.

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

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

ஹேசல்காஸ்ட்

இந்த சிதைவை எங்கள் பட்டியலில் எவ்வாறு பயன்படுத்துவது என்று பார்ப்போம். உதாரணமாக, ஹேசல்காஸ்ட்.

Hazelcast இலிருந்து தரவை வைக்க/எடுக்க, கிளையன்ட் குறியீடு (1) api ஐ அணுகுகிறது. உட்பொதிக்கப்பட்டதாக சேவையகத்தை இயக்க Hz உங்களை அனுமதிக்கிறது, மேலும் இந்த விஷயத்தில், API ஐ அணுகுவது JVM க்குள் ஒரு முறை அழைப்பாகும், இது இலவசமாகக் கருதப்படலாம்.

(2) இல் உள்ள தர்க்கம் வேலை செய்ய, ஹெர்ட்ஸ் வரிசைப்படுத்தப்பட்ட விசையின் பைட் வரிசையின் ஹாஷை நம்பியுள்ளது - அதாவது, விசை எந்த நிலையிலும் வரிசைப்படுத்தப்படும். ஹெர்ட்ஸ்க்கு இது தவிர்க்க முடியாத மேல்நிலை.
வெளியேற்றும் உத்திகள் சிறப்பாக செயல்படுத்தப்படுகின்றன, ஆனால் சிறப்பு நிகழ்வுகளுக்கு நீங்கள் சொந்தமாக சேர்க்கலாம். இந்த பகுதியைப் பற்றி நீங்கள் கவலைப்பட வேண்டியதில்லை.

சேமிப்பகம் (4) இணைக்கப்படலாம். நன்று. உட்பொதிக்கப்பட்டதற்கான தொடர்பு (5) உடனடியாகக் கருதப்படலாம். க்ளஸ்டரில் உள்ள முனைகளுக்கு இடையே தரவு பரிமாற்றம் (6) - ஆம், அது உள்ளது. இது வேகத்தின் இழப்பில் தவறு சகிப்புத்தன்மைக்கான முதலீடு. Hz அம்சம் Near-cache விலையைக் குறைக்க உங்களை அனுமதிக்கிறது - கிளஸ்டரில் உள்ள மற்ற முனைகளிலிருந்து பெறப்பட்ட தரவு தற்காலிகமாக சேமிக்கப்படும்.

வேகத்தை அதிகரிக்க இதுபோன்ற சூழ்நிலைகளில் என்ன செய்ய முடியும்?

எடுத்துக்காட்டாக, (2) இல் உள்ள விசையை வரிசைப்படுத்துவதைத் தவிர்க்க - வெப்பமான தரவுகளுக்கு, ஹேசல்காஸ்டின் மேல் மற்றொரு தற்காலிக சேமிப்பை இணைக்கவும். ஸ்போர்ட்மாஸ்டர் இந்த நோக்கத்திற்காக காஃபினைத் தேர்ந்தெடுத்தார்.

நிலை (6) இல் முறுக்குவதற்கு, Hz இரண்டு வகையான சேமிப்பகத்தை வழங்குகிறது: IMap மற்றும் ReplicatedMap.
ஸ்போர்ட்மாஸ்டரில் நாங்கள் கேச்சிங் சிஸ்டத்தை எப்படி தேர்வு செய்தோம். பகுதி 1

ஸ்போர்ட்மாஸ்டர் தொழில்நுட்ப அடுக்கில் ஹேசல்காஸ்ட் எப்படி நுழைந்தார் என்பது குறிப்பிடத் தக்கது.

2012 ஆம் ஆண்டில், எதிர்கால தளத்தின் முதல் பைலட்டில் நாங்கள் பணிபுரிந்தபோது, ​​தேடுபொறி திரும்பிய முதல் இணைப்பாக ஹேசல்காஸ்ட் மாறியது. அறிமுகம் "முதல் முறையாக" தொடங்கியது - இரண்டு மணி நேரம் கழித்து, நாங்கள் கணினியில் ஹெர்ட்ஸ் திருகியபோது, ​​​​அது வேலை செய்தது என்ற உண்மையால் நாங்கள் ஈர்க்கப்பட்டோம். அது நன்றாக வேலை செய்தது. நாளின் முடிவில் நாங்கள் பல சோதனைகளை முடித்து மகிழ்ச்சியாக இருந்தோம். காலப்போக்கில் Hz வீசிய ஆச்சரியங்களை சமாளிக்க இந்த வீரியம் போதுமானதாக இருந்தது. இப்போது ஸ்போர்ட்மாஸ்டர் அணிக்கு ஹேசல்காஸ்டை கைவிட எந்த காரணமும் இல்லை.

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

உற்பத்திக்கு, மிக முக்கியமானது: கண்காணிப்பு, தனிப்பட்ட முனைகளில் தோல்விகளைக் கையாளுதல், தரவுப் பிரதி, அளவிடுதல் செலவு. அதாவது, கணினியின் பராமரிப்பின் போது எழும் பணிகளுக்கு கவனம் செலுத்துவது மதிப்பு - சுமை திட்டமிட்டதை விட பல மடங்கு அதிகமாக இருக்கும்போது, ​​​​தற்செயலாக தவறான இடத்தில் எதையாவது பதிவேற்றும்போது, ​​​​புதிய பதிப்பை வெளியிட வேண்டியிருக்கும் போது குறியீட்டின், தரவை மாற்றவும் மற்றும் வாடிக்கையாளர்களுக்கு கவனிக்கப்படாமல் செய்யவும்.

இந்த அனைத்து தேவைகளுக்கும், Hazelcast நிச்சயமாக மசோதாவுக்கு பொருந்துகிறது.

தொடரும்

ஆனால் ஹேசல்காஸ்ட் ஒரு சஞ்சீவி அல்ல. 2017 இல், கடந்த கால அனுபவத்தின் நல்ல பதிவுகளின் அடிப்படையில், நிர்வாக தற்காலிக சேமிப்பிற்காக Hazelcastஐத் தேர்ந்தெடுத்தோம். இது மிகவும் கொடூரமான நகைச்சுவையில் முக்கிய பங்கு வகித்தது, இதன் காரணமாக நாங்கள் ஒரு கடினமான சூழ்நிலையில் இருந்தோம், மேலும் "வீரமாக" 60 நாட்களுக்கு அதிலிருந்து வெளியேறினோம். ஆனால் அதைப் பற்றி அடுத்த பகுதியில்.

இதற்கிடையில்... இனிய புதிய குறியீடு!

ஆதாரம்: www.habr.com

கருத்தைச் சேர்