[논문 리뷰] Admission Control with Response Time Objectives for Low-latency Online Data Systems
이 논문은 저지연 시간 온라인 데이터 시스템을 위한 저비용 입국 제어 정책인 Bouncer를 제안한다. 이 정책은 대기 시간과 처리 시간을 기반으로 실시간으로 백분위수 응답 시간을 추정하여 각 쿼리의 입국 여부를 결정한다. 이는 입국된 쿼리가 SLO를 충족하거나 그에 가까이 유지함으로써, SLO 위반을 최소화하고, 각 쿼리 유형별 SLO를 지원하며, 조기 거부 기능을 제공하고, 기아 방지 전략을 포함하여 그래프 데이터베이스에서 시뮬레이션 및 실사용 평가를 통해 높은 시스템 활용도를 달성한다.
To provide quick responses to users, Internet companies rely on online data systems able to answer queries in milliseconds. These systems employ complementary overload management techniques to ensure they provide a continued, acceptable service through-out traffic surges, where 'acceptable' partly means that serviced queries meet or track closely their response time objectives. Thus, in this paper we present Bouncer, an admission control policy aimed to keep admitted queries under or near their service level objectives (SLOs) on percentile response times. It computes inexpensive estimates of percentile response times for every incoming query and compares the estimates against the objective values to decide whether to accept or reject the query. Bouncer allows assigning separate SLOs to different classes of queries in the workload, implements early rejections to let clients react promptly and to help data systems avoid doing useless work, and complements other load shedding policies that guard systems from exceeding their capacity. Moreover, we propose two starvation avoidance strategies that supplement Bouncer's basic formulation and prevent query types from receiving no service (starving). We evaluate Bouncer and its starvation-avoiding variants against other policies in simulation and on a production-grade in-memory distributed graph database. Our results show that Bouncer and its variants allow admitted queries to meet or stay close to the SLOs when the other policies do not. They also report fewer overall rejections, a small overhead, and with the given latency SLOs, they let the system reach high utilization. In addition, we observe that the proposed strategies can stop query starvation, but at the expense of a modest increase in overall rejections and causing SLO violations for serviced requests.
연구 동기 및 목표
- 트래픽 폭증 상황에서도 입국된 쿼리가 백분위수 기반 응답 시간 SLO를 충족하도록 유지하면서 저지연 시간 온라인 데이터 시스템을 운영할 수 있는 입국 제어 정책을 설계하는 것.
- 불필요한 작업을 줄이고 과부하 시 빠르게 장애 복구할 수 있도록 조기 거부 기능을 제공하는 것.
- 다양한 지연 특성을 가진 다양한 워크로드를 위해 각 쿼리 유형별 SLO를 지원하는 것.
- 중요한 쿼리 유형이 과부하 상황에서 체계적으로 서비스를 거부당하지 않도록 하는 전용 기아 방지 전략을 통해 체계적 기아를 방지하는 것.
- 실제 생산 환경에서 밀리초 수준의 요청 처리에 적합한 낮은 계산 오버헤드를 달성하는 것.
제안 방법
- Bouncer는 최근 대기 시간과 처리 시간의 저비용 근사치를 사용하여 각 도착 쿼리의 백분위수 응답 시간을 추정한다.
- 이 추정치를 대상 SLO(예: p90, p99)와 비교하여 실시간으로 입국 결정(수락 또는 거부)을 내린다.
- 지연 특성을 추적하기 위해 비중복 슬라이딩 윈도우 방식으로 각 쿼리 유형의 처리 시간 히스토그램을 갱신한다.
- 기아 방지 전략으로 두 가지 기법인 수락 허용과 낙오된 쿼리 지원을 구현하여, 서비스가 부족한 쿼리 유형이 적절히 처리되도록 동적으로 입국 임계치를 조정한다.
- 로드 밸런싱 및 자원 스케줄링과 같은 다른 과부하 관리 기법과 함께 작동하도록 설계되어 있다.
- 저수준 시스템 지식이나 모델 재학습이 필요 없고, 블랙박스 방식으로 동작하여 다이나믹한 쿼리 워크로드를 가진 실사용 환경에 적합하다.
실험 결과
연구 질문
- RQ1복잡한 모델이나 높은 오버헤드에 의존하지 않고도, 높고 변동성이 큰 트래픽 부하 상황에서도 백분위수 기반 SLO를 유지할 수 있는가?
- RQ2기존 정책과 비교해 볼 때 Bouncer는 입국된 쿼리가 SLO에 가까이 유지되도록 하면서도 전체적으로 거부 수를 줄이는 데 얼마나 효과적인가?
- RQ3Bouncer의 기아 방지 메커니즘은 일부 쿼리 유형이 체계적으로 서비스를 거부당하는 것을 방지할 수 있는가, 동시에 SLO 위반 증가율이 상당히 증가하는가?
- RQ4밀리초 수준의 워크로드에서 실시간으로 요청 단위로 입국 결정을 내리는 데 있어 Bouncer의 성능 오버헤드는 얼마나 되는가?
- RQ5시뮬레이션 및 실사용 수준의 시스템에서 평가했을 때 Bouncer는 활용도와 SLO 준수 측면에서 어떻게 확장 가능한가?
주요 결과
- Bouncer와 그 기아 방지 기능을 가진 변종은 다른 정책이 실패하는 상황에서도 입국된 쿼리가 SLO를 충족하거나 그에 가까이 유지할 수 있다.
- 기본 정책 대비 전체 거부 수가 줄어들었고, 특히 과부하 상황에서 높은 활용도를 달성했다.
- Bouncer는 최소한의 오버헤드를 유발하여 밀리초 수준의 시스템에서 실시간 요청 단위 입국 결정에 적합하다.
- 기아 방지 전략은 특정 쿼리 유형이 체계적으로 서비스를 거부당하는 것을 성공적으로 방지했지만, 일부 요청에 대해 SLO 위반 증가율이 약간 증가했다.
- 기아 방지 변종에서 관측된 SLO 위반 횟수는 실무적으로 수용 가능하다고 판단되어 공정성과 지연 준수 사이의 타협이 타당하다는 결론을 내릴 수 있었다.
- LinkedIn의 LIquid 그래프 데이터베이스에서의 평가를 통해 Bouncer가 실사용 환경에서 효과적임을 확인했으며, 일관된 SLO 준수와 낮은 운영 비용을 기록했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.