Postgres CLI-də CTRL-C-nin sorğuları ləğv etmə üsulu inanılmaz dərəcədə hiylədir. | Mewayz Blog Skip to main content
Hacker News

Postgres CLI-də CTRL-C-nin sorğuları ləğv etmə üsulu inanılmaz dərəcədə hiylədir.

Şərhlər

12 min read Via neon.com

Mewayz Team

Editorial Team

Hacker News

SIGINT-in qalıcı xəyalı: Postgres CLI sorğusunun ləğvi niyə haker kimi hiss olunur

Tərtibatçılar və verilənlər bazası administratorları üçün PostgreSQL komanda xətti interfeysi (psql) etibarlı gündəlik sürücüdür. Güclü, dəqiq və hər yerdədir. Bununla belə, onun ən əsas qarşılıqlı əlaqələrindən biri - universal CTRL-C qısayolu ilə qaçan sorğunun ləğvi - qəribə bir şəkildə yersiz hiss olunur. Komandanın sadəcə cari əməliyyatı dayandırdığı bir çox müasir proqramlardan fərqli olaraq, psql-də CTRL-C əslində serverdəki sorğunu ləğv etmir. Əvəzində, o, sorğunun verilənlər bazası serverində potensial olaraq boşaldılması üçün nəticə üçün müştəri gözləməsini ləğv edir. Bu davranış səhv deyil; bu, alətlərimizin laylı, bəzən kövrək arxitekturasını ortaya qoyan dizayn artefaktıdır. Mewayz kimi modul sistemlər üzərində qurulan bizneslər üçün bu əsas reallıqları başa düşmək möhkəm, istifadəçi mərkəzli əməliyyat təbəqələrinin dizaynının açarıdır.

İki prosesin nağılı: Müştəri və Server

"Hack-y" hisslərinin əsası psql-in arxitekturasından qaynaqlanır. Siz psql-də sorğu yerinə yetirdiyiniz zaman iki müstəqil proses işləyir: yerli maşınınızdakı psql müştəri prosesi və verilənlər bazası hostunda postgres server prosesi. CTRL-C düyməsinə basmaq xüsusi olaraq psql müştəri prosesinə SIGINT (kəsmə siqnalı) göndərir. Müştərinin dərhal işi gözləməyi dayandırmaq və sorğuya qayıtmaqdır, bunu edir. Bununla belə, serverin bu müştəri tərəfi siqnalı haqqında heç bir xas biliyi yoxdur. Öz nöqteyi-nəzərindən sorğu hələ də etibarlı, işləyən əməliyyatdır. Ləğv sorğusu ayrıca, yeni təlimat kimi göndərilməlidir.

"PSQL-də CTRL-C daha az "dayandır" düyməsidir və daha çox "zəhmət olmasa, mənim əvvəlki sorğuma məhəl qoyma" qeyd edir ki, siz məşğul kitabxanaçıya artıq yığınların yarısında olan zaman təhvil verin."

Ləğv Protokolu: İkincili Sorğu

Beləliklə, sorğu əslində necə ləğv edilir? SIGINT-i idarə etdikdən sonra yaxşı davranışlı psql müştərisi PostgreSQL-in rəsmi ləğvetmə protokolunu işə salır. Bu, serverə yeni əlaqənin açılmasını və sorğunuzu yerinə yetirən xüsusi backend prosesini müəyyən edən məxfi açarı ehtiva edən xüsusi "sorğunun ləğvi" mesajının göndərilməsini əhatə edir. Bu sorğu aşağı prioritetlə işlənir və dərhal uğura zəmanət yoxdur. Bu çox addımlı, yandır və unut prosesi davranışın dolayı hiss etməsinə səbəb olur. Bu birbaşa fasilə deyil; bu, arxa kanal vasitəsilə göndərilən nəzakətli, asinxron yalvarışdır.

