EP1127310B1 - Procede et appareil pour l'evaluation d'une demande de traitement de donnees au moyen d'entites d'execution reparties - Google Patents

Procede et appareil pour l'evaluation d'une demande de traitement de donnees au moyen d'entites d'execution reparties Download PDF

Info

Publication number
EP1127310B1
EP1127310B1 EP99957447A EP99957447A EP1127310B1 EP 1127310 B1 EP1127310 B1 EP 1127310B1 EP 99957447 A EP99957447 A EP 99957447A EP 99957447 A EP99957447 A EP 99957447A EP 1127310 B1 EP1127310 B1 EP 1127310B1
Authority
EP
European Patent Office
Prior art keywords
data processing
supporting
processes
message
indicators
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
EP99957447A
Other languages
German (de)
English (en)
Other versions
EP1127310A2 (fr
Inventor
Hans Nilsson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of EP1127310A2 publication Critical patent/EP1127310A2/fr
Application granted granted Critical
Publication of EP1127310B1 publication Critical patent/EP1127310B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks

Definitions

  • the present invention relates to performing tasks using distributed processes either in the context of a single data processor or in a multiprocessor context. While the present invention finds advantageous application to any cooperative effort to perform a task, one example application is to database query evaluation in data management systems.
  • Database engines enable those users to submit queries addressing such data, which may be organized conceptually in relational, tabular, hierarchical or other forms, and to receive in response to a query an output known as an answer set.
  • queries addressing such data, which may be organized conceptually in relational, tabular, hierarchical or other forms, and to receive in response to a query an output known as an answer set.
  • the following is an example of a query. Assume there is a register of employees in a particular company. For each employee, there is stored (among other things) the employee's name, salary, and age. One possible query is to "find all names of employees that have a salary of more than $20,000 and are less than 30 years old.”
  • Unnecessary or excess processors are released from their assignment to a process, and if the number of processes assigned to the process is insufficient, one or more idle processors is assigned to the process.
  • the query results produced from all of the cooperating query processes i.e., query operators
  • the difficulty in a distributed query execution specifically, and in any type of distributed processing system generally, is knowing when all of the interconnected and cooperating processes have completed processing of their respective portions of the overall task.
  • a user terminal 10 communicates with a computer system 12 by way of a user interface 14.
  • the computer system 12 may also be connected to a database 16.
  • a task (such as a database query) from the user interface 14 is provided for distributed execution to a controlling process C which then passes the task (or portions thereof) to supporting processes P1, P2, P3, and P4 as shown.
  • Each process PI-P4 executes some part (or its own portion) of the task.
  • controlling process C sends a message defining or otherwise related to the task to the first process P1.
  • First process P1 performs its part of the task and sends those partial task results along with the message it received from the controlling process C both to supporting processes P2 and P3.
  • the supporting processes P2 and P3 perform their respective parts of the task and send their respective results along with the message each received from the process P1, which includes the results from the process P1, to supporting processes.
  • the completed task reaches the controlling process C in the form of two messages, one from the chain C ⁇ P1 ⁇ P2 ⁇ C and one from the chain C ⁇ P1 ⁇ P3 ⁇ P4 ⁇ C.
  • the problem at this point is for the controlling process C to determine when it has received all messages from all of the agent processes involved in performing the task. This problem is complicated by the fact that while the controlling process knows about the first supporting process P1, it does not necessarily know the identity of all supporting processes that contributed to the completion of the task. As a result, the controlling process C does not even know how many process messages to expect.
  • One possible solution to this problem is for all of the supporting processes P i to inform the controlling process C of their identities and then to send a message from the controlling process C to each of the supporting processes P i (i.e., P 1 - P 4 in Fig. 1) requesting that each of the supporting processes communicate with the controlling process C when they have completed its portion of the task. Each supporting process P i then sends another message to the controlling process C when it has completed its respective task portion.
  • One drawback of this solution is that it requires that the identity of all the supporting processes that will be involved in executing some portion of the task be known in advance by the controlling process C. This requirement is not always easy or desirable to meet.
  • Another significant drawback of this possible solution is that all of the overhead-type signaling between the controlling process C and the supporting processes is time consuming and inefficient.
  • Determination detection for programs in a Single Program Multiple Data (SPMD) mode is described in "Termination Detection: Models and Algorithms for SPMD Computing Paradigms," Kocalar et al., 26 September 1998.
  • the ring algorithm disclosed uses a token passing, logical ring network based on wave propagation concepts. Assuming every processor is active, when a processor becomes passive and initiates a check for termination, it generates a clean token to be passed around the ring. A passive processor receiving a clean token leaves the token clean. An active or server processor receiving a clean token makes the token dirty. A processor receiving a dirty token does not change it, but passes it on.
  • the initiator When the token returns to its initiator and it is dirty, the initiator knows that there is at least one non-passive processor in the system. The initiator sends out another clean token. Concluding termination in this procedure requires not only the receipt of a clean token, but the knowledge that all messages sent have been received.
  • each process includes some type of identifying information that it forwards to a supporting process along with a substantive task message. Ultimately, those messages with the identifying information reach the controlling process. The controlling process then deduces from the received identifying information whether all of the messages from all processes involved in the task have been received. If the controlling process deduces they have, the task is complete.
  • a message related to a data processing task is passed between those processes involved in performing the data processing task.
  • Each of those processes performs some function related to the task and passes an "end token" along with the message -- as modified by the function performed by that process -- to another of the involved processes.
  • the control process determines that the data processing task is finished using the end tokens received along with the distributed processing results from the involved processes.
  • Each end token includes a unique identifier and the number of copies of the message forwarded by the corresponding process and is used by the control process to generate an array of count values.
  • a count value is established for each unique end token based on the number of message copies forwarded by the corresponding process. When all of the count values are decremented to zero, the controlling process determines that the messages from all involved processes have arrived and processing is complete.
  • the invention has advantageous application to database management, and in particular, to database query evaluation.
  • the present invention is not limited to database management or query evaluation and may be employed advantageously in any application where processes cooperate to achieve an overall goal.
  • the processes may be implemented in the same computer or at separate computers.
  • the processes may communicate for example using the message passing functionality of the computer's operating system.
  • each computer may communicate over an appropriate transmission medium such as a shared memory, a local area network, the Internet, etc.
  • the present invention may be implemented in a variety of contexts.
  • the present invention may be implemented in a single computer based system such as that shown in Fig. 1 where distributed software processes are employed to cooperatively execute a task. Those processes communicate using the computer's operating software.
  • the present invention may be applied to a multi-processor environment.
  • One example multi-processor environment is shown in Fig. 2 where multiple nodes (1-4) identified with reference numerals 20, 22, 24, and 26 are connected by way of a network 30 such as Ethernet, Internet, etc.
  • Each of the nodes 1-4 includes a data processor that performs some portion of the requested data processing task.
  • the node data processors communicate using an appropriate communications protocol over the network 30.
  • FIG. 3 shows another example multi-processor configuration where CPUs 1, 2, ... N corresponding to reference numerals 32, 34, and 36, respectively, are coupled to a shared memory 40 over a data bus 38.
  • CPUs 1, 2, ... N corresponding to reference numerals 32, 34, and 36, respectively
  • these example applications are in no way limiting since the present invention may be used in any situation where there is a set of "things" sending messages, packets, etc. to each other in directed, acyclic manner.
  • Fig. 4 outlines example steps for determining whether a data processing request has been completed by distributed processes as set forth in the Request Evaluation procedures (block 50).
  • the present invention is described in terms of "processes" which may be implemented using one or more computers or other types of electronic data processing circuitry. Initially, a task is assigned to a control process (C) for distributed or otherwise cooperative processing by a plurality of processes (block 52).
  • a message related to the task to be accomplished is sent from control process C to one or more supporting processes P i which assist in accomplishing the requested data processing task (block 54).
  • Each supporting process P i receives its own copy of the message from C and performs some processing function associated with the message. After processing, each supporting processor forwards the received message along with the results of its processing to another supporting process. While in this example the message passed between processes is the same, different messages may also be passed between processes.
  • a supporting process P i includes some type of identifying information, (e.g., a token as explained hereafter), with the message along with the results of the data processing performed (related to the assigned task) by that process (block 56).
  • the control process C uses that identifying information collected from messages received from supporting processes to determine whether all processes performed by all of the supporting processes P i involved in executing the assigned task are complete (block 58).
  • identifying information By including identifying information along with the forwarded message and processing results, additional overhead and delay associated with sending and processing separate control type messages between supporting processes and the control process are eliminated. That identifying information also eliminates the need for separate signaling to the controlling process C to specify the identity and/or number of involved processes.
  • the included information is an end token set S attached to each forwarded message.
  • Each end token e i is composed of a unique token identifier ( e . id ) and a number of output "branches" ( e . n ) from the corresponding process to other supporting processes (block 62).
  • the control process C sends a message with the end token set S to each output branch to one or more supporting processes.
  • the end token set includes only the end token generated by the controlling process C (block 64).
  • Fig. 5B illustrates in flowchart form procedures for processing messages received at each supporting process entitled "Process Message at P i " (block 70).
  • a decision is made in block 72 regarding the number of output branches from the current process P i to other supporting processes. If there is only one output branch, then the current process P i sends the message M along with the token set S that was originally received by the current process P i along with the message as processed by the current process P i to that single output branch (block 74). However, if there is more than one output branch from the current process P i , the current process P i defines a new unique token identifier e. id as well as the number of output branches e .
  • the current process P i sends the received message M, the processing results produced by the current process P i , and an end token set S i containing just the end token e i to all of the other output branches from the current process P i (block 80).
  • the evaluation process is essentially an end token counting process. For each end token identifier ( e . id ), a counter is established in a COUNT array managed by the controlling process C corresponding to the expected number of end tokens to arrive before the requested task has been completed by all of the involved supporting processors.
  • the controlling process C would receive duplicate end tokens thereby erroneously inflating the token count.
  • the flowchart in Fig. 5C illustrates a "Message Processing at C" routine performed at the controlling process C (block 19).
  • the controlling process C generates an array of counters COUNT which counts a remaining number of end tokens for each e . id .
  • the control process C removes one end token from the end token set S which is attached with a received message to assure termination of the processing loop (block 92).
  • a decision is made in block 94 if a corresponding counter has already been established in the COUNT array for the end token e.id in the end token set S . If so, the corresponding counter in the COUNT array, i.e., COUNT( e .
  • control process C is decremented by one (block 96). If not, the control process C inserts a counter corresponding to e.id into the count array and sets COUNT( e . id ) equal to e . n - 1. A decision is made in block 100 whether there are remaining tokens in the end token set S. If so, control returns to block 92. Otherwise, a decision is made in block 102 to determine if all of the established end token counter values in the COUNT array are zero. If not, the control process C waits for more messages from supporting processes (block 104). If all end token counter values are zero, then all necessary messages have arrived, and the task processing is finished (block 106).
  • FIG. 7 A more complicated example where two copies of the message M are output by supporting process P 1 is shown in Fig. 7.
  • the message M is sent to two output branches, one to process P 2 and one to process P 3 .
  • end token e 1 is only sent in one of the messages forwarded by process P 1 as described above with respect to block 76 in Fig. 5B. Since processes P 2 and P 3 have only one output branch, they do not attach a new end token but rather simply forward the end token set S received, i.e., either ⁇ e 1 e 2 ⁇ or ⁇ e 2 ⁇ along with the message.
  • Fig. 8 illustrates an even more complicated example with multiple supporting processes having plural output branches. However, similar procedures are followed with equal success.
  • the controlling process C sends a message to process P 1 , and P 1 sends message copies to supporting processes P 2 , P 3 , and P 4 .
  • the initial message from controlling process C includes only one end token in the set ⁇ e 1 ⁇ .
  • Process P 1 then generates a new end token e 2 with e 2 .
  • n 3 since there are three output branches from process P 1 .
  • the other two output branches include an end token set with only the new end token ⁇ e 2 ⁇ .
  • the controlling process C will ultimately receives messages with the various end token sets attached corresponding to: ( a )- ⁇ e 1 e 2 e 3 ⁇ , ( b )- ⁇ e 2 e 4 ⁇ , ( c )- ⁇ e 2 ⁇ , ( d )- ⁇ e 3 ⁇ , and ( e )- ⁇ e 4 ⁇ .
  • These end token sets may arrive at the controlling process C in any order.
  • Table 1 below shows one order of arrival and Table 2 below shows a reversed order of arrival:
  • Table 1 below shows one order of arrival and Table 2 below shows a reversed order of arrival:
  • Message sequence number Token set in the message Expected number of End Tokens e 1 e 2 e 3 e 4 1 ⁇ e 1 e 2 e 3 ⁇ 0 2 1 2 ⁇ e 2 e 4 ⁇ 0 1 1 1 3 ⁇ e 2 ⁇ 0 0 1 1 4 ⁇ e 3 ⁇ 0 0 0 1 5 ⁇ e 4 ⁇ 0 0 0 0 0 0 0
  • Message sequence number Token set in the message Expected number of End Tokens e 1 e 2 e 3 e 4 1 ⁇ e 4 ⁇ 1 2 ⁇ e 3 ⁇ 1 1 3 ⁇ e 2 ⁇ 2 1 1 4 ⁇ e 2 e 4 ⁇ 1 1 0 5 ⁇ e 1 e 2 e 3 ⁇

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Une demande de traitement de base de données est effectuée par des entités d'exécution réparties. Chaque entité d'exécution répartie impliquée dans la tâche assure une fonction de traitement de données particulière et comporte des informations d'identification de traitement ainsi qu'un message de tâche significatif relatif à une autre entité d'exécution. Finalement, les messages ainsi que les informations d'identification arrivent dans une entité de commande qui déduit ensuite desdites informations d'identification si tous les message de toutes les entités d'exécution impliquées dans la tâche ont exécuté la partie de la tâche qui leur revient. S'il déduit que c'est le cas, la tâche est accomplie.

Claims (23)

  1. Procédé dans lequel une demande de traitement de données est traitée par une pluralité de processus d'exécution supports (Pi), comprenant les phases suivantes:
    présentation de la demande de traitement de données à un processus de contrôle (C) ;
    en réaction à la demande de traitement de données, définition au niveau du processus de contrôle (C) d'un ensemble (S) d'indicateurs englobant un indicateur (ei) en fonction du nombre de branches de sortie provenant du processus de contrôle (C); et sortie, de chaque branche de sortie, d'un message avec une partie de la demande de traitement de données et de l'ensemble (S) d'indicateurs (ei);
    réception, au niveau des processus d'exécution supports (Pi), d'un message avec une partie de la demande de traitement de données et d'un ensemble d'indicateurs (ei);
    traitement d'une partie de la demande de traitement de données au niveau desdits processus d'exécution supports (Pi);
    définition d'un nouvel indicateur (ei) en fonction de son nombre de branches de sorties, au niveau de chacun desdits processus d'exécution supports (Pi);
    sortie d'un message avec ses résultats de traitement, depuis l'une des branches de sortie de chacun desdits processus d'exécution supports (Pi), et d'un ensemble d'indicateurs englobant l'union du nouvel indicateur (ei) et de l'ensemble (Si-1) d'indicateurs reçus du processus précédent;
    sortie d'un message avec ses résultats de traitement et d'un ensemble (Si) d'indicateurs englobant ledit nouvel indicateur (ei), depuis toutes les autres branches de sorties de chacun desdits processus d'exécution supports (Pi) ;
    réception, au niveau du processus de contrôle (C), de messages provenant des processus d'exécution supports avec des ensembles (Si) d'indicateurs, et détermination en fonction des ensembles reçus (Si) d'indicateurs si l'on a reçu des messages de chacun des processus d'exécution supports (Pi) et la demande de traitement de données est ainsi terminée.
  2. Procédé selon la revendication 1, dans lequel chacune des processus d'exécution supports (Pi) remplit une partie de la demande de traitement de données.
  3. Procédé selon la revendication 1, dans lequel chacun des processus d'exécution supports (Pi) transmet les résultats de sa partie effectuée en même temps que son message de sortie.
  4. Procédé selon la revendication 1, dans lequel chaque indicateur est un jeton englobant un identificateur de jeton (e.id) associé au processus correspondant, et un nombre (e.n) de branches de sortie provenant du processus respectif.
  5. Procédé selon la revendication 1, dans lequel chaque processus d'exécution support (Pi) transmet une copie du message (M) provenant du processus de contrôle (C) en même temps que les résultats de son traitement, à un processus suivante.
  6. Procédé selon la revendication 5, dans lequel chaque indicateur est un jeton englobant un identificateur de jeton (e.id) associé au processus correspondant, et un nombre (e.n) de copies du message transmis par le processus d'exécution support correspondant à un nombre correspondant d'autres processus d'exécution supports.
  7. Procédé selon la revendication 4 ou 6, comprenant en outre la phase suivante :
    établissement d'une matrice de comptage (COUNT (e.id)) gérée par le processus de contrôle pour que chaque identificateur correspondant à un nombre attendu d'identificateurs puisse arriver avant le terme de la tâche demandée par touts les processus d'exécution supports.
  8. Procédé selon la revendication 7, comprenant en outre les phases suivantes :
    décrémentation de chaque matrice de comptage en cas de réception du message au niveau du processus de contrôle depuis le processus d'exécution support correspondant, et
    détermination du terme de la tâche de traitement de données demandée lorsque chaque matrice de comptage est égale à zéro.
  9. Procédé selon la revendication 1, dans lequel la demande de traitement de données est une interrogation de base de données et les processus d'exécution supports (Pi) sont des processus d'interrogation.
  10. Procédé selon la revendication 1, dans lequel les entités d'exécution supports communiquent à l'aide d'une fonction de passage de messages d'un logiciel du système d'exploitation.
  11. Procédé selon la revendication 1, dans lequel les processus d'exécution supports sont réparties dans des noeuds situés à distance (20-26) communiquant par l'intermédiaire d'un réseau (30).
  12. Procédé selon la revendication 1, dans lequel les processus d'exécution supports sont répartis au niveau de processeurs de données (32-36) connectés par le biais d'un bus de données (38) à une mémoire partagée (40).
  13. Procédé selon la revendication 1, dans lequel, après le traitement des informations par les processus d'exécution supports (Pi), les informations ne sont pas retournées auxdits processus d'exécution supports.
  14. Système réparti de traitement de données pour le traitement de données en coopération, comprenant :
    un processus de coordination (C) pour définir un ensemble (S) d'indicateurs englobant un indicateur (ei) en fonction du nombre de branches de sortie à partir du processus de contrôle (C); et sortie, de chaque branche de sortie, d'un message avec une partie de la demande de traitement de données et l'ensemble (S) d'indicateurs (ei);
    une pluralité de processus d'exécution supports (Pi), chaque processus d'exécution support recevant un message avec une partie de la demande de traitement de données et un ensemble d'indicateurs (ei); traitement d'une partie de la demande de traitement de données; définition d'un nouvel indicateur (ei) en fonction de son nombre de branches de sortie; sortie, de l'une de ses branches de sortie, d'un message avec ses résultats de traitement et d'un ensemble (Si) d'indicateurs englobant l'union du nouvel indicateur (ei) et l'ensemble (Si-1) d'indicateurs reçus du processus d'exécution précédent; sortie, de toutes les autres branches de sortie, d'un message avec ses résultats de traitement et un ensemble (Si) d'indicateurs englobant ledit nouvel indicateur (ei);
       dans lequel le processus de coordination (C) reçoit des messages des processus d'exécution supports avec les ensembles (Si) d'indicateurs et détermine, en fonction des ensembles(Si) d'indicateurs reçus, si l'on a reçu des messages de chacun des processus d'exécution supports (Pi) et la fonction de traitement de données est ainsi terminée.
  15. Système réparti de traitement de données selon la revendication 14, dans lequel les processus d'exécution supports et le processus de coordination sont exécutés à l'aide d'un simple processeur de données et où les processus d'exécution communiquent à l'aide du passage d'une partie de messages d'un système d'exploitation commandé par le processeur de données.
  16. Système réparti de traitement de données selon la revendication 14, dans lequel le système réparti de traitement de données est un système de base de données et la fonction de traitement de données est une interrogation de base de données.
  17. Système réparti de traitement selon données de la revendication 14, dans lequel les processus d'exécution de traitement et l'entité de coordination correspondent chacune à des processeurs de données respectifs (2-26) connectés par un réseau (30).
  18. Système réparti de traitement de données selon la revendication 14, dans lequel les processus d'exécution supports et le processus de coordination correspondent chacun à des processeurs de données respectifs (32-36) communiquant par le biais d'une mémoire partagée (40).
  19. Système réparti de traitement de données selon la revendication 14, dans lequel le processus de coordination détermine que la fonction de traitement de données est terminée lorsque tous les jetons associés à n'importe lequel des processus d'exécution supports sont reçus par le processus de coordination.
  20. Système réparti de traitement de données selon de la revendication 14, dans lequel chaque jeton englobe un identificateur (e.id) associé à un processus d'exécution support correspondant et un nombre correspondant au nombre (e.n) de processus auxquels le jeton est transmis par son processus correspondant.
  21. Système réparti de traitement de données selon la revendication 14, dans lequel chaque processus d'exécution support transmet un ensemble de jetons (S) à un autre processus d'exécution support, avec un ou plusieurs processus d'exécution supports ajoutant un jeton à l'ensemble de jetons.
  22. Système réparti de traitement de données selon la revendication 14, comprenant en outre : une matrice de comptage (COUNT (e.id)) gérée par l'entité de coordination pour que chaque jeton correspondant à un nombre attendu de jeton puisse arriver avant le terme de la fonction de traitement de données.
  23. Système réparti de traitement de données selon la revendication 22, dans lequel le processus de coordination décrémente chaque matrice de comptage à la réception du message au niveau du processus de coordination depuis le processus d'exécution support correspondant, et détermine si la fonction de traitement de données est terminée lorsque chaque matrice de comptage est égale à zéro.
EP99957447A 1998-11-03 1999-10-29 Procede et appareil pour l'evaluation d'une demande de traitement de donnees au moyen d'entites d'execution reparties Expired - Lifetime EP1127310B1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US185079 1994-01-20
US09/185,079 US6604122B1 (en) 1998-11-03 1998-11-03 Method and apparatus for evaluating a data processing request performed by distributed processes
PCT/SE1999/001950 WO2000026765A2 (fr) 1998-11-03 1999-10-29 Procede et appareil pour l'evaluation d'une demande de traitement de donnees au moyen d'entites d'execution reparties

Publications (2)

Publication Number Publication Date
EP1127310A2 EP1127310A2 (fr) 2001-08-29
EP1127310B1 true EP1127310B1 (fr) 2004-12-22

Family

ID=22679489

Family Applications (1)

Application Number Title Priority Date Filing Date
EP99957447A Expired - Lifetime EP1127310B1 (fr) 1998-11-03 1999-10-29 Procede et appareil pour l'evaluation d'une demande de traitement de donnees au moyen d'entites d'execution reparties

Country Status (9)

Country Link
US (1) US6604122B1 (fr)
EP (1) EP1127310B1 (fr)
JP (1) JP2002529808A (fr)
KR (1) KR20010085985A (fr)
AU (1) AU1514800A (fr)
BR (1) BR9914991A (fr)
CA (1) CA2349706C (fr)
DE (1) DE69922832T2 (fr)
WO (1) WO2000026765A2 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010027467A1 (en) * 2000-03-30 2001-10-04 Anderson David P. Massively distributed database system and associated method
US20090216641A1 (en) 2000-03-30 2009-08-27 Niration Network Group, L.L.C. Methods and Systems for Indexing Content
US20010039497A1 (en) * 2000-03-30 2001-11-08 Hubbard Edward A. System and method for monitizing network connected user bases utilizing distributed processing systems
USRE42153E1 (en) 2000-03-30 2011-02-15 Hubbard Edward A Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
US7406511B2 (en) * 2002-08-26 2008-07-29 International Business Machines Corporation System and method for processing transactions in a multisystem database environment
US7800631B2 (en) 2003-03-18 2010-09-21 Qualcomm Incorporated Triangle rendering using direct evaluation
GB0422007D0 (en) * 2004-10-05 2004-11-03 Ibm Method and system for identifying a complete response to a request
WO2008118613A1 (fr) * 2007-03-01 2008-10-02 Microsoft Corporation Exécution de tâches par des processeurs multiples en conformité avec des attributions dynamiques

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US5297255A (en) 1987-07-28 1994-03-22 Hitachi, Ltd. Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
CA2078315A1 (fr) 1991-09-20 1993-03-21 Christopher L. Reeve Appareil de traitement parallele et methode d'utilisation du pavage
US5459860A (en) * 1992-10-05 1995-10-17 International Business Machines Corporation Computerized system and process for managing a distributed database system
JPH0784973A (ja) 1993-09-16 1995-03-31 Fujitsu Ltd マルチ処理プロセッサ制御装置および制御方法
US6330582B1 (en) * 1994-03-21 2001-12-11 International Business Machines Corporation Apparatus and method enabling a client to control transaction message traffic between server and client processes
US5826265A (en) * 1996-12-06 1998-10-20 International Business Machines Corporation Data management system having shared libraries

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Termination Detection: Models and Algorithms for SPMD Computing Paradigms (KOCALAR and KHOKHAR) 26 September 1998 *

Also Published As

Publication number Publication date
US6604122B1 (en) 2003-08-05
EP1127310A2 (fr) 2001-08-29
CA2349706C (fr) 2009-05-26
DE69922832D1 (de) 2005-01-27
JP2002529808A (ja) 2002-09-10
AU1514800A (en) 2000-05-22
KR20010085985A (ko) 2001-09-07
DE69922832T2 (de) 2005-12-15
BR9914991A (pt) 2001-07-24
CA2349706A1 (fr) 2000-05-11
WO2000026765A2 (fr) 2000-05-11
WO2000026765A3 (fr) 2000-10-05

Similar Documents

Publication Publication Date Title
US6823512B1 (en) Apparatus and method for providing and processing prioritized messages in an ordered message clustered computing environment
US6584491B1 (en) Arrangement for monitoring a progress of a message flowing through a distributed multiprocess system
JPH0535903B2 (fr)
EP1127310B1 (fr) Procede et appareil pour l'evaluation d'une demande de traitement de donnees au moyen d'entites d'execution reparties
WO2019149032A1 (fr) Procédé et dispositif de traitement de transaction distribuée
US20040010538A1 (en) Apparatus and method for determining valid data during a merge in a computer cluster
Nicol Noncommittal barrier synchronization
US20030018606A1 (en) Revocation of tokens without communication between the token holders and the token server
Raz The dynamic two phase commitment (d2pc) protocol
US5003470A (en) Method for tying and untying path access in a CPU-based, layered communications system
US20030202522A1 (en) System for concurrent distributed processing in multiple finite state machines
US20010049696A1 (en) Method of and computer system for performing a transaction on a database
KR20060044311A (ko) 분산 컴퓨팅 환경
Johnson et al. A comparison of fast and low overhead distributed priority locks
Nicol Global synchronization for optimistic parallel discrete event simulation
US6799219B1 (en) Method and apparatus for avoiding starvation in computer network
JPH0628322A (ja) 情報処理装置
US6925582B2 (en) Forwarding of diagnostic messages in a group
US5488703A (en) System for establishing and performing multiple conversations simultaneously between transaction programs through logical units
Tsay et al. A real-time algorithm for fair interprocess synchronization
Tel Network orientation
JPS63167938A (ja) 信号処理装置及び信号処理方法
Brackin A HOL formalization of CAPSL semantics
Esfahanian et al. A distributed broadcast algorithm for binary De Bruijn networks
KR100587642B1 (ko) 코바(corba)환경에서의 정적 바인딩 방법

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20010504

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

17Q First examination report despatched

Effective date: 20020131

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)

RBV Designated contracting states (corrected)

Designated state(s): DE FR GB

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20041222

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 69922832

Country of ref document: DE

Date of ref document: 20050127

Kind code of ref document: P

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20050923

EN Fr: translation not filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20181029

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20181029

Year of fee payment: 20

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 69922832

Country of ref document: DE

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20191028

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20191028