Postgres CLI-də CTRL-C-nin sorğuları ləğv etmə üsulu inanılmaz dərəcədə hiylədir.
Şərhlər
Mewayz Team
Editorial Team
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 →