Real time resource allocation in distributed systems

In this paper we consider a resource allocation problem which is local in the sense that the maximum number of users competing for a particular resource at any time instant is bounded and also at any time instant the maximum number of resources that a user is willing to get is bounded. The problem may be viewed as that of achieving matchings in dynamically changing hypergraphs, via a distributed algorithm. We show that this problem is related to the fundamental problem of handshake communication (which can be viewed as achieving matchings in a dynamically changing graph, via distributed algorithms) in that an efficient solution to each of them implies an efficient solution to the other. We provide real-time solutions to the resource allocation problem (that is, we give distributed algorithms with real time response). We make essential use of probabilistic techniques as first used by [Rabin, 80b], where processes are allowed to make independent probabilistic choices. On the other hand, no probability assumptions about the system behavior are made. One of our solutions assumes the existence of an underlying real-time handshake communication system, as described in [Reif, Spirakis, 81]. Our other solution is based on efficient synchronization by flag variables, which are written only by one process and read by at most one other process. The special case of equi-speed processes is first examined. Then we generalize to asynchronous processes. Applications are made to dining philosophers, scheduling and two-phase locking in databases.

[1]  Gregory R. Andrews,et al.  Synchronizing Resources , 1981, TOPL.

[2]  Michael O. Rabin N-process synchronization by 4.log2N-valued shared variable , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[3]  Leslie G. Valiant,et al.  A Scheme for Fast Parallel Communication , 1982, SIAM J. Comput..

[4]  Philip A. Bernstein,et al.  Timestamp-Based Algorithms for Concurrency Control in Distributed Database Systems , 1980, VLDB.

[5]  Nancy A. Lynch,et al.  Fast allocation of nearby resources in a distributed system , 1980, STOC '80.

[6]  Allan Borodin,et al.  Resource allocation with immunity to limited process failure , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[7]  Michael O. Rabin N-Process Synchronization by 4 log _2 N-Valued Shared Variables , 1980, FOCS.

[8]  Nancy A. Lynch,et al.  A difference in efficiency between synchronous and asynchronous systems , 1981, STOC '81.

[9]  Daniel Lehmann,et al.  On the advantages of free choice: a symmetric and fully distributed solution to the dining philosophers problem , 1981, POPL '81.

[10]  Jack B. Dennis,et al.  A preliminary architecture for a basic data-flow processor , 1974, ISCA '75.

[11]  Sam Toueg,et al.  Deadlock- and livelock-free packet switching networks , 1980, STOC '80.

[12]  Paul G. Spirakis,et al.  Unbounded speed variability in distributed communication systems , 1982, POPL '82.

[13]  Dana Angluin,et al.  Local and global properties in networks of processors (Extended Abstract) , 1980, STOC '80.

[14]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[15]  Philip A. Bernstein,et al.  Fundamental Algorithms for Concurrency Control in Distributed Database Systems. , 1980 .

[16]  Arthur J. Bernstein,et al.  Output Guards and Nondeterminism in “Communicating Sequential Processes” , 1980, TOPL.

[17]  Paul G. Spirakis,et al.  Distributed algorithms for synchronizing interprocess communication within real time , 1981, STOC '81.

[18]  Michael Rodeh,et al.  A distributed abstract data type implemented by a probabilistic communication scheme , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).