Հոսքերի գերակայությունը
1) Ինչո՞ ւ պետք է առաջնահերթություն տանք
Բեռը մեծացնելիս «ամեն ինչ կարևոր է» վերածվում է «ոչինչ ժամանակ չունենք»։ Հոսքերի գերակայությունը սահմանափակված ռեսուրսները բաշխելու համակարգային միջոց է (CPU, I/O, ցանցը, բյուջեն) հոսքերի/ջոբների/տենանտների միջև այնպես, որ կրիտիկական SLO-ն կատարվի, և արժեքը մնա վերահսկվող։ Արդյունքը վիտրինի կանխատեսելի թարմությունն է, անպատասխանատու ակնարկները և կայուն պատուհանները։
2) Հոսքերի տաքսոնոմիա և կարևորության չափանիշներ
Դասակարգման առանցքները
Ժամանակը ՝ real/near-real-time (վայրկյաններ-րոպեներ), ինտերակտիվ (րոպե), offfline/batch (ժամացույց)։
Քննադատությունը 'ֆինանսական/կարգավորող, պատահական, ապրանքային, հետազոտական։
Կախվածությունը 'այլ վիտրինի աղբյուրները (upstream) vs վերջավոր (downstream)։
Հոսքի արժեքը 'մեկ րոպե/ժամ ուշացման վնասը (SLO breach cost)։
Տենանտանտություն ՝ ներքին թիմ, գործընկեր, արտաքին հաճախորդ։
Պրակտիկա 'յուրաքանչյուր դասարան' Business Priority (BP) և Medical Priority (TP); արդյունքը «P = w1BP + w2TP + w3CostRisk» կոմպոզիտային գերակայությունն է։
3) SLA/SLO/SI մոդելը հոսքերի համար
SLA 'պայմանագրային երաշխիք (օրինակ ՝ "T + 15 րոպե, 99։ 9%»).
SLO 'ինժեներական նպատակներ (p95 թարմ թիվ 10 րոպե; p99 ուշացում 2460 վայրկյան)։
SI (Saturation Index) 'ներկայիս բեռնման հարաբերությունը սահմանների հետ։ օգտագործվում է պլանավորող։
Գվարդրails: guardrail-մետրիկները (օրինակ, վալիդացիայի սխալները, բացթողումները) կարող են ժամանակավորապես բարձրացնել հիբրիդային հոսքերի գերակայությունը։
4) Ծառայության դասարանները (QoS) և քաղաքականությունը
Gold (business-critical) 'վճարումներ, հակաֆրոդ, կարգավորող հաշվետվություններ, պատահականության ալերտեր։
Silver (www.t-critical): Vitrins ղեկավարության, քարոզարշավների, ռիսկի կարբոնատների համար։
Bronze (best-effect) 'հետազոտական մարտեր, երկար re-build և backfill լայն պատուհաններ։
Քաղաքական գործիչները
Strict Priority (SP): Gold միշտ առջևում է; սովի վտանգը։
Weighted Fox Queuing (WFQ) 'քաշը 112/ջոբայի վրա, արդարության վերահսկումը։
Medicit Round-Robin (MSR) 'քվոտաներ վերամշակման մասերի վրա, լավ ցանցային/striming հանգույցների համար։
Deadium-a.ru-ն 'մոտիկ Dedline-ի հետ առաջադրանքները ստանում են կոշիկ։
Cost-a.ru: Վերահաշվարկը հետաձգվում է, եթե «թանկ ժամ» և SLO-ն թույլ են տալիս։
5) Պլանավորողները և գծերը (մակարդակներում)
Մրցույթի/ինգեստի մակարդակը (իրադարձությունների անվադողեր)
Տոպիկի/հերթերը բաժանվում են QoS դասարաններում։ արտադրողների սահմանները; backpressure քվոտայի միջոցով։
Rate limit + burst tokens (token bucket)։
Հաշվարկների մակարդակը (Spark/Flink/DBT/SQL)
Ռեսուրսների պուլերը/կլաստերները դասարաններում 'առանձին executors Gold-ի համար։
Systemption: ռեսուրսների ընտրությունը ցածր դեֆիցիտում (հաճախության սահմանափակումով)։
Admission corl: Մուտքային ֆիլտրը կոդով և SLO-ով; «թանկ» ջոբների շեղումը առանց պատուհանի։
Մրցույթի/OLAP մակարդակը
Մրցակցային I/O և առաջնային հարցումների գծերը։
Materialized views: Gold-ը պերիմենտալ է, Silver-ը պարբերական է, Bronze-ը 'գրաֆիկի/գիշերային պատուհանների վրա։
6) Backpressure, սահմանափակումներ և պաշտպանություն համակարգեր
Backpressure ազդանշանները 'սպառողից արտադրողից (lag/latency/queue depth)։
Limits հարցման/job: bytes scanned, rows returned, wall time caps։
Circuit Breakers-ը 'ծանրաբեռնվածության դեպքում' քայքայումը մինչև պարզեցված ագրեգատների կամ «տաք» դիպուկահարների։
Shed-load: best-effect հոսքերի նետումը/կրճատումը քննադատներին փրկելու համար։
7) Բազմաբնույթ և «արդարություն»
Ստենանտների քվոտաները ՝ CPU/IO/ժամանակի արժեքը։
Հարցումների դասարաններում քաշը 'վերլուծություն, հաշվետվություններ, ML-fichi - տարբեր սահմաններ։
Budget envelopes: Շաբաթական/ամսական առաստաղներ; սպառման դեպքում գերակայությունը նվազեցնելն է, off-peak տեղափոխումը։
8) Արժեքը և «գերակայությունների տնտեսագիտությունը»
Cost-to-Freshness: Որքա՞ ն արժե 1 րոպե բարելավել թարմությունը։
Cost-aj պլանավորումը 'Bultze փոխանցվում է off-peak; backfill-ը «էժան ժամացույցի» մեջ է։
Spot/Systemptible: Ցածր պրիմիզացիայի համար 'wwww.emptible ռեսուրսների օգտագործումը։
Հարցումների ավելացումը '«թանկ» ձևանմուշների սև ցուցակները։ վերաշարադրումը։
9) Առաջնահերթություն batch
Պատուհանների օրացույցը 'Gold-ի ֆիքսված պատուհանը Silver/Bronze-ի առջև։
Dependency-ault DAG: upstream Gold մոդելները ստանում են վաղ փղեր, որպեսզի բացահայտեն կասկադը։
Incremental first: Սկզբում կատարվում են ռեմենտալ կուսակցություններ, ապա «սառը» re-build։
Nokpointing: Որպեսզի emption-ը չի հանգեցնում առաջընթացի կորստի։
10) Առաջնահերթություն սթրիմինգի համար
Գերակա կուսակցությունները 'ավելի շատ consumer-instans Gold-topics-ում։
Watermarks դասարաններում 'Gold-ի համար նեղ lateness-պատուհաններ; Bronze-ի համար ավելի լայն է (ավելի բարձր հանդուրժողականությունը ուշ իրադարձությունների համար)։
Dedup և idempotent sinks: Gold-ի համար խիստ են։ Bronze-ի համար էվրիստիկ է։
Ալերտներ ՝ Gold-alerts-ը գնում է առանձին հաճախականությամբ QoS-ով։
11) Ազդանշանները և ինքնաբերաբար առաջնահերթության փոփոխությունը
Իրադարձական ձգումներ ՝ spike 2019, պատահականություն, պրոմո-քարոզարշավը ռուսական Gold/Silver bust։
SLA վտանգը 'նորարարության կանխագուշակումը կոնկրետ վիտրինի կոդավորման համար։
Express Quality: Զանգվածային դուբլին/կորուստները բացատրում են repert հոսքերի գերակայությունը։
Ֆինանսական ռիսկը 'chargeback աճը բացատրում է սկորինգի/ալերտների գերակայությունը։
12) Դիտողությունն այն է, թե ինչ վերահսկել
Հերթերը/լագը 'երկարությունը, սպասման ժամանակը, p95/p99 դասարանների ձգձգումը։
SLO-տախտակներ 'թարմ/լատենտ/սխալներ շերտի վրա (ingest procurated no marts)։
Արժեքը ՝ cost per class/tenae; շեղումներ բյուջեից։
Systemption/ձախողումներ ՝ հաճախականություն, առաջընթացի կորուստ, MTTR տվյալներ։
Արիթմետիկան առաջնահերթություն է 'ընթացիկ «P», բուստերի պատճառները, պլանավորման որոշումների պատմությունը։
13) Քաղաքական կառավարումը
Քաղաքական գործիչները դելգ կոդում (policy-as-code), տարբերակումը և review։
Չոր պրոգոնները (www.y-run) նախքան օգտագործելը. Ինչպե՞ ս կփոխվի վճարումը/արժեքը։
Canary-2019 'կլաստերների մի մասը անցնում է նոր քաշների/կանոնների։
Runbooks: Ի՞ նչ անել ծանրաբեռնվածության ժամանակ, ինչպես ժամանակավորապես իջեցնել դասը, ինչպես վերադարձնել։
14) Անտիպատերնի
«Ամեն ինչ Gold» է։ Գերակայությունը կորցնում է իմաստը։ պատերազմները սկսվում են ռեսուրսների համար։
Խիստ SP-ն առանց պաշտպանելու սովից։ Silver/Bronze երբեք չեն ավարտվում։
Ոչ admission corl. Համակարգին միանում են «թանկ» հարցումները և բոլորին։
Cost-a.ru-ի բացակայությունը։ Մենք կատարում ենք ծանր backfill «թանկ ժամացույցներում»։
OLTP/OLAP խառնուրդ։ Քննադատական գործարքները տառապում են վերլուծաբանների պատճառով։
Հիբրիդային տվյալները առանց RFC/CLS։ Վերականգնումը/գերակայությունը պատահականորեն բացահայտում է զգայուն դաշտերը։
15) Իրականացման ճանապարհային քարտեզը
1. Discovery 'հոսքերի, կախվածության և սեփականատերերի բուլարիզացիա։ SLO-ի գնահատումը և արժեքի արագությունը։
2. QoS դասարանները 'որոշել Gold/Silver/Bronze, քաշը և հիմնական սահմանները։ policy-as-code։
3. Պլանավորողը և փամփուշտները 'բաժանել կլաստերներ/ռեսուրսների փամփուշտներ, ներառել admission prol։
4. Մոսկվա 'SLO/lag/արժեքը։ ալտերտեր SLO և budget-breach վտանգի համար։
5. Boost: ազդանշանների ինտեգրումը (միջադեպեր, քարոզարշավներ, DQ) առաջնահերթության փոփոխության մեջ։
6. Cost-a.ru: off-peak, spot ռեսուրսները, «թանկ» հարցումների ավելացումը։
7. Hardening: wwww.emption-safe chekpoints, runbooks, կանացի քաղաքականություն, քաոսի թեստեր։
16) Չեկի թուղթը նախքան թողարկումը
- Բոլոր հոսքերի համար որոշվում է QoS դասը, սեփականատերը, SLO-ն և հոսքի արժեքը։
- Շունչներ/կլաստերներ և admission entll, CPU/IO/սկաններ։
- Ներառված են backpressure և rate limits ingest/հյուպատոսների վրա։
- Գերակա քաղաքականությունները կազմված են որպես կոդ։ կա www.y-run և revew։
- Վերահսկվում են ճամբարները, թարմությունը, արժեքը, www.emption/սխալները։ Ալբերտները on-cal- ում։
- Տրամադրված է ազդանշանների վրա (SLA վտանգը, DQ, պատահականություն, քարոզարշավը)։
- Փաստաթղթավորված են runbooks dedation; քաոս սցենարները ստուգված են։
- Bultze-ի համար հոսքերը տեղափոխվել են off-peak/spot առանց կասկադային հետաձգումների ռիսկի։
17) Տիպիկ քաղաքական (կեղծ-YAML) օրինակները
17. 1 Դաս Gold 'dedline և բյուջե
yaml policy: gold_finance_stream priority_base: 90 deadline_slo: freshness<=10m boost_on:
- dq_violation: duplicates_in_txn_id>0
- incident: "chargeback_spike"
limits:
max_scan_mb: 20480 max_concurrency: 32 budget:
max_hourly_cost: 200 preemption:
can_preempt_classes: [silver, bronze]
17. 2 Cost-aware backfill для Bronze
yaml policy: bronze_backfill priority_base: 20 schedule: offpeak(22:00-06:00)
limits:
max_concurrency: 4 iops_cap: low fallback:
pause_if_cluster_si>0. 8
18) Արդյունքը
Հոսքերի գերակայությունը բիզնեսի գերակայությունների, տեխնոլոգիական SLO-ի և տնտեսական սահմանափակումների կառավարվող համադրությունն է, որը իրականացվել է հերթերի, պլանավորման, սահմանափակումների և համակարգի հետադարձ կապի միջոցով։ Երբ QoS դասարանները, ազդանշանները www.boost-ի և cost-a.ru քաղաքականությունը միասին են աշխատում, տվյալները մնում են թարմ և հուսալի, կրիտիկական ինսայտները գալիս են ժամանակին, իսկ ենթակառուցվածքային հաշիվը կանխատեսելի է։