BuddyCache: high-performance object storage for collaborative strong-consistency applications in a WAN

Collaborative applications provide a shared work environment for groups of networked clients collaborating on a common task. They require strong consistency for shared persistent data and efficient access to fine-grained objects. These properties are difficult to provide in wide area networks because of high network latency.BuddyCache is a new transactional caching approach that improves the latency of access to shared persistent objects for collaborative strong-consistency applications in high-latency network environments. The challenge is to improve performance while providing the correctness and availability properties of a transactional caching protocol in the presence of node failures and slow peers.We have implemented a BuddyCache prototype and evaluated its performance. Analytical results, confirmed by measurements of the BuddyCache prototype using the multi-user 007 benchmark indicate that for typical Internet latencies, e.g. ranging from 40 to 80 milliseconds round trip time to the storage server, peers using BuddyCache can reduce by up to 50% the latency of access to shared objects compared to accessing the remote servers directly.

[1]  Mary Baker Fast crash recovery in distributed file systems , 1994 .

[2]  Michael Dahlin,et al.  Cooperative caching: using remote client memory to improve file system performance , 1994, OSDI '94.

[3]  Peter B. Danzig,et al.  A Hierarchical Internet Object Cache , 1996, USENIX Annual Technical Conference.

[4]  Syam Gadde,et al.  Directory Structures for Scalable Internet Caches , 1997 .

[5]  Chengjie Liu,et al.  Maintaining Strong Cache Consistency in the World Wide Web , 1998, IEEE Trans. Computers.

[6]  Li Fan,et al.  Summary cache: a scalable wide-area web cache sharing protocol , 2000, TNET.

[7]  David R. Cheriton,et al.  Scalable Web Caching of Frequently Updated Objects Using Reliable Multicast , 1999, USENIX Symposium on Internet Technologies and Systems.

[8]  Miguel Castro,et al.  Providing Persistent Objects in Distributed Systems , 1999, ECOOP.

[9]  Anna R. Karlin,et al.  Implementing global memory management in a workstation cluster , 1995, SOSP.

[10]  Chengjie Liu,et al.  Maintaining strong cache consistency in the World-Wide Web , 1997, Proceedings of 17th International Conference on Distributed Computing Systems.

[11]  Dinesh C. Verma,et al.  ALMI: An Application Level Multicast Infrastructure , 2001, USITS.

[12]  Michael Dahlin,et al.  Volume Leases for Consistency in Large-Scale Systems , 1999, IEEE Trans. Knowl. Data Eng..

[13]  Sanjay Ghemawat,et al.  The Modified Object Buffer: A Storage Management Technique for Object-Oriented Databases , 1995 .

[14]  Syam Gadde,et al.  Not all Hits are Created Equal: Cooperative Proxy Caching Over a Wide-Area Network , 1998, Comput. Networks.

[15]  Michael J. Carey,et al.  Adaptive, fine-grained sharing in a client-server OODBMS: a callback-based approach , 1997, TODS.

[16]  Liuba Shrira,et al.  Opportunistic log: efficient installation reads in a reliable storage server , 1994, OSDI '94.

[17]  Alan L. Cox,et al.  Combining compile-time and run-time support for efficient software distributed shared memory , 1999 .

[18]  Irene Greif,et al.  Replicated document management in a group communication system , 1988, CSCW '88.

[19]  David J. DeWitt,et al.  A status report on the OO7 OODBMS benchmarking effort , 1994, OOPSLA '94.

[20]  M. Franklin,et al.  Global Memory Management in Client-Server DBMS Architectures , 1992 .

[21]  Jeffrey S. Chase,et al.  Integrating coherency and recoverability in distributed systems , 1994, OSDI '94.

[22]  Amin Vahdat,et al.  Webfs: a global cache coherent filesystem , 1996 .

[23]  Alan L. Cox,et al.  ThreadMarks: Shared Memory Computing on Networks of Workstations , 1996, Computer.

[24]  Sacha Krakowiak,et al.  PerDiS: Design, Implementation, and Use of a PERsistent DIstributed Store , 1999, Advances in Distributed Systems.

[25]  Michael Dahlin,et al.  Hierarchical Cache Consistency in a WAN , 1999, USENIX Symposium on Internet Technologies and Systems.

[26]  Anna R. Karlin,et al.  Two adaptive hybrid cache coherency protocols , 1996, Proceedings. Second International Symposium on High-Performance Computer Architecture.

[27]  Miron Livny,et al.  Transactional client-server cache consistency: alternatives and performance , 1997, TODS.

[28]  Miron Livny,et al.  Global Memory Management in Client-Server Database Architectures , 1992, VLDB.

[29]  G. Voelker,et al.  On the scale and performance of cooperative Web proxy caching , 2000, OPSR.

[30]  Miguel Castro,et al.  Fragment reconstruction: providing global cache coherence in a transactional storage system , 1997, Proceedings of 17th International Conference on Distributed Computing Systems.

[31]  Barbara Liskov,et al.  Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems , 1999, PODC '88.

[32]  Robert Gruber,et al.  Efficient optimistic concurrency control using loosely synchronized clocks , 1995, SIGMOD '95.

[33]  John H. Hartman,et al.  Efficient cooperative caching using hints , 1996, OSDI '96.