The Application of Microeconomics to the Design of Resource Allocation and Control Algorithms Donald Francis Ferguson Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 1989 (cid:211) 1989 Donald Francis Ferguson ALL RIGHTS RESERVED ABSTRACT The Application of Microeconomics to the Design of Resource Allocation and Control Algorithms Donald Francis Ferguson In this thesis, we present a new methodology for resource sharing algorithms in distributed systems. We propose that a distributed computing system should be composed of a decentralized community of microeconomic agents. We show that this approach decreases complexity and can substantially improve performance. We compare the performance, generality and complexity of our algorithms with non-economic algorithms. To validate the usefulness of our approach, we present economies that solve three distinct resource management problems encountered in large, distributed systems. The first economy performs CPU load balancing and demonstrates how our approach limits com- plexity and effectively allocates resources when compared to non-economic algorithms. We show that the economy achieves better performance than a representative non-economic algorithm. The load balancing economy spans a broad spectrum of possible load balancing strategies, making it possible to adapt the load balancing strategy to the relative power of CPU vs. communication. The second economy implements flow control in virtual circuit based computer networks. This economy implements a general model of VC throughput and delay goals that more accurately de- scribes the goals of a diverse set of users. We propose Pareto-optimality as a definition of optimality and fairness for the flow control problem and prove that the resource allocations computed by the economy are Pareto-optimal. Finally, we present a set of distributed algorithms that rapidly com- pute a Pareto-optimal allocation of resources. The final economy manages replicated, distributed data in a distributed computer system. This economy substantially decreases mean transaction response time by adapting to to the transactions¢ reference patterns. The economy reacts to localities in the data access pattern by dynamically as- signing copies of data objects to nodes in the system. The number of copies of each object is ad- justed based on the write frequency versus the read frequency for the object. Unlike previous work, the data management economy¢s algorithms are completely decentralized and have low computa- tional overhead. Finally, this economy demonstrates how an economy can allocate logical re- sources in addition to physical resources. Table of Contents 1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 The Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 The Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Goals of the Dissertation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Dissertation Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.0 Economic Concepts and Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1 Economic Concepts and Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.1 Resources and Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.2 Prices, Budgets and Demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.3 Pareto-Optimality and Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.4 Pricing Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.4.1 Tatonement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.4.2 Auctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.4.3 Variable Supply Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.1 The File Allocation Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.2 Job and Task Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.3 Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.2.4 Multiple Access Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.0 The Load Balancing Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.1 Problem Statement and System Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.2 The Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2.1 The Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.1.1 Compute the Budget Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.1.2 Computing Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.1.3 Bid Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2.2 Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2.2.1 Auction Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.2.2 Price Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.2.3 Advertising . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3 Performance Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3.1 Job Waiting Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.2 Spectrum of Load Balancing Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.3 Adapting to CPU vs. Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3.4 Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.3.5 Wealth, Priority and Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.4 Comparison with Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.6 Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.6.1 Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.6.1.1 Knowledge of Resource Demands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.6.1.2 Auctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.6.1.3 Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.6.1.4 Price Guarantees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.6.1.5 Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.6.1.6 Returning Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.6.2 The Hop 1 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.0 The Flow Control Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.1 Network and Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.1.1 Computing the Demand Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.1.2 Competitive Equilibrium and Price Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.2 Optimality and Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.3 Existence of Equilibrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.4 Convergence to Equilibrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.4.1 Network Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.5 Comparison with Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.7 Proof of Lemmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 i 5.0 The Data Management Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 5.1 Problem Statement and System Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 5.2 The Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.2.1 Processor Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 5.2.2 Data Object Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.2.3 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.3 Performance Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.3.1 Ratio of Reads to Writes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.3.2 Adapting to Entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 5.3.3 Adapting to Locality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.3.4 Lease Prices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.4 Comparison with Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.0 Summary and Directions for Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 ii List of Illustrations Figure 1. A Representative Distributed System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Figure 2. Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Figure 3. A Simple Computer System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Figure 4. Auction Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 5. Demand Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Figure 6. Demand Based Prices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Figure 7. The Contract Net Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Figure 8. Multiple Access Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Figure 9. A Simple Distributed System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Figure 10. A simple distributed system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Figure 11. Job Waiting Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Figure 12. Job Waiting Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Figure 13. Economic vs. Non-Economic Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Figure 14. Job Migration Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Figure 15. Job Migration Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Figure 16. Choice of Migration Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Figure 17. Communication Speed Halved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Figure 18. Communication Speed Doubled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Figure 19. Migration Distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Figure 20. Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Figure 21. Wealth as Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Figure 22. Auctions and Prices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Figure 23. Price Pathology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Figure 24. Modified HOP 1 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Figure 25. Supply Exceeds Demand at all Prices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Figure 26. Fairness Conditions F2 and F4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Figure 27. The two dimensional example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Figure 28. Infinite Equilibria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Figure 29. Convergence to Equilibrium Demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Figure 30. Convergence to Equilibrium Demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Figure 31. Convergence detection problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Figure 32. Network Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Figure 33. Routing Pathology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Figure 34. Strong convexity of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Figure 35. The Data Management Economy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Figure 36. Data Management Distributed System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Figure 37. Adapting to Read/Write Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Figure 38. Adapting to Read/Write Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Figure 39. Performance vs Entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Figure 40. Performance vs Locality of Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Figure 41. Adapting to Locality of Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Figure 42. Lease Prices vs Write Probability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 iii Acknowledgements I wish to thank my advisor Yechiam Yemini for his guidance, support and friendship. I consider myself very lucky to have had the honor and pleasure of working with him. He has had a profound influence on this dissertation and on me. If I ever advise someone through a difficult challenge, I will try to be like him. If I am half as good as he, I will consider myself very successful. I am looking forward to working with him in the future. I wish to thank my thesis committe: Zvi Galil, Michael Pinedo, Calton Pu, Mischa Schwartz and David Simcha-levi. I think that this dissertation has benefited from their comments and my dis- cussions with them. I also want to thank my committee for their tolerance of the many phone calls and mail messages required to schedule the defense. I would especially like to thank Calton Pu for the many helpful conversations with him. Seldom does one meet a person whose advice is so con- sistently excellent. I wish to thank the faculty, students and staff of the Computer Science Department. Despite some trying crises, I enjoyed working with and learning from them. Special thanks go to my friends and fellow suffering students Dannie Durand, Yoram Eisenstadter, David Glaser, Avraham Leff, Cecile Paris, Nat Polish, Jonathan Smith, Micheal van Biema and Moti Yung. I hope my friendship has helped them as much as their friendship helped me. I am grateful to Jed Schwartz and Alex Dupuy for their support of the DCC projects. Many of the results in this dissertation were greatly aided by Alex¢s patience and frequent explanations of Unix and NEST. From the faculty, I give special thanks to John Kender and Jonathan Gross. Finally, I must thank Germaine Leveque for guiding me through the maze of forms and instructions needed to accomplish anything at Columbia. I do not know how the department ever managed to function without her. I have had the priveledge of working at IBM Research for most of my years in graduate school. I have learned a great deal from this experience. I wish to thank my managers Erich Port, John Pershing, Nagui Halim and Phil Rosenfeld for their support for my studies. I will always be thankful for my friends¢ influences on my work and on me. Special thank go to Michelle Kim (who introduced me to IBM; little did we know), Leo Georgiadis (for his guidance through the world on mathematics), and David Bacon (for letting me use his Suns). Finally, I must thank Christos iv Nikolaou who has been both an excellent advisor and a friend. He has contributed as much to this dissertation and to me as anyone. I want to thank Michelle Sacks for her friendship and help. I am not sure I would have made it without her. My in-laws Marilyn and Thomas Dente have been extremely helpful over the years. They were al- ways there to supply encouragement, and their home was often a safe haven from the rigors of school work. Finally, and most importantly, I thank my wife Kim. Her confidence in me and her support kept me going the countless times I wanted to stop. My finishing the program is as much her accom- plishment as mine. I have not been able to be with her nearly as much as I wished and I am grateful that I can spend the rest of my life making this up to her. v To Kimberly with love vi 1 1.0 Introduction This dissertation focuses on the problem of allocating and sharing resources in a distributed system. We propose a novel approach to the design of resource allocation and control algorithms in dis- tributed systems. Our thesis is that a distributed system should be structured as an economy of competitive microeconomic agents. Each agent independently tries to meet its individual goals, and no attempt is made to achieve system wide performance objectives. The competition between the agents computes a competitive equilibrium. In equilibrium, the global demand for each resource equals the supply of the resource, and the individual agents¢ demands can be satisfied. We show how a competitive equilibrium is an optimal, fair allocation of resources. As distributed systems increase in size and power, the complexity of making resource management decisions grows dramatically. An important contribution of microeconomics to resource manage- ment in distributed systems is a methodology for limiting the the complexity of solving resource allocation problems. Our implementations of the three economies demonstrate how the new methodology limits complexity in two ways: 1) The system is inherently modular, and 2) All de- cision making is inherently decentralized. To evaluate our methodology, we present three economies that solve classical resource management problems in distributed computer systems. These are 1) load balancing [29], 2) flow control in virtual circuit networks [9], and 3) file allocation [33]. We compare both the structure of the economies and their performance to traditional algorithms for solving these resource management problems. The next section of this chapter elaborates on the complexity problems of designing resource management algorithms in distributed computer systems. This sets the motivation for pursuing the research presented in this dissertation. After the problems are discussed, a subsection gives an overview of the contributions that microeconomics can make to the study of distributed systems. Finally, the last two sections of this chapter present the main goals of this thesis, and an overview of its research contributions. 1.1 The Problem Figure 1 on page 2 shows a representative, large scale distributed system. This system is composed of a backbone network connecting several local area networks. Each of the local area network has
Description: