TY - GEN
T1 - Narrowing the Gap between Serverless and its State with Storage Functions
AU - Zhang, Tian
AU - Xie, Dong
AU - Li, Feifei
AU - Stutsman, Ryan
N1 - Funding Information:
Thanks to our anonymous reviewers and to our shepherd, Tim Harris, whose feedback helped improve this work. This material is based upon work supported by the National Science Foundation under Grant Nos. CNS-1750558, CNS-1566175, III-1816149, and III-1619287. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. This work was also supported in part by Facebook and VMware.
Publisher Copyright:
© 2019 Owner/Author.
PY - 2019/11/20
Y1 - 2019/11/20
N2 - Serverless computing has gained attention due to its fine-grained provisioning, large-scale multi-Tenancy, and on-demand scaling. However, it also forces applications to externalize state in remote storage, adding substantial overheads. To fix this "data shipping problem"we built Shredder, a low-latency multi-Tenant cloud store that allows small units of computation to be performed directly within storage nodes. Storage tenants provide Shredder with JavaScript functions (or WebAssembly programs), which can interact directly with data without moving them over the network. The key challenge in Shredder is safely isolating thousands of tenant storage functions while minimizing data interaction costs. Shredder uses a unique approach where its data store and networking paths are implemented in native code to ensure performance, while isolated tenant functions interact with data using a V8-specific intermediate representation that avoids expensive cross-protection-domain calls and data copying. As a result, Shredder can execute 4 million remotely-invoked tenant functions per second spread over thousands of tenants with median and 99th-percentile response latencies of less than 50 µs and 500 µs, respectively. Our evaluation shows that Shredder achieves a 14% to 78% speedup against conventional remote storage when fetching items with just one to three data dependencies between them. We also demonstrate Shredder's effectiveness in accelerating data-intensive applications, including a k-hop query on social graphs that shows orders of magnitude gain.
AB - Serverless computing has gained attention due to its fine-grained provisioning, large-scale multi-Tenancy, and on-demand scaling. However, it also forces applications to externalize state in remote storage, adding substantial overheads. To fix this "data shipping problem"we built Shredder, a low-latency multi-Tenant cloud store that allows small units of computation to be performed directly within storage nodes. Storage tenants provide Shredder with JavaScript functions (or WebAssembly programs), which can interact directly with data without moving them over the network. The key challenge in Shredder is safely isolating thousands of tenant storage functions while minimizing data interaction costs. Shredder uses a unique approach where its data store and networking paths are implemented in native code to ensure performance, while isolated tenant functions interact with data using a V8-specific intermediate representation that avoids expensive cross-protection-domain calls and data copying. As a result, Shredder can execute 4 million remotely-invoked tenant functions per second spread over thousands of tenants with median and 99th-percentile response latencies of less than 50 µs and 500 µs, respectively. Our evaluation shows that Shredder achieves a 14% to 78% speedup against conventional remote storage when fetching items with just one to three data dependencies between them. We also demonstrate Shredder's effectiveness in accelerating data-intensive applications, including a k-hop query on social graphs that shows orders of magnitude gain.
UR - http://www.scopus.com/inward/record.url?scp=85090506802&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85090506802&partnerID=8YFLogxK
U2 - 10.1145/3357223.3362723
DO - 10.1145/3357223.3362723
M3 - Conference contribution
AN - SCOPUS:85090506802
T3 - SoCC 2019 - Proceedings of the ACM Symposium on Cloud Computing
SP - 1
EP - 12
BT - SoCC 2019 - Proceedings of the ACM Symposium on Cloud Computing
PB - Association for Computing Machinery
T2 - 10th ACM Symposium on Cloud Computing, SoCC 2019
Y2 - 20 November 2019 through 23 November 2019
ER -