Postgres CLI-യിലെ CTRL-C ചോദ്യങ്ങൾ റദ്ദാക്കുന്ന രീതി അവിശ്വസനീയമാം വിധം ഹാക്ക്-വൈ ആണ് | Mewayz Blog Skip to main content
Hacker News

Postgres CLI-യിലെ CTRL-C ചോദ്യങ്ങൾ റദ്ദാക്കുന്ന രീതി അവിശ്വസനീയമാം വിധം ഹാക്ക്-വൈ ആണ്

അഭിപ്രായങ്ങൾ

1 min read Via neon.com

Mewayz Team

Editorial Team

Hacker News
<ശരീരം>

The Lingering Ghost of SIGINT: എന്തുകൊണ്ട് Postgres CLI ചോദ്യം റദ്ദാക്കൽ ഒരു ഹാക്ക് പോലെ തോന്നുന്നു

ഡെവലപ്പർമാർക്കും ഡാറ്റാബേസ് അഡ്മിനിസ്ട്രേറ്റർമാർക്കും, PostgreSQL കമാൻഡ്-ലൈൻ ഇൻ്റർഫേസ് (psql) ഒരു വിശ്വസനീയമായ ദൈനംദിന ഡ്രൈവറാണ്. അത് ശക്തവും കൃത്യവും സർവ്വവ്യാപിയുമാണ്. എന്നിട്ടും, അതിൻ്റെ ഏറ്റവും അടിസ്ഥാനപരമായ ഇടപെടലുകളിലൊന്ന് - സാർവത്രിക CTRL-C കുറുക്കുവഴി ഉപയോഗിച്ച് ഒരു റൺവേ ചോദ്യം റദ്ദാക്കൽ - കൗതുകകരമായി തോന്നുന്നു. കമാൻഡ് നിലവിലെ പ്രവർത്തനം നിർത്തുന്ന പല ആധുനിക ആപ്ലിക്കേഷനുകളിൽ നിന്നും വ്യത്യസ്തമായി, psql-ൽ, CTRL-C യഥാർത്ഥത്തിൽ സെർവറിലെ അന്വേഷണം റദ്ദാക്കില്ല. പകരം, ഇത് ഫലത്തിനായുള്ള ക്ലയൻ്റ് കാത്തിരിപ്പ് റദ്ദാക്കുന്നു, ഡാറ്റാബേസ് സെർവറിൽ നിന്ന് ചോദ്യം ചെയ്യപ്പെടാൻ സാധ്യതയുണ്ട്. ഈ പെരുമാറ്റം ഒരു ബഗ് അല്ല; ഞങ്ങളുടെ ഉപകരണങ്ങളുടെ ലേയേർഡ്, ചിലപ്പോൾ ദുർബലമായ, വാസ്തുവിദ്യ വെളിപ്പെടുത്തുന്ന ഒരു ഡിസൈൻ ആർട്ടിഫാക്‌റ്റാണിത്. Mewayz പോലുള്ള മോഡുലാർ സിസ്റ്റങ്ങളിൽ കെട്ടിപ്പടുക്കുന്ന ബിസിനസ്സുകൾക്ക്, ഈ അടിസ്ഥാന യാഥാർത്ഥ്യങ്ങൾ മനസ്സിലാക്കുന്നത് കരുത്തുറ്റതും ഉപയോക്തൃ കേന്ദ്രീകൃതവുമായ പ്രവർത്തന പാളികൾ രൂപകൽപ്പന ചെയ്യുന്നതിൽ പ്രധാനമാണ്.

രണ്ട് പ്രക്രിയകളുടെ ഒരു കഥ: ക്ലയൻ്റ് വേഴ്സസ് സെർവർ

