[논문 리뷰] Apiary: A DBMS-Integrated Transactional Function-as-a-Service Framework
Apiary는 분산 데이터베이스 엔진 내부에서 함수 실행과 데이터 관리를 함께 구현하는 DBMS 통합 서버리스 프레임워크를 소개한다. 기존 FaaS와는 달리 함수와 데이터 저장소를 물리적·논리적으로 분리하지 않아 성능과 일관성 오버헤드를 제거하며, DBMS를 함수, 데이터, 로깅을 위한 통합 런타임으로 활용한다. 이로 인해 통신 지연을 줄이고 종단 간 트랜잭셔널 보장을 제공하는 효율적이고 장애에 강한 함수 조합을 가능하게 하여, 마이크로서비스 워크로드에서 기존 FaaS 플랫폼 대비 2–68배 성능 향상을 달성한다.
Developers increasingly use function-as-a-service (FaaS) platforms for data-centric applications that perform low-latency and transactional operations on data, such as for microservices or web serving. Unfortunately, existing FaaS platforms support these applications poorly because they physically and logically separate application logic, executed in cloud functions, from data management, done in interactive transactions accessing remote storage. Physical separation harms performance while logical separation complicates efficiently providing transactional guarantees and fault tolerance. This paper introduces Apiary, a novel DBMS-integrated FaaS platform for deploying and composing fault-tolerant transactional functions. Apiary physically co-locates and logically integrates function execution and data management by wrapping a distributed DBMS engine and using it as a unified runtime for function execution, data management, and operational logging, thus providing similar or stronger transactional guarantees as comparable systems while greatly improving performance and observability. To allow developers to write complex stateful programs, we leverage this integration to enable efficient and fault-tolerant function composition, building a frontend for orchestrating workflows of functions with the guarantees that each workflow runs to completion and each function in a workflow executes exactly once. We evaluate Apiary against research and production FaaS platforms and show it outperforms them by 2--68x on microservice workloads by reducing communication overhead.
연구 동기 및 목표
- 기존 FaaS 플랫폼이 애플리케이션 로직과 데이터 관리를 분리함으로써 발생하는 성능 및 일관성 한계를 해결하기 위해.
- 기존 FaaS에서 함수와 데이터 스토어 간 물리적·논리적 분리로 인한 통신 및 조율 오버헤드를 제거하기 위해.
- 서버리스 실행 모델 내에서 정확히 한 번만 실행되며 워크플로우가 원자적으로 구성되는 강력한 트랜잭셔널 보장을 제공하기 위해.
- 저지연 및 고스루풋을 유지하면서도 상태 기반 함수의 효율적이고 장애에 강한 조합을 가능하게 하기 위해.
- 함수 실행, 데이터 관리, 운영 로깅을 하나의 DBMS 런타임으로 통합하여 관찰 가능성과 시스템의 일관성을 향상시키기 위해.
제안 방법
- Apiary는 분산 DBMS 엔진을 핵심 런타임으로 통합하여, 함수 실행, 데이터 관리, 운영 로깅을 하나의 일관된 시스템에서 수행한다.
- DBMS의 ACID 성질과 내부 로깅 메커니즘을 활용해 서버리스 함수의 트랜잭셔널 실행을 네이티브로 지원하며, 정확히 한 번만 실행되는 의미 체계를 제공한다.
- 함수 조합은 워크플로우 프론트엔드를 통해 구현되며, 이는 각 함수가 정확히 한 번만 실행되고 전체 워크플로우가 원자적으로 커밋되도록 보장한다.
- 시스템은 DBMS와 동일한 물리적 노드에서 함수 실행과 데이터 액세스를 공유함으로써 네트워크 I/O와 지연을 최소화한다.
- MVCC와 로깅 인fra를 활용해 외부 조율 없이도 장애 내성과 크래시 일관성을 제공한다.
- 함수 상태와 중간 결과를 직접 DBMS에 영구 저장함으로써 외부 스토리지 접근을 줄여 상태 기반 계산을 효율적으로 수행한다.
실험 결과
연구 질문
- RQ1함수를 데이터 스토리지에서 분리하는 기존 FaaS 플랫폼이 겪는 성능 및 일관성 병목 현상을 DBMS 네이티브 실행 모델이 제거할 수 있는가?
- RQ2서버리스 환경에서 정확히 한 번만 실행되며 워크플로우가 원자적으로 구성되는 강력한 트랜잭셔널 보장을 효율적으로 구현할 수 있는가?
- RQ3통합된 DBMS 런타임이 상태 기반 트랜잭셔널 마이크로서비스에서 통신 오버헤드를 줄이고 성능을 향상시킬 수 있는 정도는 어느 정도인가?
- RQ4함수 실행, 데이터 관리, 로깅을 하나의 DBMS 엔진 내부에 통합함으로써 관찰 가능성과 장애 내성은 어느 정도 향상될 수 있는가?
- RQ5분산 데이터베이스 시스템에서 함수 실행을 데이터 스토리지와 함께 공유함으로써 달성할 수 있는 성능 및 확장성 향상 수준은 무엇인가?
주요 결과
- Apiary는 마이크로서비스 워크로드에서 기존 연구 및 생산용 FaaS 플랫폼 대비 2–68배 빠른 성능을 달성했으며, 구성 요소 간 통신을 최소화하고 메모리 기반 데이터 액세스를 활용했다.
- 함수 실행과 데이터 스토리지의 공유로 인해 네트워크 라운드트립을 제거함으로써 종단 간 지연을 줄였다.
- Apiary는 워크플로우 내 모든 함수에 대해 정확히 한 번만 실행되는 의미 체계를 보장하며, 다중 함수 호출 간 원자적 커밋 보장을 제공한다.
- DBMS 통합을 통해 네이티브 로깅과 MVCC 메커니즘을 활용해 효율적인 장애 내성과 크래시 복구를 실현했다.
- DBMS 내부에서 통합된 로깅과 트랜잭션 추적 기능 덕분에 관찰 가능성 수준이 크게 향상되어 디버깅과 모니터링이 간편해졌다.
- 복잡한 상태 기반 워크플로우를 최소한의 성능 저하로 지원하며, 실제 운영 환경과 유사한 워크로드에서 뛰어난 확장성과 일관성을 입증했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.