Splinter: Bare-Metal Extensions for Multi-Tenant Low-Latency Storage

Splinter: Bare-Metal Extensions for Multi-Tenant Low-Latency Storage
复制标题

DOI:
--
复制
发表时间:
2018-10
期刊:
--
影响因子:
--
通讯作者:
C. Kulkarni;S. Moore;Mazhar Naqvi;Tian Zhang;R. Ricci;Ryan Stutsman
C. Kulkarni;S. Moore;Mazhar Naqvi;Tian Zhang;R. Ricci;Ryan Stutsman
中科院分区:
其他
文献类型:
--
作者:
C. Kulkarni;S. Moore;Mazhar Naqvi;Tian Zhang;R. Ricci;Ryan Stutsman

文献摘要

被引文献

相似文献

使用内核旁路网络的内存中键值存储每秒为每台机器提供数百万次操作,延迟为几微秒。它们的速度很快,部分原因是它们简单,但它们简单的界面迫使应用程序在网络上移动数据。这对于聚合大量数据的操作效率很低,并且在遍历复杂数据结构时会导致延迟。理想情况下,应用程序可以将小函数推送到存储,以避免往返和数据移动;然而,将代码推送到这些快速系统是具有挑战性的。解释或隔离代码的任何额外复杂性都会降低它们的延迟和吞吐量优势。我们介绍了Splint,这是一个低延迟的键值存储,客户端通过将代码推送到它来扩展它。Splint是为现代多租户数据中心设计的;它允许相互不信任的租户编写自己的细粒度扩展,并在运行时将其推送到商店。Splint设计的核心依赖于类型和内存安全的扩展代码,以避免传统的硬件隔离成本。这仍然允许裸机执行,避免跨信任边界复制数据,并使执行不到一微秒计算的精细存储功能变得实用。我们的测试表明,在每台服务器租户超过1,000个的情况下,Splint每秒可以处理350万次远程扩展调用,往返延迟中值不到9微米S。我们提供了一个Facebook的TAO的实现,作为一个800行扩展,当推送到拆分服务器时,性能提高了400Kop/S,在30µS远程访问次数下,对在线图形数据执行3.2MOP/S。
In-memory key-value stores that use kernel-bypass networking serve millions of operations per second per machine with microseconds of latency. They are fast in part because they are simple, but their simple interfaces force applications to move data across the network. This is inefficient for operations that aggregate over large amounts of data, and it causes delays when traversing complex data structures. Ideally, applications could push small functions to storage to avoid round trips and data movement; however, pushing code to these fast systems is challenging. Any extra complexity for interpreting or isolating code cuts into their latency and throughput benefits. We present Splinter, a low-latency key-value store that clients extend by pushing code to it. Splinter is designed for modern multi-tenant data centers; it allows mutually distrusting tenants to write their own fine-grained extensions and push them to the store at runtime. The core of Splinter's design relies on type- and memory-safe extension code to avoid conventional hardware isolation costs. This still allows for bare-metal execution, avoids data copying across trust boundaries, and makes granular storage functions that perform less than a microsecond of compute practical. Our measurements show that Splinter can process 3.5 million remote extension invocations per second with a median round-trip latency of less than 9 µs at densities of more than 1,000 tenants per server. We provide an implementation of Facebook's TAO as an 800 line extension that, when pushed to a Splinter server, improves performance by 400 Kop/s to perform 3.2 Mop/s over online graph data with 30 µs remote access times.