TY - CONF
T1 - Beyond storage APIs
T2 - 15th Workshop on Hot Topics in Operating Systems, HotOS 2015
AU - Alagappan, Ramnatthan
AU - Chidambaram, Vijay
AU - Pillai, Thanumalayan Sankaranarayana
AU - Albarghouthi, Aws
AU - Arpaci-Dusseau, Andrea C.
AU - Arpaci-Dusseau, Remzi H.
N1 - Funding Information:
We thank the anonymous reviewers and ADSL lab members for their insightful comments and feedback. This material is based upon work supported by the NSF grants CNS-1421033, CNS-1319405, and CNS-1218405 as well as generous donations from Cisco, EMC, Face-book, Google, Huawei, IBM, Microsoft, NetApp, Sam-sung, Seagate, and VMWare. Vijay Chidambaram is supported by a Microsoft Research PhD Fellowship. Any opinions, findings, and conclusions, or recommendations expressed herein are those of the authors and do not necessarily reflect the views of the NSF or other institutions.
Funding Information:
We thank the anonymous reviewers and ADSL lab members for their insightful comments and feedback. This material is based upon work supported by the NSF grants CNS-1421033, CNS-1319405, and CNS-1218405 as well as generous donations from Cisco, EMC, Face-book, Google, Huawei, IBM, Microsoft, NetApp, Samsung, Seagate, and VMWare. Vijay Chidambaram is supported by a Microsoft Research PhD Fellowship. Any opinions, findings, and conclusions, or recommendations expressed herein are those of the authors and do not necessarily reflect the views of the NSF or other institutions.
Publisher Copyright:
© HotOS 2015.
PY - 2015
Y1 - 2015
N2 - Applications are deployed upon deep, diverse storage stacks that are constructed on-demand. Although many storage stacks share a common API to allow portability, application behavior differs in subtle ways depending upon unspecified properties of the underlying storage stack. Currently, there is no way to test whether an application will behave correctly on a given storage stack: corruption or data loss could occur at any point in the application lifetime. We argue that we require an expressive language for specifying the complex storage guarantees required by different applications. The same language can be used to write a high-level specification capturing the design of different storage-stack layers. Given the required guarantees, and the storage-stack specifications, we can prove that stacks constructed dynamically (by composing different storage-stack layers) provide the guarantees required by the application.
AB - Applications are deployed upon deep, diverse storage stacks that are constructed on-demand. Although many storage stacks share a common API to allow portability, application behavior differs in subtle ways depending upon unspecified properties of the underlying storage stack. Currently, there is no way to test whether an application will behave correctly on a given storage stack: corruption or data loss could occur at any point in the application lifetime. We argue that we require an expressive language for specifying the complex storage guarantees required by different applications. The same language can be used to write a high-level specification capturing the design of different storage-stack layers. Given the required guarantees, and the storage-stack specifications, we can prove that stacks constructed dynamically (by composing different storage-stack layers) provide the guarantees required by the application.
UR - http://www.scopus.com/inward/record.url?scp=85033216983&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85033216983&partnerID=8YFLogxK
M3 - Paper
AN - SCOPUS:85033216983
Y2 - 18 May 2015 through 20 May 2015
ER -