
200 միլիվայրկյան. ինտերակտիվ էջ, որը հետևում է մեկ HTTP հարցման ողջ կյանքին
thenodebook.com-ի «200 Milliseconds» էջը մեկ HTTP հարցումն անցկացնում է իր 211.4 միլիվայրկյան կյանքի միջով՝ Սան Ֆրանցիսկոյի սրճարանում արված սեղմումից մինչև պատվերի հաստատում։
thenodebook.com-ի ինտերակտիվ «200 Milliseconds» էջը հետևում է մեկ HTTP հարցման ողջ կյանքին՝ 211.4 միլիվայրկյանում. երեքշաբթի առավոտյան 9:41-ին Սան Ֆրանցիսկոյի սրճարանում ինչ-որ մեկը սեղմում է Buy, և 211.4 միլիվայրկյան անց էկրանին հայտնվում է «Order confirmed»։ Սեղմողը որևէ ուշացում չի նկատել։ Էջի վերևի ժամացույցը ճշգրիտ է և կանգ է առնում t = 0.211400 վրկ-ի վրա. պատմությունը դասի պահին կանգնում է, ժամացույցը սառչում է, ապա ժամանակը շարունակվում է։
Ճանապարհը
Հարցումն անցնում է յոթ կանգառ. սրճարանի Wi-Fi-ին միացած նոթբուքը, մուտքի կետը, որն ընդունում է ռադիոազդանշանը և փոխանցում լարով, սրճարանի ինտերնետ մատակարարը, Սան Ֆրանցիսկոյի և Վիրջինիայի Էշբըրնի միջև մոտ 4,700 կմ ապակե մանրաթելը, չորս Node.js գործընթաց ունեցող բալանսավորիչը, սերվերի գործընթացը (PID 1447, գործարկվել է 23 օր առաջ) և PostgreSQL բազան՝ 0.35 միլիվայրկյան հեռավորության վրա։ Մինչ հաստատումը կցուցադրվի, հարցումը և պատասխանները վեց անգամ կանցնեն Հյուսիսային Ամերիկան և կանցնեն մոտ քառասուն մեքենաներով, որտեղ աշխատում է ուրիշների հարյուր միլիոն տող կոդ։
Ուր է գնում ժամացույցը
Առաջին հինգ միլիվայրկյանը ապարատուրան ու բրաուզերի հաշվառումն է. հպման մակերևույթի հզորության փոփոխությունը առաջացնում է ընդհատում (interrupt), HID դրայվերը, պատուհանների սերվերը և Chrome-ի բրաուզեր գործընթացը իրադարձությունը փոխանցում են մեկուսացված renderer-ին, որտեղ hit testing-ը սեղմումը բերում է վեց մակարդակ խորությամբ Buy կոճակին։ Այնուհետև /api/checkout-ին ուղղված fetch-ը բաց է թողնում բոլոր երեք քեշերը՝ հիշողության, service worker-ի և սկավառակի, քանի որ POST հարցումները չեն պահվում։ Սոկետների լողավազանում api.thenodebook.com-ի հետ կապ չկա, ուստի հարցումը վճարում է «սառը մեկնարկի» համար. TCP-ի և TLS-ի ձեռքսեղմումները՝ 62 միլիվայրկյան յուրաքանչյուր շրջանի համար, միասին վերցնում են 211.4-ից 127-ը։ 203 բայթանոց տեքստային հարցումը դառնում է 225 բայթանոց TLS գրառում և ցանցով անցնում 300 բայթից փոքր-ինչ պակաս ծավալով. հասցեները մնում են ընթեռնելի բոլոր հանգույցներում, քանի որ մոտ քառասուն մեքենա պետք է երթուղավորի այն։
Սառը և տաք սկիզբ
Հրապարակված սառը մեկնարկի բաշխումը հետևյալն է. պատրաստում 7 մվրկ, ձեռքսեղմումներ 127 մվրկ, թռիչք և նկարում 74 մվրկ, սերվեր 3 մվրկ։ Նույն բաց կապի վրա երկրորդ հարցումը տևում է մոտ 95 մվրկ՝ բրաուզեր 5, մեկ անցում 62, սերվեր 3, նկարում 25, որովհետև պահված սոկետը և սեսիայի տոմսը ամբողջությամբ վերացնում են ձեռքսեղմումները։ Գործողությունների միջև էջը կանգնեցնում է ժամացույցը և հակիրճ բացատրում սոկետները, պորտերը, anycast երթուղավորումը, SYN cookie-ները և նույնականացված գաղտնագրությունը։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։