CodeGym/Java Course/All lectures for TA purposes/அப்பாச்சி கசாண்ட்ரா: ஒரு கிளஸ்டரில் தரவுகளை சேமித்தல்

அப்பாச்சி கசாண்ட்ரா: ஒரு கிளஸ்டரில் தரவுகளை சேமித்தல்

கிடைக்கப்பெறுகிறது

5.1 தரவு விநியோகம்

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

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

கசாண்ட்ரா தரவை விநியோகிக்க நிலையான ஹேஷிங் எனப்படும் நுட்பத்தைப் பயன்படுத்துகிறது. இந்த அணுகுமுறை முனைகளுக்கு இடையில் தரவை விநியோகிக்க உங்களை அனுமதிக்கிறது மற்றும் ஒரு புதிய முனை சேர்க்கப்பட்டு அகற்றப்படும்போது, ​​​​பரிமாற்றம் செய்யப்படும் தரவின் அளவு சிறியதா என்பதை உறுதிப்படுத்தவும். இதைச் செய்ய, ஒவ்வொரு முனைக்கும் ஒரு லேபிள் (டோக்கன்) ஒதுக்கப்படுகிறது, இது அனைத்து md5 முக்கிய மதிப்புகளின் தொகுப்பையும் பகுதிகளாகப் பிரிக்கிறது. RandomPartitioner பெரும்பாலான சந்தர்ப்பங்களில் பயன்படுத்தப்படுவதால், அதைக் கருத்தில் கொள்வோம்.

நான் சொன்னது போல், RandomPartitioner ஒவ்வொரு விசைக்கும் 128-பிட் md5 ஐ கணக்கிடுகிறது. எந்த முனைகளில் தரவு சேமிக்கப்படும் என்பதைத் தீர்மானிக்க, அது சிறியது முதல் பெரியது வரை அனைத்து முனைகளின் லேபிள்கள் வழியாகவும் செல்கிறது, மேலும் லேபிளின் மதிப்பு md5 விசையின் மதிப்பை விட அதிகமாகும் போது, ​​இந்த முனை, ஒரு சேமிப்பிற்காக அடுத்தடுத்த முனைகளின் எண்ணிக்கை (லேபிள்களின் வரிசையில்) தேர்ந்தெடுக்கப்பட்டது. தேர்ந்தெடுக்கப்பட்ட முனைகளின் மொத்த எண்ணிக்கை பிரதி காரணிக்கு சமமாக இருக்க வேண்டும். ஒவ்வொரு விசைவெளிக்கும் பிரதி நிலை அமைக்கப்பட்டுள்ளது மற்றும் தரவின் பணிநீக்கத்தை (தரவு பணிநீக்கம்) சரிசெய்ய உங்களை அனுமதிக்கிறது.

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

சம இடைவெளி லேபிள்களுடன் 6 முனைகளின் கிளஸ்டர் வளையத்தைக் காட்ட, உள்ளமைக்கப்பட்ட நோட்டூல் பயன்பாட்டைப் பயன்படுத்தும் ஒரு விளக்கம் இங்கே உள்ளது.

5.2 எழுதும் போது தரவு நிலைத்தன்மை

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

