Ինչպես CTRL-C-ն Postgres CLI-ում չեղարկում է հարցումները, անհավանական է | Mewayz Blog Skip to main content
Hacker News

Ինչպես CTRL-C-ն Postgres CLI-ում չեղարկում է հարցումները, անհավանական է

Մեկնաբանություններ

1 min read Via neon.com

Mewayz Team

Editorial Team

Hacker News
<մարմին>

SIGINT-ի երկարատև ուրվական.

Կարգավորողների և տվյալների բազայի ադմինիստրատորների համար PostgreSQL հրամանի տողի ինտերֆեյսը (psql) ամենօրյա վստահելի վարորդ է: Այն հզոր է, ճշգրիտ և ամենուր: Այնուամենայնիվ, նրա ամենահիմնական փոխազդեցություններից մեկը՝ չեղյալ համարվող հարցումը համընդհանուր CTRL-C դյուրանցման միջոցով, անտեղի է թվում: Ի տարբերություն շատ ժամանակակից հավելվածների, որտեղ հրամանը պարզապես դադարեցնում է ընթացիկ գործողությունը, psql-ում CTRL-C-ն իրականում չի չեղարկում սերվերի հարցումը: Փոխարենը, այն չեղարկում է հաճախորդի սպասումը արդյունքի համար՝ թողնելով հարցումը պոտենցիալ հեռանալով տվյալների բազայի սերվերից: Այս պահվածքը վրիպակ չէ. դա դիզայնի արտեֆակտ է, որը բացահայտում է մեր գործիքների շերտավոր, երբեմն փխրուն ճարտարապետությունը: Մոդուլային համակարգերի վրա հիմնված ձեռնարկությունների համար, ինչպիսին է Mewayz-ը, այս հիմքում ընկած իրողությունների ըմբռնումը կարևոր է ամուր, օգտագործողին կենտրոնացած գործառնական շերտերի նախագծման համար:

Երկու գործընթացների հեքիաթ. հաճախորդն ընդդեմ սերվերի

«hack-y» զգացողության առանցքը բխում է psql-ի ճարտարապետությունից: Երբ հարցում եք կատարում psql-ում, գործում են երկու անկախ գործընթացներ՝ psql հաճախորդի գործընթացը ձեր տեղական մեքենայի վրա և postgres սերվերի գործընթացը տվյալների բազայի հոսթի վրա: Սեղմելով CTRL-C-ն, ուղարկվում է SIGINT (ընդհատման ազդանշան) հատուկ psql հաճախորդի գործընթացին: Հաճախորդի անմիջական գործն է դադարեցնել սպասելը և վերադառնալ հուշումին, ինչն էլ անում է: Այնուամենայնիվ, սերվերը չունի հատուկ գիտելիքներ այս հաճախորդի կողմից ազդանշանի մասին: Իր տեսանկյունից հարցումը դեռ վավեր, գործող գործողություն է: Չեղարկման հարցումը պետք է փոխանցվի որպես առանձին, նոր հրահանգ:

«CTRL-C-ն psql-ում ավելի քիչ «դադարեցնել» կոճակ է, իսկ ավելի շատ՝ «խնդրում եմ անտեսել իմ նախորդ խնդրանքը» նշումը, որը դուք հանձնում եք զբաղված գրադարանավարին, երբ նրանք արդեն կիսով չափ են դեպի կույտերը»:

Չեղարկման արձանագրություն. երկրորդական հարցում

Այսպիսով, ինչպե՞ս է հարցումն իրականում չեղարկվում: SIGINT-ի հետ աշխատելուց հետո լավ վարք ունեցող psql հաճախորդը նախաձեռնում է PostgreSQL-ի չեղարկման պաշտոնական արձանագրությունը: Սա ներառում է լրիվ նոր կապ բացել սերվերին և ուղարկել հատուկ «չեղարկել հարցումը» հաղորդագրություն, որը պարունակում է գաղտնի բանալի, որը նույնականացնում է ձեր հարցումն իրականացնող հատուկ հետին պլանի գործընթացը: Այս հարցումը մշակվում է ցածր առաջնահերթությամբ, և անհապաղ հաջողության երաշխիք չկա: Այս բազմաքայլ, կրակի և մոռացության գործընթացն է պատճառը, որ վարքագիծն անուղղակի է թվում: Դա ուղղակի ընդհատում չէ. դա քաղաքավարի, ասինքրոն խնդրանք է, որն ուղարկվում է հետին ալիքով:

Օգտատիրոջ փորձի բացը և եզրային դեպքերը

Այս դիզայնը հանգեցնում է օգտվողների համար մի քանի շոշափելի շփման կետերի.

  • Ըմբռնված անպատասխանություն. Դուք սեղմում եք CTRL-C, անմիջապես հետ եք ստանում ձեր հաղորդագրությունը, սակայն համակարգի ծանրաբեռնվածությունը մնում է բարձր, քանի որ սերվերը դեռ աշխատում է:
  • Անորոշ արդյունք. Դուք անհապաղ հաստատում չունեք, եթե չեղարկելու հարցումը ստացվել կամ բավարարվել է սերվերի կողմից:
  • Միացումից կախված ձախողում. Եթե սերվերը պատված է կամ չեղարկելու խնդրանքի նոր կապը ձախողվի, սկզբնական հարցման զինվորները միացված են անորոշ ժամանակով:
  • Հոգեբանական անհամապատասխանություն. Համընդհանուր «աբորտ» հրամանը չի կատարում համաժամանակյա ընդհատում, ինչը խախտում է օգտատերերի սպասելիքները, որոնք ձևավորվել են հաշվողական միջավայրի այլ վայրերում:

Իրազեկ հիմքերի վրա հիմնվելով Mewayz-ի հետ

Ժամանակակից բիզնեսի օպերացիոն համակարգերը պետք է վերացնեն այս հիմքում ընկած բարդությունները՝ հարգելով դրանց սահմանափակումները: Mewayz-ի նման հարթակը, որը հանդես է գալիս որպես մոդուլային բիզնես OS, կներառի տվյալների բազայի փոխազդեցությունները կառավարվող ծառայության մոդուլներում: Օրինակ, 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 →

Հաճախակի տրվող հարցեր

SIGINT-ի երկարատև ուրվական.

Կարգավորողների և տվյալների բազայի ադմինիստրատորների համար PostgreSQL հրամանի տողի ինտերֆեյսը (psql) ամենօրյա վստահելի վարորդ է: Այն հզոր է, ճշգրիտ և ամենուր: Այնուամենայնիվ, նրա ամենահիմնական փոխազդեցություններից մեկը՝ չեղյալ համարվող հարցումը համընդհանուր CTRL-C դյուրանցման միջոցով, անտեղի է թվում: Ի տարբերություն շատ ժամանակակից հավելվածների, որտեղ հրամանը պարզապես դադարեցնում է ընթացիկ գործողությունը, psql-ում CTRL-C-ն իրականում չի չեղարկում սերվերի հարցումը: Փոխարենը, այն չեղարկում է հաճախորդի սպասումը արդյունքի համար՝ թողնելով հարցումը պոտենցիալ հեռանալով տվյալների բազայի սերվերում: Այս պահվածքը վրիպակ չէ. դա դիզայնի արտեֆակտ է, որը բացահայտում է մեր գործիքների շերտավոր, երբեմն փխրուն ճարտարապետությունը: Mewayz-ի նման մոդուլային համակարգերի վրա կառուցված ձեռնարկությունների համար այս հիմքում ընկած իրողությունների ըմբռնումը կարևոր է ամուր, օգտատիրոջ վրա հիմնված գործառնական շերտերի նախագծման համար:

Երկու գործընթացների պատմություն. հաճախորդն ընդդեմ սերվերի

