스레드 우선 순위
1) 우선 순위가 필요한 이유
하중이 증가함에 따라 "모든 것이 중요합니다" 는 "우리는 아무것도 할 시간이 없습니다. "스레드 우선 순위는 스레드/작업/테넌트간에 제한된 리소스 (CPU, I/O, 네트워크, 예산) 를 할당하여 중요한 SLO를 수행하고 비용을 제어하는 시스템 방법입니다. 결과적으로 예측 가능한 창 신선도, 문제없는 경고 및 안정적인 재 계산 창이 있습니다.
2) 유량 분류 및 중요 기준
분류 축:- 시간: 실시간/실시간 (초), 대화식 (분), 오프라인/배치 (시간).
- 비판: 금융/규제, 사고, 제품, 연구.
- 의존성: 다른 상점 (업스트림) 대 다운 스트림의 출처.
- 다운 타임 비용: 분당/시간 지연 손상 (SLO 위반 비용).
- 테넌시: 내부 팀, 파트너, 외부 고객.
실습: 각 클래스 - BP (Business Priority) 및 TP (Technical Priority); 총 - 복합 우선 순위 'P = w1BP + w2TP + w3CostRisk'.
3) 흐름을위한 SLA/SLO/SI 모델
SLA: 계약 보증 (예: "금융 쇼케이스 T + 15 분, 99. 9%»).
SLO: 엔지니어링 목표 (p95 신선도 약 10 분; p99 지연
SI (Satural Index): 현재로드 대 한계의 비율; 스케줄러에서 사용합니다.
가드 레일: 가드 레일 지표 (예: 검증 오류, 누락) 은 수리 흐름의 우선 순위를 일시적으로 증가시킬 수 있습니다.
4) 서비스 클래스 (QoS) 및 정책
금 (비즈니스 크리티컬): 지불, 사기 방지, 규제 보고서, 사건 경고.
은 (제품 크리티컬): 관리 대시 보드, 캠페인, 위험 점수를위한 쇼케이스.
청동 (최선의 노력): 연구 배치, 긴 재건 및 넓은 창문 보충.
- 엄격한 우선 순위 (SP): 금은 항상 앞서 있습니다. 더 낮은 기아의 위험.
- WFQ (Weighted Fair Queuing): 교통/직업, 공정성 제어 무게.
- DRR (Deficit Round-Robin): 네트워크/스트리밍 호스트에 적합한 부분 처리 할당량.
- 마감일 인식: 마감일이있는 작업이 향상됩니다.
- 비용 인식: "비싼 시간" 및 SLO가 허용되는 경우 재 계산이 지연됩니다.
5) 스케줄러 및 대기열 (레벨)
수신/수준 (이벤트 버스):- 주제/대기열은 QoS 클래스로 나뉩니다. 생산자 제한; 할당량을 통한 역압.
- 버스트 (토큰 버킷) 에 대한 정책 속도 제한 + 버스트 토큰.
- 클래스 별 리소스 풀/클러스터: 금에 대한 별도의 집행자.
- 선점: 적자시 최저 자원 선택 (빈도 제한 포함).
- 입학 제어: 예산 및 SLO 별 입력 필터; 창없이 "고가의" 작업 거부.
- 경쟁적인 I/O 및 우선 요청 대기열.
- 재료보기: 금-증분, 은-주기적, 청동-예약/야간 창.
6) 역압, 한계 및 시스템 보호
역압 신호: 소비자에서 생산자까지 (지연/대기 시간/대기열 깊이).
요청/작업 제한: 바이트 스캔, 행 반환, 벽 시간 캡.
회로 차단기: 과부하 상태-단순화 된 장치로의 열화 또는 "따뜻한" 스냅 샷.
창고 하중: 중요한 것을 구출하기 위해 최선의 노력을 재설정/트리밍합니다.
7) 멀티 테넌시 및 "정의"
세입자를위한 쿼타: CPU/IO/시간 단위당 비용.
쿼리 클래스의 가중치: 분석, 보고서, ML 기능-다른 한계.
예산 봉투: 주간/월간 천장; 소진되면-우선 순위를 낮추고 피크를 벗어난 상태로 이동합니다.
8) 비용과 "우선 순위 경제"
신선도 비용: 신선도를 향상시키는 데 1 분이 소요됩니다.
비용 인식 계획: 청동은 피크가 아닌 곳으로 이동합니다. 백필 - "저렴한 시간".
스팟/선점 가능: 우선 순위가 낮은 경우 선점 가능한 리소스 사용.
쿼리 프로파일 링: "고가의" 템플릿의 블랙리스트; 자동 재 작성.
9) 배치 우선 순위
창 달력: 은/청동 전에 금의 창을 수정합니다.
의존성 인식 DAG: 업스트림 골드 모델은 캐스케이드를 잠금 해제하기위한 초기 슬롯을 얻습니다.
증분 우선: 첫 번째 증분 당사자, "차가운" 재건.
체크 포인팅-선점이 진행 상황을 잃지 않도록합니다.
10) 스트리밍 우선 순위
우선 순위 당사자: 금 주제에 대한 더 많은 소비자 인스
수업 별 워터 마크: 금-좁은 지연 시간 창; 청동의 경우-더 넓음 (늦은 사건에 대한 더 높은 내성).
Dedup 및 demempotent 싱크: 골드 용-엄격한; 청동-휴리스틱.
경고: 금 경고는 QoS가 증가한 별도의 채널을 통과합니다.
11) 신호 및 자동 우선 순위 변경
이벤트 트리거: 스파이크 트래픽, 사고, 프로모션 캠페인 → 임시 골드/실버 부스트.
SLA 위협: 신선도 분석 예측 → 특정 쇼케이스의 자동 부스트.
데이터 품질: 질량 복식/손실 → 수리 스트림의 우선 순위를 높입니다.
재무 위험: 요금 인상 → 점수/경고 우선 순위.
12) 관찰 가능성: 모니터링 대상
대기열/지연: 길이, 대기 시간, 수업 별 p95/p99 지연.
SLO 보드: 레이어 당 신선도/대기 시간/오류 (가장 선별 된 → 선별 → 마트).
비용: 클래스/테넌트 당 비용; 예산과의 편차.
선점: 빈도, 진행 상실, 데이터 MTTR.
우선 순위 부정맥: 현재 'P', 부스트 이유, 스케줄러 결정의 이력.
13) 정책 관리
설정 코드 (코드 정책), 버전 지정 및 검토 정책.
신청 전에 건조 실행: 일정/비용 변경 방법.
카나리아 포함: 클러스터의 일부가 새로운 가중치/규칙으로 이동합니다.
런북: 과부하 상태에서해야 할 일, 수업을 일시적으로 낮추는 방법, 반환 방법.
14) 안티 패턴
"모든 것이 금입니다. "우선 순위는 그 의미를 잃는다. 자원 전쟁이 시작됩니다.
금식 보호없이 엄격한 SP. 실버/브론즈는 결코 완료되지 않습니
입학 통제가 없습니다. "비싼" 요청이 시스템에 들어가서 모든 사람을 떨어 뜨립니다.
비용 인식 부족. 우리는 "비싼 시간" 에 무거운 백필을 수행합니다.
OLTP/OLAP 믹스. 중요한 거래는 분석으로 어려움을 겪습니다
RLS/CLS가없는 하이브리드 데이터. 수리/우선 순위는 실수로 민감한 필드를 노출시
15) 구현 로드맵
1. 발견: 스레드, 종속성 및 소유자 목록; SLO 및 다운 타임 비용 평가.
2. QoS 클래스: 금/은/청동, 무게 및 기본 제한을 정의하십시오. 코드 정책을 만듭니다.
3. 스케줄러 및 풀: 분할 클러스터/리소스 풀, 입장 제어 가능.
4. 모니터링: SLO 보드/지연/비용; SLO의 위협 및 예산 위반에 대한 경고.
5. 자동 부스트: 신호 (사고, 캠페인, DQ) 를 우선 순위 변경으로 통합합니다.
6. 비용 인식: 피크가 아닌 일정, 스팟 리소스, "고가의" 요청 프로파일 링.
7. 강화: 선점 안전 검문소, 런북, 카나리아 정책, 혼돈 테스트.
16) 시험판 점검표
- QoS 클래스, 소유자, SLO 및 다운 타임 비용은 모든 흐름에 대해 정의됩니다.
- 수영장/클러스터 및 입장 제어, CPU/IO/스캔 제한.
- 섭취/소비자에 대한 역압 및 요율 제한이 활성화됩니다.
- 우선 순위 정책은 코드로 설계되었습니다. 드라이 런과 리뷰가 있습니다.
- 래그, 신선도, 비용, 선점/오류가 모니터링됩니다. 통화 중 경고.
- 신호에 대한 자동 부스트 (SLA 위협, DQ, 사고, 캠페인).
- 문서화 된 열화 런북; 혼돈 시나리오를 확인했습니다.
- 청동의 경우 계단식 지연의 위험없이 스트림이 피크를 벗어난/스팟으로 마이그레이션됩니다.
17) 샘플 정책 (의사 -YAML)
17. 마감일과 예산이있는 골드 클래스 1 개
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 비용 인식 백필
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 클래스, 자동 부스트 신호 및 비용 인식 정책이 함께 작동 할 때 데이터는 신선하고 신뢰할 수 있으며 중요한 통찰력이 제 시간에 도달하며 인프라 청구가 예측 가능합니다.