ஒவ்வொரு கோரிக்கைக்கும், படிப்பதற்கும் எழுதுவதற்கும், தரவு நிலைத்தன்மையின் அளவை அமைக்க முடியும்.

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

  • ஒன்று - ஒருங்கிணைப்பாளர் அனைத்து பிரதி முனைகளுக்கும் கோரிக்கைகளை அனுப்புகிறார், ஆனால் முதல் முனையிலிருந்து உறுதிப்படுத்தலுக்காக காத்திருந்த பிறகு, பயனருக்கு கட்டுப்பாட்டைத் திருப்பித் தருகிறார்;
  • இரண்டு - அதே, ஆனால் ஒருங்கிணைப்பாளர் கட்டுப்பாட்டை திரும்பும் முன் முதல் இரண்டு முனைகளில் இருந்து உறுதிப்படுத்தல் காத்திருக்கிறது;
  • மூன்று - ஒத்த, ஆனால் ஒருங்கிணைப்பாளர் கட்டுப்பாட்டை திரும்பும் முன் முதல் மூன்று முனைகளில் இருந்து உறுதிப்படுத்தல் காத்திருக்கிறது;
  • கோரம் - ஒரு கோரம் சேகரிக்கப்படுகிறது: பாதிக்கு மேற்பட்ட பிரதி முனைகளில் இருந்து பதிவை உறுதிப்படுத்துவதற்காக ஒருங்கிணைப்பாளர் காத்திருக்கிறார், அதாவது சுற்று (N / 2) + 1, N என்பது பிரதி நிலை;
  • LOCAL_QUORUM - ஒருங்கிணைப்பாளர் அமைந்துள்ள அதே தரவு மையத்தில் உள்ள பிரதி முனைகளில் பாதிக்கும் மேற்பட்டவற்றின் உறுதிப்படுத்தலுக்காக ஒருங்கிணைப்பாளர் காத்திருக்கிறார் (ஒவ்வொரு கோரிக்கைக்கும் வேறுபட்டிருக்கலாம்). பிற தரவு மையங்களுக்கு தரவை அனுப்புவதில் ஏற்படும் தாமதங்களிலிருந்து விடுபட உங்களை அனுமதிக்கிறது. பல தரவு மையங்களுடன் பணிபுரியும் சிக்கல்கள் இந்த கட்டுரையில் பரிசீலிக்கப்படுகின்றன;
  • EACH_QUORUM - ஒருங்கிணைப்பாளர் ஒவ்வொரு தரவு மையத்திலும் உள்ள பாதிக்கு மேற்பட்ட பிரதி முனைகளில் இருந்து உறுதிப்படுத்துவதற்காகக் காத்திருக்கிறார்.
  • அனைத்து - ஒருங்கிணைப்பாளர் அனைத்து பிரதி முனைகளில் இருந்து உறுதிப்படுத்தல் காத்திருக்கிறது;
  • ஏதேனும் - அனைத்து பிரதி முனைகளும் பதிலளிக்காவிட்டாலும், தரவை எழுதுவதை சாத்தியமாக்குகிறது. ஒருங்கிணைப்பாளர் பிரதி முனைகளில் ஒன்றின் முதல் பதிலுக்காக காத்திருக்கிறார் அல்லது ஒருங்கிணைப்பாளரின் குறிப்பைப் பயன்படுத்தி தரவு சேமிக்கப்படும்.

5.3 படிக்கும் போது தரவு நிலைத்தன்மை

வாசிப்புகளுக்கு, நிலைத்தன்மையின் நிலை, படிக்கப்படும் பிரதி முனைகளின் எண்ணிக்கையைப் பாதிக்கும். படிக்க, இந்த நிலைத்தன்மை நிலைகள் உள்ளன:

  • ஒன்று - ஒருங்கிணைப்பாளர் கோரிக்கைகளை அருகிலுள்ள பிரதி முனைக்கு அனுப்புகிறார். மீதமுள்ள பிரதிகளும் கசாண்ட்ரா உள்ளமைவில் குறிப்பிடப்பட்டுள்ள நிகழ்தகவுடன் படிக்கும் பழுதுக்காகவும் படிக்கப்படுகின்றன;
  • இரண்டும் ஒன்றுதான், ஆனால் ஒருங்கிணைப்பாளர் இரண்டு அருகிலுள்ள முனைகளுக்கு கோரிக்கைகளை அனுப்புகிறார். மிகப்பெரிய நேர முத்திரையுடன் மதிப்பு தேர்ந்தெடுக்கப்பட்டது;
  • மூன்று - முந்தைய விருப்பத்தைப் போன்றது, ஆனால் மூன்று முனைகளுடன்;
  • கோரம் - ஒரு கோரம் சேகரிக்கப்படுகிறது, அதாவது, ஒருங்கிணைப்பாளர் பாதிக்கு மேற்பட்ட பிரதி முனைகளுக்கு கோரிக்கைகளை அனுப்புகிறார், அதாவது சுற்று (N / 2) + 1, N என்பது பிரதி நிலை;
  • LOCAL_QUORUM - ஒருங்கிணைப்பு நடைபெறும் தரவு மையத்தில் ஒரு கோரம் சேகரிக்கப்பட்டு, சமீபத்திய நேர முத்திரையுடன் தரவைத் தருகிறது;
  • EACH_QUORUM - ஒவ்வொரு தரவு மையங்களிலும் உள்ள கோரம் கூட்டத்திற்குப் பிறகு ஒருங்கிணைப்பாளர் தரவைத் தருகிறார்;
  • அனைத்து - ஒருங்கிணைப்பாளர் அனைத்து பிரதி முனைகளிலிருந்தும் படித்த பிறகு தரவைத் தருகிறார்.

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

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

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

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

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

கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை