Dynamo: design, implementation, and evaluation of cooperative persistent object management in a local area network

In light of advances in processor and networking technology, especially the emergence of network attached disks, the traditional client‐server architecture of persistent storage systems has become suboptimal for many computation/data intensive applications. In this paper, we introduce a revised architecture for persistent object management employing network attached storage: the dynamic object server environment (Dynamo). Dynamo introduces two main architectural innovations: (1) to provide high scalability, the object management functions are mainly performed cooperatively by the clients in the system. Furthermore, data is transferred directly to the client's cache from network‐attached disks, thus avoiding copies from a disk to the server buffer and then over the network to the client. Other systems have an a priori assignment of ‘object management’ functions to specific nodes; (2) Dynamo uses a cooperative cache management which employs a decentralized lottery‐based page replacement strategy with a novel technique which attempts to put a page replaced from one node into the cache of another node which is likely to access the page in the near future. We show via performance benchmarks run on the Dynamo system and simulation results how this architecture increases the system's adaptability, scalability and cost performance. Copyright © 2000 John Wiley & Sons, Ltd.

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

[2]  Jeanna Neefe Matthews,et al.  Serverless network file systems , 1996, TOCS.

[3]  Anna R. Karlin,et al.  Implementation and performance of integrated application-controlled file caching, prefetching, and disk scheduling , 1996, TOCS.

[4]  Miguel Castro,et al.  HAC: hybrid adaptive caching for distributed storage systems , 1997, SOSP.

[5]  Philip S. Yu,et al.  Policies for efficient memory utilization in a remote caching architecture , 1991, [1991] Proceedings of the First International Conference on Parallel and Distributed Information Systems.

[6]  Anna R. Karlin,et al.  A study of integrated prefetching and caching strategies , 1995, SIGMETRICS '95/PERFORMANCE '95.

[7]  Anna R. Karlin,et al.  Implementing cooperative prefetching and caching in a globally-managed memory system , 1998, SIGMETRICS '98/PERFORMANCE '98.

[8]  Jim Zelenka,et al.  File server scaling with network-attached secure disks , 1997, SIGMETRICS '97.

[9]  David J. DeWitt,et al.  The oo7 Benchmark , 1993, SIGMOD Conference.

[10]  David J. DeWitt,et al.  Shoring up persistent applications , 1994, SIGMOD '94.

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

[12]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

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

[14]  Miguel Castro,et al.  Safe and efficient sharing of persistent objects in Thor , 1996, SIGMOD '96.

[15]  Tomasz Imielinski,et al.  Mining association rules between sets of items in large databases , 1993, SIGMOD Conference.