Tai, kaip CTRL-C „Postgres CLI“ atšaukia užklausas, yra neįtikėtinai nulaužtas | Mewayz Blog Skip to main content
Hacker News

Tai, kaip CTRL-C „Postgres CLI“ atšaukia užklausas, yra neįtikėtinai nulaužtas

Komentarai

7 min read Via neon.com

Mewayz Team

Editorial Team

Hacker News

Tęsiantis SIGINT vaiduoklis: kodėl Postgres CLI užklausos atšaukimas atrodo kaip įsilaužimas

Kūrėjams ir duomenų bazių administratoriams PostgreSQL komandų eilutės sąsaja (psql) yra patikima kasdienė tvarkyklė. Jis galingas, tikslus ir visur paplitęs. Tačiau viena iš svarbiausių jos sąveikų – pabėgusios užklausos atšaukimas naudojant universalųjį CTRL-C spartųjį klavišą – atrodo keistai netinkama. Skirtingai nuo daugelio šiuolaikinių programų, kur komanda tiesiog sustabdo dabartinę operaciją, psql, CTRL-C iš tikrųjų neatšaukia užklausos serveryje. Vietoj to, jis atšaukia kliento laukimą, kol bus pateiktas rezultatas, todėl užklausa gali būti nublokšta duomenų bazės serveryje. Toks elgesys nėra klaida; tai dizaino artefaktas, atskleidžiantis daugiasluoksnę, kartais trapią mūsų įrankių architektūrą. Įmonėms, kurios kuria modulines sistemas, pvz., Mewayz, šios pagrindinės realybės supratimas yra labai svarbus kuriant patikimus, į vartotoją orientuotus veiklos sluoksnius.

Pasaka apie du procesus: klientas prieš serverį

„Hack-y“ jausmo esmė kyla iš psql architektūros. Kai vykdote užklausą psql, veikia du nepriklausomi procesai: psql kliento procesas jūsų vietiniame kompiuteryje ir postgres serverio procesas duomenų bazės pagrindiniame kompiuteryje. Paspaudus CTRL-C siunčiamas SIGINT (pertraukimo signalas) konkrečiai psql kliento procesui. Kliento tiesioginis darbas yra nustoti laukti ir grįžti prie raginimo, kurį jis daro. Tačiau serveris neturi įgimtų žinių apie šį kliento pusės signalą. Žvelgiant iš perspektyvos, užklausa vis dar yra galiojanti, vykdoma operacija. Prašymas atšaukti turi būti perduotas kaip atskiras naujas nurodymas.

„PSql CTRL-C yra mažiau „stop“ mygtukas, o labiau „prašome nekreipti dėmesio į mano ankstesnį prašymą“ pastaba, kurią perduodate užimtam bibliotekininkui, kai jis jau yra pusiaukelėje prie krūvų.

Atšaukimo protokolas: antrinė užklausa

Taigi, kaip iš tikrųjų užklausa atšaukiama? Sutvarkęs SIGINT, gerai besielgiantis psql klientas inicijuoja oficialų PostgreSQL atšaukimo protokolą. Tai apima visiškai naujo ryšio su serveriu atidarymą ir specialaus „atšaukimo užklausos“ pranešimo su slaptu raktu, identifikuojančiu konkretų užklausą vykdantį vidinį procesą, siuntimą. Ši užklausa apdorojama su žemu prioritetu ir nėra jokios garantijos, kad ji bus sėkminga. Šis daugiapakopis, ugnies ir pamiršimo procesas, todėl elgesys atrodo netiesioginis. Tai nėra tiesioginis pertraukimas; tai mandagus, asinchroniškas prašymas, išsiųstas per atgalinį kanalą.

Naudotojo patirties tarpo ir krašto atvejai

Dėl šio dizaino naudotojams atsiranda keletas apčiuopiamų trinties taškų:

  • Pastebimas neatsakymas: paspausite CTRL-C, iškart gausite raginimą, bet sistemos apkrova išlieka didelė, nes serveris vis dar veikia.
  • Neaiškus rezultatas: jūs neturite tiesioginio patvirtinimo, ar atšaukimo užklausą gavo arba serveris patenkino.
  • Nuo ryšio priklausoma klaida: jei serveris uždengtas užkarda arba nepavyksta užmegzti naujo ryšio atšaukimo užklausai, pradinė užklausa veikia neribotą laiką.
  • Psichologinis neatitikimas: universali komanda „nutraukti“ neatlieka sinchroninio nutraukimo, sulaužydama vartotojo lūkesčius, susiformavusius kitur skaičiavimo aplinkoje.

Kūrimas sąmoningais pagrindais naudojant „Mewayz“

