Multiplex communications – Communication techniques for information carried in plural... – Combining or distributing information via time channels
Reexamination Certificate
1998-06-23
2001-11-06
Olms, Douglas (Department: 2661)
Multiplex communications
Communication techniques for information carried in plural...
Combining or distributing information via time channels
C707S793000, C707S793000
Reexamination Certificate
active
06314114
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to distributed computing, and more specifically, to managing resources in a distributed computing environment.
BACKGROUND OF THE INVENTION
In a distributed computing environment, work can be performed on multiple computing entities, often referred to as “nodes.” One example of a node is a computer system on which one or more processes or threads may execute. Nodes in a distributed computing environment are typically communicatively coupled, for example via a network, to allow processes on any given node to access resources on other nodes. In a hardware context, a resource is generally a device such as a printer, disk drive or memory. In a software context, a resource is generally a set or item of data or a routine.
An important concern in a distributed computing environment is how to manage access to resources by remote processes to ensure that work is completed in an orderly and efficient manner. In a typical scenario, a first process executing on a first node, requires access to a resource, for example a database, on a second node, sometimes referred to as a “remote node.” The first process sends a request to the second node for particular work to be performed using the resource on the second node. A process on the second node is assigned to the first process to perform the requested work on behalf of the first process. When the work is completed, the results are made available to the first process. In practice, this scenario can become significantly more complicated as the first process requires access to multiple resources on multiple nodes or other processes also require access to the same resources. As a result, numerous approaches for managing resources in distributed computing systems have been developed. Three known approaches include: (1) dedicated process; (2) remote process management and (3) global synchronization, which are each described hereinafter.
Dedicated Process
The dedicated process approach involves establishing processes on nodes where work is to be performed on behalf of remote processes (processes on other nodes), where the processes thus established are dedicated to work exclusively for specific remote processes. When a particular process requires work to be performed on a remote node, the process on the remote node that is assigned to the particular process performs the work on behalf of the particular process. Thus, any work that is performed on behalf of a remote process is performed by a specific dedicated process. A remote process uses only its own dedicated process and does not share its dedicated process with other remote processes.
FIG. 1A
is a block diagram illustrates a distributed system
100
that uses the dedicated process approach to perform work on remote nodes. Distributed system
100
includes three nodes, NODE
1
, NODE
2
and NODE
3
that are communicatively coupled so that they can exchange data and information with each other. NODE
1
, NODE
2
and NODE
3
each include three client processes or threads identified as C
1
-C
3
, C
4
-C
6
and C
7
-C
9
, respectively.
Client processes C
1
-C
3
each require work to be performed on NODE
2
. According to the dedicated process approach, dedicated server processes N
2
-S
1
, N
2
-S
2
and N
2
-S
3
are established on NODE
2
to exclusively perform work on NODE
2
on behalf of client processes C
1
-C
3
respectively.
When client process C
1
requires work to be performed on NODE
2
, server process N
2
-S
1
performs the required work on NODE
2
on behalf of client process C
1
. Similarly, when client process C
2
requires work to be performed on NODE
2
, server process N
2
-S
2
performs the required work on NODE
2
on behalf of client process C
2
. For example, suppose client process C
2
requires particular data to be retrieved from a database (not illustrated) on NODE
2
. Client process C
2
transmits a data retrieval request to server process N
2
-S
2
which retrieves the particular data from the database on NODE
2
and makes the data available to client process C
2
.
Client processes C
1
-C
3
also each require work to be performed on NODE
3
. Therefore, according to the dedicated process approach, dedicated server processes N
3
-S
1
, N
3
-S
2
and N
3
-S
3
are established on NODE
3
to exclusively perform work on NODE
3
on behalf of client processes C
1
-C
3
. In addition, dedicated server processes are established on NODE
1
and NODE
3
to perform work on NODE
1
and NODE
3
on behalf of client processes C
4
-C
6
. Finally, dedicated server processes are established on NODE
1
and NODE
2
, respectively, to perform work on NODE
1
and NODE
2
on behalf of client processes C
7
-C
9
.
FIG. 1B
is a table that illustrates the corresponding dedicated remote server processes for each client process illustrated in FIG.
1
A. Note that there are no dedicated server processes for work that is required to be performed on the same node where the client process resides, since that work is performed locally.
The dedicated process approach provides relatively good processing performance since for each client process, a corresponding server process has already been allocated and is executing. Thus, the dedicated process approach provides relatively faster response than a system that dynamically spawns server processes as requests to perform work are received, since the processing of work is not delayed while a new server process is spawned. This is particularly important when relatively small units of work are being requested by the remote processes since delays in spawning a new server process have a greater adverse effect on small units of work relative to larger units of work. For example, suppose 0.5 seconds are required for a particular remote node to spawn a new server process. The relative effect of this delay on a particular unit of work that requires 1.0 second to perform is significantly greater than on another unit of work that requires 100 seconds to perform.
However, the dedicated process approach does have some disadvantages. Most notably, the dedicated server processes are typically maintained until the associated client processes are terminated. As the number of client processes and remote nodes increase, the number of dedicated server processes that must be maintained increases dramatically, which can require a significant amount of system resources to maintain. For example, as illustrated in
FIG. 1A
, for three client processes on three nodes, eighteen (18) dedicated server processes must be maintained, assuming each client process must perform work on the other two nodes. For a system with four nodes and four client processes on each node, forty-eight (48) dedicated server processes are required. For a system with five nodes and five client processes on each node, one hundred (100) dedicated server processes are required. Also a number of client processes may be in an idle state not dong work for long periods of time. In this case a large number of server processes are correspondingly idle for a long time. Consequently, the dedicated process approach is ideally suited for systems having a relatively few number of client processes and remote nodes.
Remote Process Management
The remote process management approach involves establishing a “process pool” on each node where work is to be performed on behalf of remote processes. A “process pool” is a set of one or more processes that perform work on behalf of any remote process that needs work performed on the node with which the process pool is associated. A process pool manager is established to manage each process pool. Each process pool manager assigns processes in the process pool to remote processes, spawns additional processes when additional processing capability is required and terminates processes when less processing capability is required.
FIG. 2
is a block diagram that illustrates a distributed system
200
that uses the remote process management approach to perform work on remote nodes. Distributed system
200
includes three nodes, NODE
1
, NODE
2
and NODE
3
t
Coyle Mark
Putzolu GianFranco
Becker Edward A.
Hickman Palermo & Truong & Becker LLP
Olms Douglas
Oracle Corporation
Pizarro Ricardo M.
LandOfFree
Distributed resource management does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Distributed resource management, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Distributed resource management will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2597539