Sobes.tech

Python

Ինչ է Write-Ahead Log (WAL) սեղմումը PostgreSQL-ում: Որ դեպքերում ակտիվացնելով WAL ֆայլերի սեղմումը նվազեցնում է սկավառակի ենթակառուցվածքի և ցանցի բեռը, և որ դեպքերում այն հանգեցնում է կատարողականի նվազման՝ գերբեռնված CPU միջուկների պատճառով։

6

Ինչպես է կառուցված Event Loop Policy մեխանիզմը asyncio-ում: Որ դեպքերում բեքենդ ծրագրավորողը հարկավոր է ուժեղացնել ստանդարտ իրադարձությունների ցիկլի քաղաքականությունը՝ օրինակ օգտագործելով uvloop՝ հիմնված libuv-ի վրա, և ինչպես է հասնում կատարողականի աճը?

6

Ինչ է արտահայտության ինդեքսը (Expression Index / Functional Index) PostgreSQL-ում: Ինչպիսի՞ լրացուցիչ բեռներ է այն առաջացնում գրանցման գործողությունների ժամանակ (INSERT/UPDATE), և ինչու է պլանավորողը կարող է հրաժարվել այն օգտագործել, եթե հարցման արտահայտության տվյալների տեսակները չեն համընկնում։

4

Ինչպես է աշխատում Python-ում deep copy (copy.deepcopy) մեխանիզմը կատարողական տեսանկյունից: Ինչպե՞ս է այս մեխանիզմը շրջանցում ցիկլային հղումները, ինչու է դա շատ դանդաղ աշխատում մեծ օբյեկտների գրաֆներում, և ինչպիսի՞ այլընտրանքային ձևաչափեր են փոխարինում այն բարձր բեռների համակարգերում։

4

Ինչպե՞ս է աշխատում Sidecar մոդելը Kubernetes-ում, օրինակ՝ Istio կամ Envoy-ով: Ինչպե՞ս է այս մոդելը թույլ տալիս տրաֆիկի գաղտնագրումը (mTLS), հարցումների հետևումը և կրկնությունները դուրս բերել ծրագրից:

4

Ինչ է Cache Penetration, Cache Avalanche և Cache Warmup: Ինչպե՞ս նախագծել cache շերտը առցանց խանութի համար, որպեսզի գիշերային վաճառքի ժամանակ, երբ միլիոնավոր օգտվողներ միաժամանակ նոր արտադրանքներ են պահանջում, տվյալների բազան չպատահի cache բացթողումների պատճառով։

4

Ի՞նչ տարբերություններ կան Push-կենտրոնացված և Pull-կենտրոնացված ճարտարապետությունների միջև տվյալների հոսքի համակարգերի նախագծման ժամանակ, ինչպիսիք են RabbitMQ և Kafka: Ինչպե՞ս են այս մոտեցումները ազդում բրոքերի կողմի հիշողության օգտագործման և սպառողների backpressure խնդրի վրա։

3

Նկարագրեք երկու փուլով հաստատման (2PC) պրոտոկոլը, որը վերաբերում է երկու անկախ հարաբերական տվյալների բազաներին բաժանված գործարքների համար: Ինչ է տեղի ունենում համակարգում, եթե գործարքի համակարգողը ճշգրիտ ձայների փուլից (Prepare) և հաստատման փուլից (Commit) միջև ընկած ժամանակահատվածում փլուզվի:

3

Նկարագրեք ներքին compile() ֆունկցիայի մեխանիզմը: Ինչպե՞ս փոխարկել դինամիկորեն ստեղծված Python կոդի տողը կոդի օբյեկտի, անվտանգորեն կատարել այն մեկուսացված կոնտեքստում exec/eval օգտագործելով և կանխել հեռավոր կոդի գործարկման թերությունները (RCE):

3

Բացատրեք WebSockets, SSE (Server-Sent Events) և gRPC Streaming պրոտոկոլների միջև առևտրերը։ Որ պրոտոկոլը կընտրեիք՝ ա) կենդանի զրույց, բ) միակողմանի շուկայական գների հոսք, գ) միջծառայողական հաղորդակցություն միկրոսերվիսների ճարտարապետությունում, և ինչու՞:

2

Ինչպես են կառուցված Python-ի համար C/C++ ընդարձակումները (C Extensions) մեքենայի տակ? Ինչու են ավանդական Python C API-ով գրած ընդարձակումները դանդաղեցնում GIL-չափ Python-ի անցումը, և ինչպես են այս խնդիրը լուծում ժամանակակից այլընտրանքները, ինչպիսիք են HPy կամ Cython-ը?

2

Ինչպե՞ս է աշխատում Python-ի ստանդարտ os.cpu_count() ֆունկցիան, որը հաճախ վերադարձնում է ֆիզիկական սերվերի ընդհանուր միջուկների քանակը Docker կոնտեյների ներսում, որը աշխատում է Kubernetes պոդում CPU սահմանափակմամբ՝ 2: Ինչպիսի՞ կարևոր խնդիրներ է դա առաջացնում Gunicorn կամ Celery-ում թելերի պուլի չափի հետ, և ինչպես դա շտկել:

2

Կոնսիստենտ Հեշինգ ալգորիթմը ինչպես է աշխատում: Ինչու է այն անհրաժեշտ բաշխված կեշի կլաստերի նախագծման ժամանակ, օրինակ՝ 20 Redis սերվերներով, և ինչպես է այն նվազեցնում անհրաժեշտ բանալիների քանակը, երբ ավելացնում կամ հանում ենք հանգույց?

1

Ինչպե՞ս են Linux Cgroups (Control Groups) և Namespaces ստեղծում անջատում Docker կոնտեյների ներսում: Ինչ է տեղի ունենում Python պրոցեսի հետ, երբ այն գերազանցում է resource.limits.cpu-ը Kubernetes-ում, և ինչու է limits.memory-ի գերազանցումը հանգեցնում OOMKilled-ի, իսկ CPU-ի գերազանցումը միայն թրոտլինգ է առաջացնում։

1