ஒரு குரல் வழித் திசைதிருப்பும் அமைப்பை (voice-routing system) சோதித்துக் கொண்டிருந்த ஒரு மென்பொருள் உருவாக்குநர், ஒரு தோல்விக்குப் பிறகு அடுத்த அழைப்பு 300 வினாடிகளுக்கு வேறு பாதையைப் பயன்படுத்துவதை உறுதி செய்யும் ஒரு தற்காலிகத் தனிமைப்படுத்தலை (quarantine) சேர்த்துள்ளார். இந்தச் சிறு மாற்றம், மென்பொருள் மீண்டும் மீண்டும் அதே பழுதடைந்த பாதையை முயற்சிப்பதைத் தடுத்து, தொடர்ச்சியான முடக்கம் (cascade outage) ஏற்படும் வாய்ப்பைக் குறைக்கிறது.

பழைய தர்க்கம் ஏன் ஒரு பிரச்சனையாக இருந்தது

அசல் ரூட்டர் (router) ஒரு கடுமையான விதியைப் பின்பற்றியது: ஒரு பணித்தளம் (workstation) பிஸியாக இருக்கும்போது, அது மீண்டும் அதே பாதையை முயற்சிக்கும். அந்தப் பாதை தொடர்ந்து தோல்வியடைந்தால், அமைப்பு பிழையைப் பதிவு செய்யும் ஆனால் அதன் நடத்தையை மாற்றாது. நடைமுறையில், மென்பொருள் மீண்டும் மீண்டும் அதே முட்டுச்சந்தையைச் சுற்றி வருவதால், ஒரு தோல்விப் புள்ளி அழைப்புகளைத் தொடர்ந்து தடுத்துக்கொண்டே இருக்கும்.

புதிய தனிமைப்படுத்தல் முறை (quarantine mechanism)

இந்தத் திருத்தம் மூன்று கட்டுப்பாடுகளைச் சேர்க்கிறது:

  • நிலையானது அல்ல – தனிமைப்படுத்தல் குறியீடு (quarantine marker) ஒரு குறுகிய காலத்திற்குப் பிறகு காலாவதியாகிவிடும்.
  • உலகளாவியது அல்ல – இது தோல்வியடைந்த குறிப்பிட்ட பாதைக்கு மட்டுமே பொருந்தும், அனைத்துப் பாதைகளுக்கும் அல்ல.
  • வரையறுக்கப்பட்ட நினைவகம் – அமைப்பு தோல்வியைப் உள்ளூர் கோப்பில் (local file) பதிவு செய்யும் மற்றும் புதிய பாதை வெற்றிகரமாக முடிந்ததும் அதை மறந்துவிடும்.

ஒரு பேச்சு முயற்சி (speech attempt) தோல்வியடையும் போது, ரூட்டர் அந்தப் பாதைக்கு ஒரு “quarantined” குறியீட்டை எழுதும். அடுத்த 300 வினாடிகளுக்கு, வரும் எந்தவொரு கோரிக்கையும் தானாகவே மாற்றுப் பாதைக்குத் திசைதிருப்பப்படும். ஒரு கோரிக்கை வேறு பாதையில் வெற்றி பெற்றவுடன், அந்தத் தனிமைப்படுத்தல் குறியீடு நீக்கப்படும், இதன் மூலம் இந்தத் தீர்வுத் தேவைக்கு மேலாக நீடிக்காமல் இருப்பதை உறுதி செய்யலாம்.

நன்மைகள் மற்றும் சவால்கள் (trade-offs)

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

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

அடுத்து கவனிக்க வேண்டியவை

  • அளவீடுகள் (Metrics): 300 வினாடி கால அளவு பொருத்தமானதா என்பதைப் பார்க்க, தனிமைப்படுத்தல்களின் அதிர்வெண் மற்றும் கால அளவைக் கண்காணிக்கவும்.
  • எல்லை (Scope): நிலையான மறுமுயற்சி முறைகளால் (static retry patterns) பாதிக்கப்படும் பிற சேவைகளுக்கும் இந்தத் தர்க்கத்தை விரிவாக்கக் குழுக்கள் முயற்சி செய்யலாம்.
  • தானியங்கி முறை (Automation): பயனர்கள் ஒரு சிக்கலை உணர்வதற்கு முன்பே, முன்கூட்டியே பராமரிப்பை மேற்கொள்ளத் தூண்டும் வகையில், ஒரு பாதை மீண்டும் மீண்டும் தனிமைப்படுத்தலுக்குச் செல்லும்போது எச்சரிக்கைகளைச் சேர்க்கவும்.

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

மூலம்: dev.to தளத்தில் உள்ள அசல் டெவலப்பர் பதிவு.

விவாதத்தில் இணையுங்கள்: https://t.me/GyaanSetuAi