Šiuolaikinės verslo operacinės sistemos turi abstrahuoti šiuos sudėtingus dalykus, laikantis jų apribojimų. Tokios platformos kaip Mewayz, veikianti kaip modulinė verslo OS, duomenų bazių sąveiką apimtų valdomuose paslaugų moduliuose. Pavyzdžiui, Mewayz duomenų užklausos modulis ne tik parodytų neapdorotą SQL raginimą; jis apimtų jį patogiais valdikliais – tikru, patikrinamu „stop“ mygtuku, užklausos skirtuoju laiku ir realiojo laiko būsenos prietaisų skydeliais, rodančiais, kas iš tikrųjų veikia serveryje. Tai perkelia patirtį nuo protokolo keistenybių valdymo prie aiškių, veiksmingų verslo operacijų valdymo. psql CTRL-C pamoka yra ta, kad puikūs įrankiai ne tik atskleidžia galingas galimybes; jie kuria intuityvias ir patikimas sąsajas, paversdamos architektūrinius palikimus vientisomis darbo eigomis. Supratus įsilaužimą, atsiveria galimybė sukurti ką nors geresnio.

💡 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 →

Dažniausiai užduodami klausimai

Tęsiantis SIGINT vaiduoklis: kodėl Postgres CLI užklausos atšaukimas atrodo kaip įsilaužimas

Kūrėjams ir duomenų bazių administratoriams PostgreSQL komandų eilutės sąsaja (psql) yra patikima kasdienė tvarkyklė. Jis galingas, tikslus ir visur paplitęs. Tačiau viena iš svarbiausių jos sąveikų – pabėgusios užklausos atšaukimas naudojant universalųjį CTRL-C spartųjį klavišą – atrodo keistai netinkama. Skirtingai nuo daugelio šiuolaikinių programų, kur komanda tiesiog sustabdo dabartinę operaciją, psql, CTRL-C iš tikrųjų neatšaukia užklausos serveryje. Vietoj to, jis atšaukia kliento laukimą, kol bus pateiktas rezultatas, todėl užklausa gali būti pašalinta duomenų bazės serveryje. Toks elgesys nėra klaida; tai dizaino artefaktas, atskleidžiantis daugiasluoksnę, kartais trapią mūsų įrankių architektūrą. Įmonėms, besikuriančioms modulinėmis sistemomis, tokiomis kaip „Mewayz“, labai svarbu suprasti šią esminę realybę kuriant tvirtus, į vartotoją orientuotus veiklos sluoksnius.

Pasaka apie du procesus: klientas prieš serverį

„Hack-y“ jausmo esmė kyla iš psql architektūros. Kai vykdote užklausą psql, veikia du nepriklausomi procesai: psql kliento procesas jūsų vietiniame kompiuteryje ir postgres serverio procesas duomenų bazės pagrindiniame kompiuteryje. Paspaudus CTRL-C, psql kliento procesui siunčiamas SIGINT (pertraukimo signalas). Kliento tiesioginis darbas yra nustoti laukti ir grįžti prie raginimo, kurį jis daro. Tačiau serveris neturi įgimtų žinių apie šį kliento pusės signalą. Žvelgiant iš perspektyvos, užklausa vis dar yra galiojanti, vykdoma operacija. Prašymas atšaukti turi būti perduotas kaip atskiras naujas nurodymas.

Atšaukimo protokolas: antrinė užklausa

Taigi, kaip iš tikrųjų užklausa atšaukiama? Sutvarkęs SIGINT, gerai besielgiantis psql klientas inicijuoja oficialų PostgreSQL atšaukimo protokolą. Tai apima visiškai naujo ryšio su serveriu atidarymą ir specialaus „atšaukimo užklausos“ pranešimo su slaptu raktu, identifikuojančiu konkretų užklausą vykdantį procesą, siuntimą. Ši užklausa apdorojama su žemu prioritetu ir nėra jokios garantijos, kad ji bus sėkminga. Šis daugiapakopis, ugnies ir pamiršimo procesas, todėl elgesys atrodo netiesioginis. Tai nėra tiesioginis pertraukimas; tai mandagus, asinchroniškas prašymas, išsiųstas per atgalinį kanalą.

Naudotojo patirties tarpo ir krašto atvejai

Dėl šio dizaino naudotojams atsiranda keletas apčiuopiamų trinties taškų:

Kūrimas sąmoningais pagrindais naudojant „Mewayz“

