Axınların prioritetləşdirilməsi
1) Niyə prioritetləşdirmə lazımdır
Yükün artması ilə «hər şey vacibdir» «heç nə üçün vaxt yoxdur» çevrilir. Axınların prioritetləşdirilməsi məhdud resursların (CPU, I/O, şəbəkə, büdcə) kritik SLO-ların yerinə yetirilməsi və xərclərin nəzarət altında qalması üçün axınlar/joblar/tenantlar arasında bölüşdürülməsinin sistemli yoludur. Nəticə - vitrinlərin proqnozlaşdırıla bilən təravəti, davamlı həyəcan və davamlı yenidən hesablama pəncərələri.
2) Axınların taksonomiyası və əhəmiyyət meyarları
Oxlar təsnifatı:- Vaxt: real/near-real-time (saniyə-dəqiqə), interaktiv (dəqiqə), oflayn/batch (saat).
- Kritik: maliyyə/tənzimləyici, insident, ərzaq, tədqiqat.
- Asılılıqlar: digər vitrinlər üçün mənbələr (upstream) vs son (downstream).
- Fasilə haqqı: bir dəqiqə/saat gecikmə (SLO breach cost).
- Tenant: daxili komanda, tərəfdaş, xarici müştəri.
Təcrübə: hər sinif üçün - Business Priority (BP) və Technical Priority (TP); nəticə - kompozit prioritet 'P = w1BP + w2TP + w3CostRisk'.
3) Axınlar üçün SLA/SLO/SI modeli
SLA: müqavilə zəmanəti (məsələn, "maliyyə vitrin T + 15 dəq, 99. 9%»).
SLO: mühəndislik məqsədləri (p95 təravət ≤ 10 dəq; p99 gecikmə ≤ 60 san).
SI (Saturation Index): cari yükləmə limitlərə nisbəti; planlaşdırıcı tərəfindən istifadə olunur.
Guarrails: guardrail-metriklər (məsələn, validasiya səhvləri, boşluqlar) müvəqqəti olaraq təmir axınlarının prioritetini artıra bilər.
4) Xidmət sinifləri (QoS) və siyasət
Gold (business-critical): ödənişlər, antifrod, tənzimləyici hesabatlar, insident riskləri.
Silver (product-critical): dashboard təlimatlar, kampaniyalar, risk-skor üçün vitrinlər.
Bronze (best-effort): tədqiqat batches, uzun re-build və geniş pəncərələr backfill.
- Strict Priority (SP): Gold həmişə qabaqdadır; aşağı aclıq riski.
- Weighted Fair Queuing (WFQ): trafik/Jobs, ədalət nəzarəti.
- Deficit Round-Robin (DRR): şəbəkə/axın qovşaqları üçün yaxşı emal hissələri üçün kvotalar.
- Deadline-aware: yaxın müddət ilə tapşırıqlar bust alır.
- Cost-aware: «bahalı saat» və SLO imkan verirsə, yenidən hesablama təxirə salınır.
5) Planlaşdırıcılar və növbələr (səviyyələrdə)
Qəbul/inhest səviyyəsi (hadisə şini):- Topiklər/növbələr QoS siniflərinə bölünür; prodüserlərin limitləri; kvotalar vasitəsilə backpressure.
- rate limit + burst tokens (token bucket).
- Resurslar hovuzları/siniflər üzrə klasterlər: Gold üçün ayrı-ayrı executors.
- Preemption: Çatışmazlıq zamanı aşağı resursların seçilməsi (tezlik məhdudiyyəti ilə).
- Admission control: büdcə və SLO giriş filtri; pəncərə olmadan «bahalı» cob sapma.
- Rəqabətli I/O və prioritet sorğu növbələri.
- Materialized views: Gold - inkremental, Silver - dövri, Bronze - cədvəl üzrə/gecə pəncərələrində.
6) Backpressure, limitlər və sistemlərin qorunması
Backpressure siqnalları: istehlakçıdan istehsalçıya (lag/latency/queue depth).
Sorğu limitləri: bytes scanned, rows returned, wall-time caps.
Circuit Breakers: həddindən artıq yükləndikdə - sadələşdirilmiş aqreqatlara və ya «isti» snapşotlara qədər deqradasiya.
Shed-load: kritik qurtarmaq üçün best-effort axınları sıfırlama/kəsmə.
7) Çoxtərəflilik və «ədalət»
Tenant kvotaları: CPU/IO/vahid vaxt dəyəri.
Sorğu siniflərinə çəkilər: analitika, hesabatlar, ML-fiçlər - müxtəlif limitlər.
Budget envelopes: həftəlik/aylıq tavanlar; tükəndikdə - prioritetin azaldılması, off-peak-ə köçürülməsi.
8) Qiymət və «prioritetləşdirmə iqtisadiyyatı»
Cost-to-Freshness: təravəti yaxşılaşdırmaq üçün 1 min nə qədər.
Cost-aware planlaşdırma: Bronze off-peak köçürülür; backfill - «ucuz saatlarda».
Spot/Preemptible: aşağı prioritetlər üçün - preemptible resurslarından istifadə.
Sorğuların profilləşdirilməsi: «bahalı» şablonların qara siyahıları; avtomatik yazma.
9) batch üçün prioritet
Pəncərə təqvimi: Silver/Bronze qarşısında Gold üçün fiks pəncərələri.
Dependency-aware DAG: upstream Gold modelləri cascade kilidini açmaq üçün erkən slot alır.
Incremental first: əvvəlcə artımlı partiyalar, sonra «soyuq» re-build.
Checkpointing: preemption tərəqqi itkisinə səbəb olmamalıdır.
10) Streaming üçün prioritetləşdirmə
Prioritet partiyalar: Gold-topics daha çox consumer-instants.
Watermarks siniflər üzrə: Gold üçün - dar lateness pəncərələr; Bronze üçün - daha geniş (gec hadisələrə daha çox dözümlülük).
Dedup və idempotent sinks: Gold üçün - sərt; Bronze üçün - evristik.
Alertlər: Gold-alertlər artan QoS ilə ayrı bir kanal boyunca gedir.
11) Siqnallar və avtomatik prioritet dəyişikliyi
Hadisə tetikleyiciləri: trafik spike, hadisə, promosyon kampaniyası → müvəqqəti Gold/Silver.
SLA təhlükəsi: spesifik vitrin → auto-boost təravətinin pozulması proqnozu.
Data Quality: kütləvi dubllar/itkilər → repair axınlarının prioritetini artırın.
Maliyyə riski: chargeback artımı → skorinq/alertlərin prioriteti.
12) Müşahidə: nə izləmək lazımdır
Növbələr/lag: uzunluğu, gözləmə müddəti, p95/p99 sinif gecikmələri.
SLO-lövhə: qatında təzəlik/gecikmə/səhvlər (ingest → curated → marts).
Qiymət: cost per class/tenant; büdcədən kənarlaşmalar.
Preemption/nasazlıqlar: tezlik, tərəqqi itkisi, MTTR məlumat.
Prioritet aritmetikası: cari 'P', gücləndirmə səbəbləri, planlaşdırıcı həllərin tarixi.
13) Siyasətin idarə edilməsi
Siyasət-kod (policy-as-code), version və review.
Istifadə etməzdən əvvəl quru purs (dry-run): cədvəli/dəyəri necə dəyişəcək.
Canary-daxil: bəzi klasterlər yeni çəki/qaydalara keçir.
Runbooks: həddindən artıq yükləndikdə nə etmək, sinfi müvəqqəti olaraq necə azaltmaq, necə geri qaytarmaq.
14) Antipattern
«Bütün - Gold». Prioritetləşdirmə mənasını itirir; resurslar uğrunda müharibələr başlayır.
Orucdan qorunmadan ciddi SP. Silver/Bronze heç vaxt tamamlanmır.
Heç bir admission control. Sistemə «bahalı» sorğular daxil olur və hamını aşağı salırlar.
cost-aware yoxdur. «Bahalı saatlarda» ağır backfill edirik.
OLTP/OLAP qarışdırılması. Kritik əməliyyatlar analitikdən əziyyət çəkir.
RLS/CLS olmadan hibrid məlumatlar. Təmir/prioritet təsadüfən həssas sahələri açır.
15) Tətbiqi yol xəritəsi
1. Discovery: axınlar, asılılıqlar və sahibləri inventar; SLO qiymətləndirilməsi və fasilə dəyəri.
2. QoS sinifləri: Gold/Silver/Bronze, çəki və əsas limitləri müəyyən edin; policy-as-code.
3. Planlayıcı və hovuzlar: bölmək/resursları hovuzları, daxil admission control.
4. Monitorinq: SLO board/lag/dəyəri; SLO və budget-breach təhlükəsinə qarşı həyəcanlar.
5. Auto-boost: prioritet dəyişiklik siqnalları (hadisələr, kampaniyalar, DQ) inteqrasiya.
6. Cost-aware: off-peak cədvəlləri, spot resursları, «bahalı» sorğuların profilləşdirilməsi.
7. Hardening: preemption-safe kontrol nöqtələri, runbooks, kanarya siyasətçiləri, xaos testləri.
16) Buraxılışdan əvvəl çek siyahısı
- Bütün axınlar üçün QoS sinfi, sahibi, SLO və fasilə haqqı müəyyən edilmişdir.
- Xüsusi hovuzlar/klasterlər və admission control, CPU/IO/scan limitləri.
- ingest/konsumer backpressure və rate limits daxildir.
- Prioritetləşdirmə siyasəti kod kimi rəsmiləşdirilir; dry-run və review var.
- Lag, təravət, qiymət, preemption/səhvlər; on-call-da alertlər.
- siqnallar (SLA-təhdid, DQ, hadisə, kampaniya) auto-boost konfiqurasiya.
- Deqradasiya runbooks sənədləşdirilmişdir; yoxlanılmış xaos ssenariləri.
- Bronze üçün axınlar cascade gecikmələr riski olmadan off-peak/spot köçürülür.
17) Standart siyasət nümunələri (psevdo-YAML)
17. 1 sinif Gold son tarix və büdcə ilə
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) Yekun
Axınların prioritetləşdirilməsi - biznes prioritetlərinin, texniki SLO-ların və iqtisadi məhdudiyyətlərin idarə oluna bilən birləşməsidir, sistemin növbələri, planlaşdırıcıları, limitləri və rəyləri vasitəsilə həyata keçirilir. QoS sinifləri, auto-boost siqnalları və cost-aware siyasəti birlikdə işlədikdə, məlumatlar təzə və etibarlı olaraq qalır, kritik insaytlar vaxtında gəlir və infrastruktur hesabı proqnozlaşdırıla bilər.