İstifadəçi Təcrübəsi Boşluğu və Kənar İşləri

Bu dizayn istifadəçilər üçün bir neçə nəzərəçarpacaq sürtünmə nöqtəsinə gətirib çıxarır:

  • Cavabsızlıq: CTRL-C düymələrini basdınız, xəbərdarlığınızı dərhal geri alın, lakin server hələ də işlədiyi üçün sistem yükü yüksək olaraq qalır.
  • Qeyri-müəyyən nəticə: Ləğv sorğusunun server tərəfindən qəbul edildiyini və ya yerinə yetirildiyini dərhal təsdiqləməyiniz yoxdur.
  • Bağlantıdan Asılı Xəta: Əgər server təhlükəsizlik divarı ilə qorunubsa və ya ləğv sorğusu üçün yeni bağlantı uğursuz olarsa, orijinal sorğu qeyri-müəyyən müddətə aktivdir.
  • Psixoloji Uyğunsuzluq: Universal "abort" əmri hesablama mühitinin başqa yerlərdə formalaşmış istifadəçi gözləntilərini pozaraq sinxron ləğvi həyata keçirmir.

Mewayz ilə məlumatlı təməllər üzərində qurulması

Müasir biznes əməliyyat sistemləri məhdudiyyətlərinə riayət etməklə bu əsas mürəkkəblikləri aradan qaldırmalıdır. Modul biznes əməliyyat sistemi kimi fəaliyyət göstərən Mewayz kimi platforma idarə olunan xidmət modulları daxilində verilənlər bazası qarşılıqlı əlaqəsini əhatə edəcək. Məsələn, Mewayz məlumat sorğu modulu yalnız xam SQL sorğusunu ifşa etməyəcək; o, onu istifadəçi dostu idarəetmə vasitələri ilə əhatə edərdi - həqiqi, yoxlanıla bilən "dayandır" düyməsi, sorğuların fasilələri və serverdə həqiqətən nəyin işlədiyini göstərən real vaxt status panelləri. Bu, təcrübəni protokol qəribəlikləri ilə məşğul olmaqdan aydın, təsirli biznes əməliyyatlarını idarə etməyə keçir. Psql-in CTRL-C-dən alınan dərs ondan ibarətdir ki, əla alətlər təkcə güclü imkanları ifşa etmir; memarlıq irsini qüsursuz iş axınlarına çevirərək, onlar üçün intuitiv və etibarlı interfeyslər hazırlayırlar. Hacki başa düşmək daha yaxşı nəsə qurmaq fürsətini ortaya qoyur.

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

Tez-tez verilən suallar

SIGINT-in qalıcı xəyalı: Postgres CLI sorğusunun ləğvi niyə haker kimi hiss olunur

Tərtibatçılar və verilənlər bazası administratorları üçün PostgreSQL komanda xətti interfeysi (psql) etibarlı gündəlik sürücüdür. Güclü, dəqiq və hər yerdədir. Bununla belə, onun ən əsas qarşılıqlı əlaqələrindən biri - universal CTRL-C qısayolu ilə qaçan sorğunun ləğvi - qəribə bir şəkildə yersiz hiss olunur. Komandanın sadəcə cari əməliyyatı dayandırdığı bir çox müasir proqramlardan fərqli olaraq, psql-də CTRL-C əslində serverdəki sorğunu ləğv etmir. Bunun əvəzinə, müştərinin nəticə gözləməsini ləğv edir və sorğunun verilənlər bazası serverində potensial olaraq silinməsinə səbəb olur. Bu davranış səhv deyil; bu, alətlərimizin laylı, bəzən kövrək arxitekturasını ortaya qoyan dizayn artefaktıdır. Mewayz kimi modul sistemlər üzərində qurulan bizneslər üçün bu əsas reallıqları başa düşmək möhkəm, istifadəçi mərkəzli əməliyyat təbəqələrinin dizaynının açarıdır.

