[논문 리뷰] Faa$T: A Transparent Auto-Scaling Cache for Serverless Applications
Faa$T는 서버리스 함수 전용으로 설계된 투명하고 자동 스케일링되는 메모리 캐시로, 데이터 접근 패턴과 객체 크기에 기반해 캐시 공간과 I/O 대역폭을 동적으로 관리한다. 기존 캐싱 시스템과 비교해 성능을 최대 92% 향상시키고 평균 57% 향상시키며, 외부 인프라나 응용 프로그램 변경 없이 비용을 99.99% 감소시킨다.
Function-as-a-Service (FaaS) has become an increasingly popular way for users to deploy their applications without the burden of managing the underlying infrastructure. However, existing FaaS platforms rely on remote storage to maintain state, limiting the set of applications that can be run efficiently. Recent caching work for FaaS platforms has tried to address this problem, but has fallen short: it disregards the widely different characteristics of FaaS applications, does not scale the cache based on data access patterns, or requires changes to applications. To address these limitations, we present Faa\$T, a transparent auto-scaling distributed cache for serverless applications. Each application gets its own Faa\$T cache. After a function executes and the application becomes inactive, the cache is unloaded from memory with the application. Upon reloading for the next invocation, Faa\$T pre-warms the cache with objects likely to be accessed. In addition to traditional compute-based scaling, Faa\$T scales based on working set and object sizes to manage cache space and I/O bandwidth. We motivate our design with a comprehensive study of data access patterns in a large-scale commercial FaaS provider. We implement Faa\$T for the provider's production FaaS platform. Our experiments show that Faa\$T can improve performance by up to 92% (57% on average) for challenging applications, and reduce cost for most users compared to state-of-the-art caching systems, i.e. the cost of having to stand up additional serverful resources.
연구 동기 및 목표
- 기존 FaaS 캐싱 시스템이 투명하지 않거나 자동 스케일링 기능이 없거나 공유된 단일 캐시에 의존하는 한계를 해결하기 위해.
- 데이터 접근 패턴과 객체 크기에 따라 스케일링되는 애플리케이션 수준의 메모리 캐싱을 통해 서버리스 애플리케이션의 지연 시간과 비용을 줄이기 위해.
- 사용자가 캐시를 수동으로 관리하거나 외부 리소스를 프로비저닝할 필요 없이 서버리스 추상화를 유지하기 위해.
- 머신러닝 추론 및 데이터 파이프라인과 같은 상태 기반 및 데이터 집약적인 서버리스 워크로드를 위한 투명한 사전워밍과 대역폭 인식 스케일링을 통해 성능을 향상시키기 위해.
제안 방법
- 각 서버리스 함수는 자체 전용 Faa$T 캐시와 연결되며, 함수와 함께 로드되고 언로드되어 고립성과 투명성을 보장한다.
- Faa$T는 함수 재로드 시 자주 접근되는 데이터로 캐시를 사전워밍하여 콜드 스타트를 방지한다.
- 캐시 크기와 I/O 대역폭은 계산 부하와 데이터 접근 특성(작업 집합 크기, 객체 크기 포함)을 기반으로 자동 스케일링된다.
- 계산 기반 스케일링과 데이터 기반 적응 전략을 조합한 하이브리드 스케일링 전략을 사용하여 메모리와 네트워크 사용을 최적화한다.
- 응용 프로그램 수준에서 캐시 지속성 및 일관성 정책을 관리하며, 응용 프로그램 코드 변경 없이 다양한 일관성 모델을 지원한다.
- 대규모 객체 캐싱과 대역폭 인식 인스턴스 스케일링을 통해 원격 스토리지 I/O를 최소화하고 데이터 전송 지연을 최적화한다.
실험 결과
연구 질문
- RQ1사용자에게 완전히 투명하면서도 성능 향상과 비용 절감을 동시에 달성할 수 있는 서버리스 애플리케이션용 캐싱 시스템은 어떻게 설계할 수 있는가?
- RQ2매우 변동성이 큰 접근 패턴과 다양한 객체 크기를 가진 서버리스 워크로드에서 캐시 공간과 I/O 대역폭을 효과적으로 관리하기 위한 스케일링 전략은 무엇인가?
- RQ3사전워밍 기능을 갖춘 응용 프로그램 전용 캐싱이 응용 프로그램 코드 변경 없이 서버리스 함수의 지연 시간을 크게 줄일 수 있는가?
- RQ4공유 또는 단일 캐시와 비교했을 때 애플리케이션 별 캐싱은 성능, 비용, 자원 활용도 측면에서 어떻게 다른가?
- RQ5데이터 접근 패턴과 객체 특성에 기반한 자동 스케일링이 서버리스 환경에서 메모리 캐싱의 효율성을 얼마나 향상시킬 수 있는가?
주요 결과
- Faa$T는 최첨단 캐싱 시스템과 비교해 응용 프로그램 성능을 최대 92% 향상시키고 평균 57% 향상시킨다.
- 추가 서버풀 인프라가 필요한 솔루션과 비교해 비용을 99.99% 감소시킨다.
- 성능 향상은 주로 Jupyter 노트북 및 머신러닝 추론 파이프라인과 같은 데이터 집약적 워크로드에서 두드러진다.
- Faa$T는 대용량 객체(>10MB)를 효과적으로 처리하여 인스턴스 크기에 비례해 I/O 대역폭을 스케일링해 전송 지연을 줄인다.
- 응용 프로그램 사전워밍과 캐시 사전워밍의 조합으로 함수 시작 속도가 빨라지고 콜드 스타트 영향이 감소한다.
- vCPU 및 메모리 자원 증가에 따라 효율적으로 스케일링되며, 네트워크 대역폭 한계로 인해 8vCPU 인스턴스에서 포화 상태에 도달한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.