«hack-y» զգացողության առանցքը բխում է psql-ի ճարտարապետությունից: Երբ հարցում եք կատարում psql-ում, գործում են երկու անկախ գործընթացներ՝ psql հաճախորդի գործընթացը ձեր տեղական մեքենայի վրա և postgres սերվերի գործընթացը տվյալների բազայի հոսթի վրա: Սեղմելով CTRL-C-ն, ուղարկվում է SIGINT (ընդհատման ազդանշան) հատուկ psql հաճախորդի գործընթացին: Հաճախորդի անմիջական գործն է դադարեցնել սպասելը և վերադառնալ հուշումին, ինչն էլ անում է: Այնուամենայնիվ, սերվերը չունի հատուկ գիտելիքներ այս հաճախորդի կողմից ազդանշանի մասին: Իր տեսանկյունից հարցումը դեռ վավեր, գործող գործողություն է: Չեղարկման հարցումը պետք է փոխանցվի որպես առանձին, նոր հրահանգ:

Չեղարկման արձանագրություն. երկրորդական հարցում

Այսպիսով, ինչպե՞ս է հարցումն իրականում չեղարկվում: SIGINT-ի հետ աշխատելուց հետո լավ վարք ունեցող psql հաճախորդը նախաձեռնում է PostgreSQL-ի չեղարկման պաշտոնական արձանագրությունը: Սա ներառում է սերվերի հետ բոլորովին նոր կապ բացելը և հատուկ «չեղարկել հարցումը» հաղորդագրություն ուղարկելը, որը պարունակում է գաղտնի բանալի, որը նույնականացնում է ձեր հարցումն իրականացնող հատուկ հետին պլանի գործընթացը: Այս հարցումը մշակվում է ցածր առաջնահերթությամբ, և անհապաղ հաջողության երաշխիք չկա: Այս բազմաքայլ, կրակի և մոռացության գործընթացն է պատճառը, որ վարքագիծն անուղղակի է թվում: Դա ուղղակի ընդհատում չէ. դա քաղաքավարի, ասինքրոն խնդրանք է, որն ուղարկվում է հետին ալիքով:

Օգտատիրոջ փորձի բացը և եզրային դեպքերը

Այս դիզայնը հանգեցնում է օգտվողների համար մի քանի շոշափելի շփման կետերի.

Իրազեկ հիմքերի վրա հիմնվելով Mewayz-ի հետ

Ժամանակակից բիզնեսի օպերացիոն համակարգերը պետք է վերացնեն այս հիմքում ընկած բարդությունները՝ հարգելով դրանց սահմանափակումները: Mewayz-ի նման հարթակը, որը հանդես է գալիս որպես մոդուլային բիզնես OS, կներառի տվյալների բազայի փոխազդեցությունները կառավարվող սպասարկման մոդուլներում: Օրինակ, Mewayz տվյալների հարցման մոդուլը պարզապես չի ցուցադրի չմշակված SQL հուշումը. այն կփաթաթեր օգտատիրոջ համար հարմար հսկիչներով՝ ճշմարիտ, ստուգելի «կանգառ» կոճակով, հարցումների ժամանակի ընդհատումներով և իրական ժամանակի կարգավիճակի վահանակներով, որոնք ցույց են տալիս, թե իրականում ինչ է աշխատում սերվերում: Սա փորձը տեղափոխում է արձանագրային տարօրինակությունների հետ առնչվելուց դեպի հստակ, գործնական բիզնես գործառնությունների կառավարում: psql-ի CTRL-C-ի դասն այն է, որ հիանալի գործիքները ոչ միայն բացահայտում են հզոր հնարավորությունները. նրանք ինտուիտիվ և հուսալի միջերեսներ են նախագծում նրանց համար՝ ճարտարապետական ​​ժառանգությունները վերածելով անխափան աշխատանքային հոսքերի: Հասկանալով հակերը, բացահայտում է ավելի լավ բան կառուցելու հնարավորությունը:

Ձեր բիզնեսի բոլոր գործիքները մեկ տեղում

Դադարեցրեք բազմաթիվ հավելվածների ձեռնածությունը: Mewayz-ը միավորում է 208 գործիք ընդամենը 49 դոլարով/ամսական՝ գույքագրումից մինչև HR, ամրագրում մինչև վերլուծություն: Սկսելու համար վարկային քարտ չի պահանջվում:

ՓորձեքMeway: