વોઇસ-રાઉટિંગ સિસ્ટમનું પરીક્ષણ કરી રહેલા એક ડેવલપરે એક કામચલાઉ ક્વોરેન્ટાઇન (quarantine) ઉમેર્યું છે, જે નિષ્ફળતા પછી આગામી કોલને ૩૦૦ સેકન્ડ માટે અલગ પાથ વાપરવા માટે મજબૂર કરે છે. આ ફેરફાર સોફ્ટવેરને વારંવાર એ જ તૂટેલા રૂટનો પ્રયાસ કરતા અટકાવે છે, જેનાથી કેસ્કેડ આઉટેજ (એક પછી એક થતી નિષ્ફળતા) ની શક્યતા ઘટે છે.

જૂનું લોજિક શા માટે સમસ્યાકારક હતું

મૂળ રાઉટર એક કડક નિયમનું પાલન કરતું હતું: જ્યારે વર્કસ્ટેશન વ્યસ્ત હોય, ત્યારે તે ફક્ત એ જ પાથ ફરીથી અજમાવતું હતું. જો તે પાથ વારંવાર નિષ્ફળ જતો, તો સિસ્ટમ એરર લોગ કરતી હતી પરંતુ તેના વર્તનમાં ક્યારેય ફેરફાર કરતી નહોતી. વ્યવહારમાં, નિષ્ફળતાનું એક જ બિંદુ (single point of failure) કોલ્સને બ્લોક કરી શકતું હતું કારણ કે સોફ્ટવેર એ જ બંધ માર્ગ પર વારંવાર લૂપ થતું રહેતું હતું.

નવું ક્વોરેન્ટાઇન મિકેનિઝમ

આ અપડેટ ત્રણ મર્યાદાઓ ઉમેરે છે:

  • કાયમી નથી – ક્વોરેન્ટાઇન માર્કર ટૂંકા સમયગાળા પછી સમાપ્ત થઈ જાય છે.
  • ગ્લોબલ નથી – તે ફક્ત નિષ્ફળ ગયેલા ચોક્કસ પાથને જ લાગુ પડે છે, દરેક રૂટને નહીં.
  • સીમિત મેમરી – સિસ્ટમ નિષ્ફળતાને લોકલ ફાઇલમાં રેકોર્ડ કરે છે અને એકવાર નવો પાથ સફળ થાય એટલે તેને ભૂલી જાય છે.

જ્યારે સ્પીચનો પ્રયાસ નિષ્ફળ જાય છે, ત્યારે રાઉટર તે પાથ માટે “quarantined” ફ્લેગ લખે છે. આગામી ૩૦૦ સેકન્ડ માટે, કોઈપણ આવતી રિક્વેસ્ટ આપમેળે વૈકલ્પિક પાથ પર રીરૂટ થાય છે. જેવી કોઈ રિક્વેસ્ટ બીજા રૂટ પર સફળ થાય છે, તરત જ ફ્લેગ દૂર થઈ જાય છે, જે સુનિશ્ચિત કરે છે કે ફિક્સની જરૂરિયાત કરતાં વધુ સમય તે ચાલુ ન રહે.

ફાયદા અને નુકસાન

મુખ્ય ફાયદો લવચીકતા (resilience) છે: હવે કોઈ ક્ષણિક ખામી આખી સર્વિસને ખોરવી શકતી નથી. ક્વોરેન્ટાઇનને પાંચ મિનિટ સુધી મર્યાદિત કરીને, સિસ્ટમ લાંબા ગાળાના સર્વિસ લોસથી બચે છે અને સાથે સાથે નેટવર્કને રિકવર થવા માટે સમય પણ આપે છે.

આ અભિગમમાં જોખમ પણ છે. નેટવર્કમાં નાની ખામી ક્વોરેન્ટાઇનને ટ્રિગર કરી શકે છે જે કોલ્સને ઓછા સચોટ રૂટ પર મોકલી શકે છે, જેનાથી લેટન્સી (latency) અથવા ખર્ચ વધી શકે છે. જો વૈકલ્પિક પાથ પણ બગડે, તો સિસ્ટમ રૂટ્સ વચ્ચે સતત બદલાતી રહે (bounce) શકે છે, જેનાથી અસ્થિરતા ઊભી થાય છે. ઓપરેટરોએ ક્વોરેન્ટાઇન માર્કર્સ પર નજર રાખવી જરૂરી છે જેથી તેઓ જાણી શકે કે રીરૂટિંગ જાણીજોઈને કરવામાં આવ્યું છે કે તે કોઈ ઊંડી સમસ્યાનું લક્ષણ છે.

આગળ શું ધ્યાન રાખવું

  • મેટ્રિક્સ (Metrics): ૩૦૦-સેકન્ડનો સમયગાળો યોગ્ય છે કે નહીં તે જોવા માટે ક્વોરેન્ટાઇનની આવૃત્તિ અને સમયગાળાનું મોનિટરિંગ કરો.
  • સ્કોપ (Scope): ટીમો અન્ય સેવાઓ માટે પણ આ લોજિકનો વિસ્તાર કરવાનો પ્રયાસ કરી શકે છે જે સ્ટેટિક રીટ્રાય પેટર્નથી પ્રભાવિત થાય છે.
  • ઓટોમેશન (Automation): જ્યારે કોઈ પાથ વારંવાર ક્વોરેન્ટાઇન માં જાય ત્યારે એલર્ટ્સ ઉમેરો, જેથી યુઝર્સને સમસ્યાનો ખ્યાલ આવે તે પહેલાં જ સક્રિય મેન્ટેનન્સ કરી શકાય.

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

સ્ત્રોત: dev.to પર મૂળ ડેવલપર પોસ્ટ.

ચર્ચામાં જોડાઓ: https://t.me/GyaanSetuAi