ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 늦은 두번째 트리노 밋업 참여 후기
    log 2023. 12. 4. 22:13

    세션만 달라지고 장고나 제공해주는 티셔츠, 음식 등은 지난번과 비슷했다. 두번째 세션까지 sk에서 주로 세션도 준비하고 했지만 다음번 세션부터는 다른 다양한 회사들이나 참여자들을 기다린다고 하니 다음번 세션이 좀더 기대된다. 사실 첫번째 세션이 좀더 원론적이고 좀더 미래지향적인 내용들이 많았어서 개인적으로 세션은 첫번째 세션이 더 마음에 들었다.

    Trino를 위한 실시간 Kappa 아키텍처

    트리노 소개

    • 페더레이트를 통해 이종디비간 연산
    • 분산 쿼리 엔진으로써 대용량 데이터 쿼리 효율적 처리

    실시간 Kappa 아키텍처

    • 람다 아키텍처는 코드 중복과 시스템 복잡도 증가 하지만 카파 아키텍처는 코드 중복 제거와 복잡도 감소
    • 목표
      • 데이터 정합성
      • 낮은 지연 시간
      • 높은 처리량
      • 대용량 데이터 쿼리 지원
    • 이벤트를 트리노 카프카 커넥터를 통해 읽음→한계가 있음 낮은 저장 효율로 장기 데이터 저장소로 활용하기 힘듬
    • 카프카 티어드 스토리지를 통해 낮은 저장 효율 완화→하지만 제한적인 predicate push down으로 낮은 조회 성능으로 한계가 있음
    • 실시간 처리 엔진을 통해 쓴 테이블 포맷을 트리노가 읽도록 하는 것으로 문제 해결
    • 실시간 처리 엔진 목표
      • 데이터 정합성
      • 낮은 지연 시간
      • 높은 처리량

    • 스파크 스트리밍 vs 플링크
      • Exactly Once 보장
      • 높은 지연시간 v.s 낮은 지연시간
    • 벤치마크상 플링크가 낮은 지연시간을 보임
    • 체크포인트
      • 특정 시점의 실시간 어플리케이션의 상태
      • 장애 복구 시 마지막 체크포인트 사용
      • 체크포인트 주기마다 커밋→체크포인트 주기→지연 시간 비례
    • 체크포인트 딜레마를 해소하기 위해서 트랜잭션 테이블 포맷이 필요함→아이스버그, 후디, 델타레이크→아이스버그 선택
    • z-value
      • 정렬 대상 필드를 사전 순서 이진 표현으로 변환 후 변환된 이진 표현을 interleaving한 값
    • 계층 구조의 데이터 쿼리→sort
    • 여러필드가 복합적으로 유사한 데이터 쿼리→z-Order

    읽기 성능 극대화

    • 데이터 양을 줄이는 대신 읽기 성능을 극대화하는 경우
    • RediSearch Connector를 통해서 트리노에서 테이블 형태로 ㅂ임
    • 하이브쿼리 대비 157~만이천배 성능 차이

    Trino 속 Online aggregation

    online aggregation이란?

    • 어그리게이션이란 여러 행의 값을 입력 받아 하나의 결과값을 출력하는 함수
      • count, sum, max …
    • 데이터 증가하면 속도가 느려지는 문제가 있음
    • 메모리 부족, 디스크I/o, 네트워크 대역폭 부족 등 다양한 원인
    • 이런 문제들을 해결하기위해서 등장한 온라인 어그리게이션→데이터를 실시간으로 처리하면서 중간결과를 저장하여 복잡한 집계연산을 효율적으로 수행하는 기술

    online aggregation의 예

    • 평균구하는 예

    Trino 속 online aggreation

    • 각 워커의 State들이 하나의 워커에 모여 combine. out이라는 값이 코디네이터에 전달되어 return
    • 분산 병렬 연산
    • 실시간으로 처리, 중간결과를 저장, 분산 병렬 연산

    Non-disruptive update Trino cluster

    • 업데이트하기 두렵다…트리노에서 지원해주지 않는다…
    • Lyft/Presto gateway
      • zero downtime은 불가능하고, 특정 BI에 연결된 presto만 자원을 사용함
      • 차라리 proxy load balancing router를 직접 만들어서 처리하자해서 만듦
    • nextUri가 없다면 통신 반복 종료
    • canary deployment
      • Worker level graceful shutdown 진행
    • 쿠버네티스를 사용하고 있다고 하셨는데 쿠버네티스에서 블루-그린 디플로이먼트를 제공하는데 사용하지 않은 이유? 아까설명한 자원문제때문인지→기존 쿼리를 실행한 사용자가 실패하기 때문에 중단없이 배포하고 싶었음

    댓글

Copyright 2023. 은유 All rights reserved.