Nightcore: efficient and scalable serverless computing for latency-sensitive, interactive microservices

Nightcore: efficient and scalable serverless computing for latency-sensitive, interactive microservices
复制标题

DOI:
10.1145/3445814.3446701
复制
发表时间:
2021-04
期刊:
Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
Zhipeng Jia;Emmett Witchel
Zhipeng Jia;Emmett Witchel
中科院分区:
其他
文献类型:
--
作者:
Zhipeng Jia;Emmett Witchel

文献摘要

被引文献

相似文献

微服务体系结构是一种流行的软件工程方法但是,作为容器化的RPC服务器的替代方案,当前的无服务器平台具有毫秒尺度的运行时开销,使它们无法满足现有的互动微服务所需的严格的子毫秒延迟目标。微秒尺度的开销提供了基于容器的隔离功能。用C/C ++,GO,Node.js和Python编写的功能表明,在运行延迟敏感的交互式微服务时,Nightcore的功能可实现1.36×–2.93×较高的吞吐量,并且尾部延迟减少了69%。
The microservice architecture is a popular software engineering approach for building flexible, large-scale online services. Serverless functions, or function as a service (FaaS), provide a simple programming model of stateless functions which are a natural substrate for implementing the stateless RPC handlers of microservices, as an alternative to containerized RPC servers. However, current serverless platforms have millisecond-scale runtime overheads, making them unable to meet the strict sub-millisecond latency targets required by existing interactive microservices. We present Nightcore, a serverless function runtime with microsecond-scale overheads that provides container-based isolation between functions. Nightcore’s design carefully considers various factors having microsecond-scale overheads, including scheduling of function requests, communication primitives, threading models for I/O, and concurrent function executions. Nightcore currently supports serverless functions written in C/C++, Go, Node.js, and Python. Our evaluation shows that when running latency-sensitive interactive microservices, Nightcore achieves 1.36×–2.93× higher throughput and up to 69% reduction in tail latency.