സിസ്റ്റം ഡിസൈനിലെ പോളിംഗ് (Polling in System Design)

ഒരു ക്ലയന്റിന് സെർവറിൽ നിന്ന് അപ്‌ഡേറ്റുകൾ ലഭിക്കാൻ പോളിംഗ് സഹായിക്കുന്നു. ഒരു വെയിറ്റർ നിങ്ങളുടെ ഭക്ഷണത്തിന്റെ അവസ്ഥ പരിശോധിക്കുന്നത് പോലെ ഇതിനെ താരതമ്യം ചെയ്യാം.

പ്രധാനമായും മൂന്ന് രീതികളുണ്ട്.

ഷോർട്ട് പോളിംഗ് (Short Polling)

നിശ്ചിത ഇടവേളകളിൽ ക്ലയന്റ് ഒരു അപ്‌ഡേറ്റിനായി അഭ്യർത്ഥിക്കുന്നു. ഡാറ്റ തയ്യാറല്ലെങ്കിൽ, സെർവർ ഒരു ശൂന്യമായ മറുപടി (empty response) അയക്കുന്നു. ഡാറ്റ ലഭിക്കുന്നത് വരെ ക്ലയന്റ് ഈ പ്രക്രിയ ആവർത്തിച്ചുകൊണ്ടേയിരിക്കുന്നു. ഈ രീതി അനാവശ്യമായ നിരവധി റിക്വസ്റ്റുകൾ സൃഷ്ടിക്കുന്നു.

ലോംഗ് പോളിംഗ് (Long Polling)

ക്ലയന്റ് ഒരു റിക്വസ്റ്റ് അയക്കുന്നു, സെർവർ അത് തുറന്നുതന്നെ വെക്കുന്നു. ഡാറ്റ തയ്യാറാകുമ്പോൾ മാത്രമേ സെർവർ മറുപടി നൽകുകയുള്ളൂ. ക്ലയന്റിന് മറുപടി ലഭിച്ചാലുടൻ അത് പുതിയൊരു റിക്വസ്റ്റ് ഉടൻ തന്നെ അയക്കുന്നു. ഇത് ഏകദേശം തത്സമയ (real-time) അനുഭവം നൽകുന്നു. ഷോർട്ട് പോളിംഗുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ ഇത് ശൂന്യമായ മറുപടികളുടെ എണ്ണം കുറയ്ക്കുന്നു.

ഇവന്റ് സ്ട്രീം (Event Stream)

ക്ലയന്റും സെർവറും ഒരു സിംഗിൾ കണക്ഷൻ തുറക്കുന്നു. ഏതെങ്കിലും ഒരു വശത്തുനിന്ന് അത് അവസാനിപ്പിക്കുന്നത് വരെ ഈ കണക്ഷൻ നിലനിൽക്കുന്നു. എപ്പോഴെങ്കിലും ഒരു ഇവന്റ് സംഭവിക്കുമ്പോൾ സെർവർ ഡാറ്റ ക്ലയന്റിലേക്ക് എത്തിക്കുന്നു. ഇത് യഥാർത്ഥ തത്സമയ ആശയവിനിമയമാണ്.

ഇതിന്റെ പോരായ്മ റിസോഴ്സ് ഉപയോഗമാണ്. ഈ കണക്ഷൻ ഒരു പ്രത്യേക പോർട്ട് (port) ഉപയോഗിക്കുന്നു. കണക്ഷൻ അവസാനിക്കുന്നത് വരെ ആ പോർട്ട് മറ്റ് ജോലികൾക്കായി ഉപയോഗിക്കാൻ കഴിയില്ല.

നിങ്ങളുടെ സിസ്റ്റത്തിന്റെ ആവശ്യങ്ങളും നിങ്ങൾ സ്വീകരിക്കുന്ന വിട്ടുവീഴ്ചകളും (trade-offs) അനുസരിച്ചായിരിക്കും നിങ്ങളുടെ തിരഞ്ഞെടുപ്പ്.

സ്രോതസ്സ്: https://dev.to/cibani_joe/polling-in-system-design-ph6