Šiuolaikinės verslo operacinės sistemos turi abstrahuoti šiuos sudėtingus dalykus, laikantis jų apribojimų. Tokia platforma kaip „Mewayz“, veikianti kaip modulinė verslo OS, aptrauktų duomenų bazių sąveiką valdomuose paslaugų moduliuose. Pavyzdžiui, Mewayz duomenų užklausos modulis ne tik parodytų neapdorotą SQL raginimą; jis apimtų jį patogiais valdikliais – tikru, patikrinamu „stop“ mygtuku, užklausos skirtuoju laiku ir realiojo laiko būsenos prietaisų skydeliais, rodančiais, kas iš tikrųjų veikia serveryje. Tai perkelia patirtį nuo protokolo keistenybių valdymo prie aiškių, veiksmingų verslo operacijų valdymo. psql CTRL-C pamoka yra ta, kad puikūs įrankiai ne tik atskleidžia galingas galimybes; jie kuria intuityvias ir patikimas sąsajas, paversdamos architektūrinius palikimus vientisomis darbo eigomis. Supratus įsilaužimą, atsiveria galimybė sukurti ką nors geresnio.

Visi jūsų verslo įrankiai vienoje vietoje

Nustokite žongliruoti keliomis programomis. „Mewayz“ sujungia 208 įrankius tik už 49 USD per mėnesį – nuo ​​inventoriaus iki HR, užsakymo iki analizės. Norint pradėti, nereikia kredito kortelės.

Išbandykite „Mewayz Free“ →
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Tęsiantis SIGINT vaiduoklis: kodėl Postgres CLI užklausos atšaukimas atrodo kaip Nulaužti","acceptedAnswer":{"@type":"Answer","text":"Kūrėjams ir duomenų bazių administratoriams PostgreSQL komandų eilutės sąsaja (psql) yra patikima kasdienė tvarkyklė, tačiau ji yra viena iš svarbiausių sąveikų – nepanaši į universalią užklausą Daugelis šiuolaikinių programų, kuriose psql, CTRL-C iš tikrųjų neatšaukia užklausos, todėl užklausa gali būti pašalinta duomenų bazės serveryje Mewayz, suprasti šias esmines realijas yra labai svarbu kuriant tvirtus, į vartotoją orientuotus veiklos sluoksnius."}},{"@type":"Klausimas","pavadinimas":"Pasakojimas apie du procesus: klientas ir serveris","acceptedAnswer":{"@type":"Atsakymas","text":"The \"feeling-stem\"shacks architektūra Kai vykdote užklausą psql, veikia du nepriklausomi procesai: psql kliento procesas jūsų vietiniame kompiuteryje ir postgres serverio procesas, paspaudus CTRL-C, siunčiamas SIGINT (pertraukimo signalas) konkrečiai psql kliento procesui užklausa vis dar yra galiojanti, vykdoma operacija. Atšaukimo užklausa turi būti perduodama kaip atskira nauja instrukcija."}},{"@type":"Klausimas","pavadinimas":"Atšaukimo protokolas: antrinė užklausa","priimtas atsakymas":{"@type":"Atsakymas","tekstas":"Taigi, kaip iš tikrųjų bus atliktas atsakymas psql klientas inicijuoja oficialų „PostgreSQL“ atšaukimo protokolą. Tai reiškia, kad atidaromas visiškai naujas ryšys su slaptu raktu, kuris identifikuoja konkretų užklausą vykdantį procesą, ir nėra jokios garantijos, kad šis procesas bus netiesioginis. tai mandagus, asinchroninis prašymas, išsiųstas per atgalinį kanalą."}},{"@type":"Klausimas","pavadinimas":"Naudotojo patirties tarpo ir krašto atvejai","acceptedAnswer":{"@type":"Answer","text":"Šis dizainas sukelia keletą apčiuopiamų trinties taškų user:"}},{"@type":"Question","name":"Building on Aware Foundations with Mewayz","acceptedAnswer":{"@type":"Answer","text":"Šiuolaikinės verslo operacinės sistemos turi abstrahuoti šiuos sudėtingus dalykus, atsižvelgiant į jų apribojimus. Pvz., „Mewayz“ duomenų užklausos modulis apimtų ne tik neapdorotą SQL užklausą, bet ir patogius valdiklius, užklausos skirtuosius laikus ir realiojo laiko būsenos skydelius, rodančius, kas iš tikrųjų veikia nuo operacijų psql CTRL-C yra tai, kad puikūs įrankiai ne tik atskleidžia galingas galimybes; jie kuria intuityvias ir patikimas sąsajas, o architektūrinius palikimus paverčia vientisomis darbo eigomis

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Related Guide

POS & Payments Guide →

Accept payments anywhere: POS terminals, online checkout, multi-currency, and real-time inventory sync.

Start managing your business smarter today

Join 6,208+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,208+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime