Isolation in Cloud Storage
Isolation in Cloud Storage
Ji-Yong Shin is a postdoctoral associate at Yale University working with Prof. Mahesh Balakrishnan and Prof. Zhong Shao. He earned his Ph.D. degree in Computer Science at Cornell University under the supervision of Prof. Hakim Weatherspoon. His research focuses on designing and implementing novel storage systems, distributed systems, and networking systems. His recent work includes storage systems that achieve isolation in the cloud and a new Paxos-based software abstraction that facilitates distributed system designs. Ji-Yong was an intern at Google, Microsoft Research, and IBM Research, and recently served as a program committee member of USENIX ATC and ACM SoCC.
Due to the presence of large, heterogeneous, and concurrent user workloads and I/O requests, it is important to guarantee isolation to each user in cloud storage systems. This talk focuses on two key areas necessary for isolation: transactional isolation and fine-grained consistency control.
The first part of this talk investigates an approach for block-level transactions that support portable and compatible transactional isolation. For decades, systems have implemented transactional isolation in high layers of the storage stack to maintain consistent data states under concurrent I/O requests. However, different implementations in high layers of the stack make the support for transactional isolation redundant and transactions executed by different applications incompatible with each other. Our block-level transactional system called Isotope facilitates transactional application designs in any layer of the storage stack and enables cross-application transactions.
The second part of this talk presents a new class of storage system called StaleStore, which can trade off consistency and performance within a server using stale data. Distributed systems often provide isolated per-client views of the system by using client-centric consistency semantics to trade off consistency and performance. While cloud storage servers have tens of parallel storage devices and CPU cores — which make the server similar to a distributed system — the potential trade-off between consistency and performance within a server has never been explored. Yogurt, an instance of StaleStore, explores different versions of data and estimates the access cost for each version under client-centric consistency semantics to take advantage of the trade-off. Through Yogurt, we show that StaleStore can utilize an isolated fine-grained view of the storage system to preserve a higher performance.