"ഹാക്ക്-വൈ" വികാരത്തിൻ്റെ കാതൽ psql-ൻ്റെ ആർക്കിടെക്ചറിൽ നിന്നാണ്. നിങ്ങൾ psql-ൽ ഒരു ചോദ്യം എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, രണ്ട് സ്വതന്ത്ര പ്രോസസ്സുകൾ പ്രവർത്തിക്കുന്നു: നിങ്ങളുടെ ലോക്കൽ മെഷീനിലെ psql ക്ലയൻ്റ് പ്രോസസ്സും ഡാറ്റാബേസ് ഹോസ്റ്റിലെ പോസ്റ്റ്ഗ്രെസ് സെർവർ പ്രോസസ്സും. CTRL-C അമർത്തുന്നത് psql ക്ലയൻ്റ് പ്രോസസ്സിലേക്ക് പ്രത്യേകമായി ഒരു SIGINT (ഇൻ്ററപ്റ്റ് സിഗ്നൽ) അയയ്ക്കുന്നു. കാത്തിരിപ്പ് അവസാനിപ്പിച്ച് പ്രോംപ്റ്റിലേക്ക് മടങ്ങുക എന്നതാണ് ക്ലയൻ്റിൻ്റെ ഉടനടി ജോലി. എന്നിരുന്നാലും, ഈ ക്ലയൻ്റ് സൈഡ് സിഗ്നലിനെ കുറിച്ച് സെർവറിന് അന്തർലീനമായ അറിവില്ല. അതിൻ്റെ വീക്ഷണകോണിൽ, അന്വേഷണം ഇപ്പോഴും സാധുവായ, പ്രവർത്തിക്കുന്ന പ്രവർത്തനമാണ്. റദ്ദാക്കൽ അഭ്യർത്ഥന ഒരു പ്രത്യേക, പുതിയ നിർദ്ദേശമായി അറിയിക്കണം.

"psql-ലെ CTRL-C ഒരു 'സ്റ്റോപ്പ്' ബട്ടണിൽ കുറവാണ്, കൂടാതെ 'ദയവായി എൻ്റെ മുൻ അഭ്യർത്ഥന അവഗണിക്കുക' എന്നതിലും കൂടുതൽ ശ്രദ്ധിക്കുക, തിരക്കുള്ള ഒരു ലൈബ്രേറിയൻ്റെ അടുക്കൽ അവർ ഇതിനകം പാതിവഴിയിലായിരിക്കുമ്പോൾ നിങ്ങൾ അവരെ ഏൽപ്പിക്കുക."

റദ്ദാക്കൽ പ്രോട്ടോക്കോൾ: ഒരു ദ്വിതീയ അഭ്യർത്ഥന

അപ്പോൾ, ചോദ്യം യഥാർത്ഥത്തിൽ എങ്ങനെ റദ്ദാക്കപ്പെടും? SIGINT കൈകാര്യം ചെയ്ത ശേഷം, നല്ല പെരുമാറ്റമുള്ള ഒരു psql ക്ലയൻ്റ് PostgreSQL-ൻ്റെ ഔദ്യോഗിക റദ്ദാക്കൽ പ്രോട്ടോക്കോൾ ആരംഭിക്കുന്നു. സെർവറിലേക്ക് ഒരു പുതിയ കണക്ഷൻ തുറക്കുന്നതും നിങ്ങളുടെ ചോദ്യം പ്രവർത്തിക്കുന്ന നിർദ്ദിഷ്ട ബാക്കെൻഡ് പ്രോസസ്സ് തിരിച്ചറിയുന്ന ഒരു രഹസ്യ കീ അടങ്ങുന്ന ഒരു പ്രത്യേക "റദ്ദാക്കൽ അഭ്യർത്ഥന" സന്ദേശം അയയ്ക്കുന്നതും ഇതിൽ ഉൾപ്പെടുന്നു. ഈ അഭ്യർത്ഥന കുറഞ്ഞ മുൻഗണനയോടെയാണ് പ്രോസസ്സ് ചെയ്യുന്നത്, ഉടനടി വിജയിക്കുമെന്ന് ഉറപ്പില്ല. ഈ മൾട്ടി-സ്റ്റെപ്പ്, തീ-മറക്കൽ പ്രക്രിയയാണ് പെരുമാറ്റം പരോക്ഷമായി അനുഭവപ്പെടുന്നത്. ഇത് നേരിട്ടുള്ള തടസ്സമല്ല; ഇത് ഒരു ബാക്ക്‌ചാനലിലൂടെ അയച്ച മര്യാദയുള്ളതും അസമന്വിതവുമായ അപേക്ഷയാണ്.

ഉപയോക്തൃ അനുഭവ ഗ്യാപ്പും എഡ്ജ് കേസുകളും

ഈ ഡിസൈൻ ഉപയോക്താക്കൾക്കായി നിരവധി സ്പഷ്ടമായ ഘർഷണ പോയിൻ്റുകളിലേക്ക് നയിക്കുന്നു:

  • പ്രതികരണമില്ലായ്മ: നിങ്ങൾ CTRL-C അമർത്തുക, നിങ്ങളുടെ നിർദ്ദേശം തൽക്ഷണം തിരികെ നേടുക, പക്ഷേ സെർവർ ഇപ്പോഴും പ്രവർത്തിക്കുന്നതിനാൽ സിസ്റ്റം ലോഡ് ഉയർന്ന നിലയിലാണ്.
  • അനിശ്ചിത ഫലം: റദ്ദാക്കൽ അഭ്യർത്ഥന സെർവർ സ്വീകരിക്കുകയോ ബഹുമാനിക്കുകയോ ചെയ്‌തിട്ടുണ്ടോ എന്നതിന് നിങ്ങൾക്ക് ഉടനടി സ്ഥിരീകരണമില്ല.
  • കണക്ഷൻ-ആശ്രിത പരാജയം: സെർവർ ഫയർവാൾ ചെയ്‌തിരിക്കുകയോ റദ്ദാക്കൽ അഭ്യർത്ഥനയ്‌ക്കായുള്ള പുതിയ കണക്ഷൻ പരാജയപ്പെടുകയോ ചെയ്‌താൽ, യഥാർത്ഥ അന്വേഷണ സൈനികർ അനിശ്ചിതമായി ഓണാണ്.
  • മനഃശാസ്ത്രപരമായ പൊരുത്തക്കേട്: സാർവത്രിക "അബോർട്ട്" കമാൻഡ് ഒരു സിൻക്രണസ് അബോർട്ട് ചെയ്യുന്നില്ല, ഇത് കമ്പ്യൂട്ടിംഗ് പരിതസ്ഥിതിയിൽ മറ്റെവിടെയെങ്കിലും രൂപപ്പെട്ട ഉപയോക്തൃ പ്രതീക്ഷകളെ തകർക്കുന്നു.

മെവയ്‌സിനൊപ്പം അവബോധ ഫൗണ്ടേഷനുകൾ നിർമ്മിക്കുന്നു

ആധുനിക ബിസിനസ്സ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ അവയുടെ പരിമിതികളെ മാനിച്ചുകൊണ്ട് ഈ അന്തർലീനമായ സങ്കീർണ്ണതകളെ സംഗ്രഹിക്കണം. ഒരു മോഡുലാർ ബിസിനസ് OS ആയി പ്രവർത്തിക്കുന്ന Mewayz പോലെയുള്ള ഒരു പ്ലാറ്റ്‌ഫോം, നിയന്ത്രിത സേവന മൊഡ്യൂളുകൾക്കുള്ളിൽ ഡാറ്റാബേസ് ഇടപെടലുകൾ ഉൾക്കൊള്ളുന്നു. ഉദാഹരണത്തിന്, ഒരു Mewayz ഡാറ്റാ ക്വറി മൊഡ്യൂൾ ഒരു റോ SQL പ്രോംപ്റ്റിനെ മാത്രം വെളിപ്പെടുത്തില്ല; ഇത് ഉപയോക്തൃ-സൗഹൃദ നിയന്ത്രണങ്ങൾ ഉപയോഗിച്ച് പൊതിയുന്നു-ഒരു ശരി, പരിശോധിക്കാവുന്ന "സ്റ്റോപ്പ്" ബട്ടൺ, അന്വേഷണ സമയപരിധികൾ, സെർവറിൽ യഥാർത്ഥത്തിൽ എന്താണ് പ്രവർത്തിക്കുന്നതെന്ന് കാണിക്കുന്ന തത്സമയ സ്റ്റാറ്റസ് ഡാഷ്‌ബോർഡുകൾ. ഇത് പ്രോട്ടോക്കോൾ ക്വിർക്കുകൾ കൈകാര്യം ചെയ്യുന്നതിൽ നിന്ന് വ്യക്തവും പ്രവർത്തനക്ഷമവുമായ ബിസിനസ്സ് പ്രവർത്തനങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിലേക്ക് അനുഭവത്തെ നീക്കുന്നു. psql-ൻ്റെ CTRL-C-യിൽ നിന്നുള്ള പാഠം, മികച്ച ഉപകരണങ്ങൾ ശക്തമായ കഴിവുകൾ മാത്രം വെളിപ്പെടുത്തുന്നില്ല എന്നതാണ്; അവർ അവബോധജന്യവും വിശ്വസനീയവുമായ ഇൻ്റർഫേസുകൾ രൂപകൽപ്പന ചെയ്യുന്നു, വാസ്തുവിദ്യാ പാരമ്പര്യങ്ങളെ തടസ്സമില്ലാത്ത വർക്ക്ഫ്ലോകളാക്കി മാറ്റുന്നു. ഹാക്ക് മനസ്സിലാക്കുന്നത്, മെച്ചപ്പെട്ട എന്തെങ്കിലും നിർമ്മിക്കാനുള്ള അവസരം വെളിപ്പെടുത്തുന്നു.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

പതിവ് ചോദിക്കുന്ന ചോദ്യങ്ങൾ

The Lingering Ghost of SIGINT: എന്തുകൊണ്ട് Postgres CLI ചോദ്യം റദ്ദാക്കൽ ഒരു ഹാക്ക് പോലെ തോന്നുന്നു

ഡെവലപ്പർമാർക്കും ഡാറ്റാബേസ് അഡ്മിനിസ്ട്രേറ്റർമാർക്കും, PostgreSQL കമാൻഡ്-ലൈൻ ഇൻ്റർഫേസ് (psql) ഒരു വിശ്വസനീയമായ ദൈനംദിന ഡ്രൈവറാണ്. അത് ശക്തവും കൃത്യവും സർവ്വവ്യാപിയുമാണ്. എന്നിട്ടും, അതിൻ്റെ ഏറ്റവും അടിസ്ഥാനപരമായ ഇടപെടലുകളിലൊന്ന് - സാർവത്രിക CTRL-C കുറുക്കുവഴി ഉപയോഗിച്ച് ഒരു റൺവേ ചോദ്യം റദ്ദാക്കൽ - കൗതുകകരമായി തോന്നുന്നു. കമാൻഡ് നിലവിലെ പ്രവർത്തനം നിർത്തുന്ന പല ആധുനിക ആപ്ലിക്കേഷനുകളിൽ നിന്നും വ്യത്യസ്തമായി, psql-ൽ, CTRL-C യഥാർത്ഥത്തിൽ സെർവറിലെ അന്വേഷണം റദ്ദാക്കില്ല. പകരം, ഫലത്തിനായുള്ള ക്ലയൻ്റിൻ്റെ കാത്തിരിപ്പ് ഇത് റദ്ദാക്കുന്നു, ഡാറ്റാബേസ് സെർവറിൽ നിന്ന് ചോർച്ചയുണ്ടാകാൻ സാധ്യതയുണ്ട്. ഈ പെരുമാറ്റം ഒരു ബഗ് അല്ല; ഞങ്ങളുടെ ഉപകരണങ്ങളുടെ ലേയേർഡ്, ചിലപ്പോൾ ദുർബലമായ, വാസ്തുവിദ്യ വെളിപ്പെടുത്തുന്ന ഒരു ഡിസൈൻ ആർട്ടിഫാക്‌റ്റാണിത്. Mewayz പോലുള്ള മോഡുലാർ സിസ്റ്റങ്ങളിൽ കെട്ടിപ്പടുക്കുന്ന ബിസിനസുകൾക്ക്, ഈ അടിസ്ഥാന യാഥാർത്ഥ്യങ്ങൾ മനസ്സിലാക്കുന്നത് കരുത്തുറ്റതും ഉപയോക്തൃ കേന്ദ്രീകൃതവുമായ പ്രവർത്തന പാളികൾ രൂപകൽപ്പന ചെയ്യുന്നതിൽ പ്രധാനമാണ്.

രണ്ട് പ്രക്രിയകളുടെ ഒരു കഥ: ക്ലയൻ്റ് വേഴ്സസ് സെർവർ