İki prosesin nağılı: Müştəri və Server

"Hack-y" hisslərinin əsası psql-in arxitekturasından qaynaqlanır. Siz psql-də sorğu yerinə yetirdiyiniz zaman iki müstəqil proses işləyir: yerli maşınınızdakı psql müştəri prosesi və verilənlər bazası hostunda postgres server prosesi. CTRL-C düyməsinə basmaq xüsusi olaraq psql müştəri prosesinə SIGINT (kesinti siqnalı) göndərir. Müştərinin dərhal işi gözləməyi dayandırmaq və sorğuya qayıtmaqdır, bunu edir. Bununla belə, serverin bu müştəri tərəfi siqnalı haqqında heç bir xas biliyi yoxdur. Öz nöqteyi-nəzərindən sorğu hələ də etibarlı, işləyən əməliyyatdır. Ləğv sorğusu ayrıca, yeni təlimat kimi göndərilməlidir.

Ləğv Protokolu: İkincili Sorğu

Beləliklə, sorğu əslində necə ləğv edilir? SIGINT-i idarə etdikdən sonra yaxşı davranışlı psql müştərisi PostgreSQL-in rəsmi ləğvetmə protokolunu işə salır. Bu, serverə tamamilə yeni bir əlaqənin açılmasını və sorğunuzu yerinə yetirən xüsusi backend prosesini müəyyən edən gizli açarı ehtiva edən xüsusi "ləğv sorğusu" mesajının göndərilməsini əhatə edir. Bu sorğu aşağı prioritetlə işlənir və dərhal uğura zəmanət yoxdur. Bu çox addımlı, yandır və unut prosesi davranışın dolayı hiss etməsinə səbəb olur. Bu birbaşa fasilə deyil; bu, arxa kanal vasitəsilə göndərilən nəzakətli, asinxron yalvarışdır.

İstifadəçi Təcrübəsi Boşluğu və Kənar İşləri

Bu dizayn istifadəçilər üçün bir neçə nəzərəçarpacaq sürtünmə nöqtəsinə gətirib çıxarır:

Mewayz ilə məlumatlı təməllər üzərində qurulması

Müasir biznes əməliyyat sistemləri məhdudiyyətlərinə riayət etməklə bu əsas mürəkkəblikləri aradan qaldırmalıdır. Modul biznes əməliyyat sistemi kimi fəaliyyət göstərən Mewayz kimi platforma idarə olunan xidmət modulları daxilində verilənlər bazası qarşılıqlı əlaqəsini əhatə edəcək. Məsələn, Mewayz məlumat sorğu modulu yalnız xam SQL sorğusunu ifşa etməyəcək; o, onu istifadəçi dostu idarəetmə vasitələri ilə əhatə edərdi - həqiqi, yoxlanıla bilən "dayandır" düyməsi, sorğuların fasilələri və serverdə həqiqətən nəyin işlədiyini göstərən real vaxt status panelləri. Bu, təcrübəni protokol qəribəlikləri ilə məşğul olmaqdan aydın, təsirli biznes əməliyyatlarını idarə etməyə keçir. Psql-in CTRL-C-dən alınan dərs ondan ibarətdir ki, əla alətlər təkcə güclü imkanları ifşa etmir; memarlıq irsini qüsursuz iş axınlarına çevirərək, onlar üçün intuitiv və etibarlı interfeyslər hazırlayırlar. Hacki başa düşmək daha yaxşı nəsə qurmaq fürsətini ortaya qoyur.

Bütün Biznes Alətləriniz Bir yerdə

Birdən çox proqramla hoqqabazlığı dayandırın. Mewayz 208 aləti ayda cəmi 49 dollara birləşdirir – inventardan tutmuş HR, rezervasiyadan analitikaya qədər. Başlamaq üçün kredit kartı tələb olunmur.

Mewayz-i pulsuz sınaqdan keçirin→

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