"ഹാക്ക്-വൈ" വികാരത്തിൻ്റെ കാതൽ psql-ൻ്റെ ആർക്കിടെക്ചറിൽ നിന്നാണ്. നിങ്ങൾ psql-ൽ ഒരു ചോദ്യം എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, രണ്ട് സ്വതന്ത്ര പ്രോസസ്സുകൾ പ്രവർത്തിക്കുന്നു: നിങ്ങളുടെ ലോക്കൽ മെഷീനിലെ psql ക്ലയൻ്റ് പ്രോസസ്സും ഡാറ്റാബേസ് ഹോസ്റ്റിലെ പോസ്റ്റ്ഗ്രെസ് സെർവർ പ്രോസസ്സും. CTRL-C അമർത്തുന്നത് psql ക്ലയൻ്റ് പ്രോസസ്സിലേക്ക് പ്രത്യേകമായി ഒരു SIGINT (ഇൻ്ററപ്റ്റ് സിഗ്നൽ) അയയ്ക്കുന്നു. കാത്തിരിപ്പ് അവസാനിപ്പിച്ച് പ്രോംപ്റ്റിലേക്ക് മടങ്ങുക എന്നതാണ് ക്ലയൻ്റിൻ്റെ ഉടനടി ജോലി. എന്നിരുന്നാലും, ഈ ക്ലയൻ്റ് സൈഡ് സിഗ്നലിനെ കുറിച്ച് സെർവറിന് അന്തർലീനമായ അറിവില്ല. അതിൻ്റെ വീക്ഷണകോണിൽ, അന്വേഷണം ഇപ്പോഴും സാധുവായ, പ്രവർത്തിക്കുന്ന പ്രവർത്തനമാണ്. റദ്ദാക്കൽ അഭ്യർത്ഥന ഒരു പ്രത്യേക, പുതിയ നിർദ്ദേശമായി അറിയിക്കണം.

റദ്ദാക്കൽ പ്രോട്ടോക്കോൾ: ഒരു ദ്വിതീയ അഭ്യർത്ഥന

അപ്പോൾ, ചോദ്യം യഥാർത്ഥത്തിൽ എങ്ങനെ റദ്ദാക്കപ്പെടും? SIGINT കൈകാര്യം ചെയ്ത ശേഷം, നല്ല പെരുമാറ്റമുള്ള ഒരു psql ക്ലയൻ്റ് PostgreSQL-ൻ്റെ ഔദ്യോഗിക റദ്ദാക്കൽ പ്രോട്ടോക്കോൾ ആരംഭിക്കുന്നു. സെർവറിലേക്ക് ഒരു പുതിയ കണക്ഷൻ തുറക്കുന്നതും നിങ്ങളുടെ അന്വേഷണത്തിൽ പ്രവർത്തിക്കുന്ന നിർദ്ദിഷ്ട ബാക്കെൻഡ് പ്രോസസ്സ് തിരിച്ചറിയുന്ന ഒരു രഹസ്യ കീ അടങ്ങുന്ന ഒരു പ്രത്യേക "റദ്ദാക്കുക അഭ്യർത്ഥന" സന്ദേശം അയയ്ക്കുന്നതും ഇതിൽ ഉൾപ്പെടുന്നു. ഈ അഭ്യർത്ഥന കുറഞ്ഞ മുൻഗണനയോടെയാണ് പ്രോസസ്സ് ചെയ്യുന്നത്, ഉടനടി വിജയിക്കുമെന്ന് ഉറപ്പില്ല. ഈ മൾട്ടി-സ്റ്റെപ്പ്, തീ-മറക്കൽ പ്രക്രിയയാണ് പെരുമാറ്റം പരോക്ഷമായി അനുഭവപ്പെടുന്നത്. ഇത് നേരിട്ടുള്ള തടസ്സമല്ല; ഇത് ഒരു ബാക്ക്‌ചാനലിലൂടെ അയച്ച മര്യാദയുള്ളതും അസമന്വിതവുമായ അപേക്ഷയാണ്.

ഉപയോക്തൃ അനുഭവ ഗ്യാപ്പും എഡ്ജ് കേസുകളും

ഈ ഡിസൈൻ ഉപയോക്താക്കൾക്കായി നിരവധി സ്പഷ്ടമായ ഘർഷണ പോയിൻ്റുകളിലേക്ക് നയിക്കുന്നു:

മെവയ്‌സിനൊപ്പം അവയർ ഫൗണ്ടേഷനുകൾ നിർമ്മിക്കൽ

ആധുനിക ബിസിനസ്സ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ അവയുടെ പരിമിതികളെ മാനിച്ചുകൊണ്ട് ഈ അന്തർലീനമായ സങ്കീർണ്ണതകളെ സംഗ്രഹിക്കണം. ഒരു മോഡുലാർ ബിസിനസ് OS ആയി പ്രവർത്തിക്കുന്ന Mewayz പോലെയുള്ള ഒരു പ്ലാറ്റ്ഫോം, നിയന്ത്രിത സേവന മൊഡ്യൂളുകൾക്കുള്ളിൽ ഡാറ്റാബേസ് ഇടപെടലുകൾ ഉൾക്കൊള്ളുന്നു. ഉദാഹരണത്തിന്, ഒരു Mewayz ഡാറ്റാ ക്വറി മൊഡ്യൂൾ ഒരു റോ SQL പ്രോംപ്റ്റിനെ മാത്രം വെളിപ്പെടുത്തില്ല; ഇത് ഉപയോക്തൃ-സൗഹൃദ നിയന്ത്രണങ്ങൾ ഉപയോഗിച്ച് പൊതിയുന്നു-ഒരു ശരി, പരിശോധിക്കാവുന്ന "സ്റ്റോപ്പ്" ബട്ടൺ, അന്വേഷണ സമയപരിധികൾ, സെർവറിൽ യഥാർത്ഥത്തിൽ എന്താണ് പ്രവർത്തിക്കുന്നതെന്ന് കാണിക്കുന്ന തത്സമയ സ്റ്റാറ്റസ് ഡാഷ്‌ബോർഡുകൾ. ഇത് പ്രോട്ടോക്കോൾ ക്വിർക്കുകൾ കൈകാര്യം ചെയ്യുന്നതിൽ നിന്ന് വ്യക്തവും പ്രവർത്തനക്ഷമവുമായ ബിസിനസ്സ് പ്രവർത്തനങ്ങൾ കൈകാര്യം ചെയ്യുന്നതിലേക്ക് അനുഭവത്തെ നീക്കുന്നു. psql-ൻ്റെ CTRL-C-യിൽ നിന്നുള്ള പാഠം, മികച്ച ഉപകരണങ്ങൾ ശക്തമായ കഴിവുകൾ മാത്രം വെളിപ്പെടുത്തുന്നില്ല എന്നതാണ്; അവർ അവബോധജന്യവും വിശ്വസനീയവുമായ ഇൻ്റർഫേസുകൾ രൂപകൽപ്പന ചെയ്യുന്നു, വാസ്തുവിദ്യാ പാരമ്പര്യങ്ങളെ തടസ്സമില്ലാത്ത വർക്ക്ഫ്ലോകളാക്കി മാറ്റുന്നു. ഹാക്ക് മനസ്സിലാക്കുന്നത്, മെച്ചപ്പെട്ട എന്തെങ്കിലും നിർമ്മിക്കാനുള്ള അവസരം വെളിപ്പെടുത്തുന്നു.

നിങ്ങളുടെ എല്ലാ ബിസിനസ്സ് ഉപകരണങ്ങളും ഒരിടത്ത്

ഒന്നിലധികം ആപ്‌സുകൾ കൈകാര്യം ചെയ്യുന്നത് നിർത്തുക. Mewayz 208 ടൂളുകൾ പ്രതിമാസം $49-ന് സംയോജിപ്പിക്കുന്നു - ഇൻവെൻ്ററി മുതൽ HR വരെ, ബുക്കിംഗ് മുതൽ അനലിറ്റിക്സ് വരെ. ആരംഭിക്കുന്നതിന് ക്രെഡിറ്റ് കാർഡ് ആവശ്യമില്ല.

Free→za> പരീക്ഷിക്കുക