Method and system for synchronizing computer mail user directories
First Claim
1. A method in a computer mail system for synchronizing a user directory stored in a responding directory node with a more current user directory stored in an originating directory node, the method comprising the steps of, for each of a plurality of consecutive synchronization cycles:
- acquiring in the originating directory node a plurality of directory update transactions for updating the contents of the user directory stored in the originating directory node;
assigning to each acquired directory update transaction a consecutive sequence number indicating an order of acquisition;
updating the contents of the user directory stored in the originating directory node based on the acquired directory update transactions;
selecting a series of two or more of the acquired directory update transactions for transmission to the responding directory node, the assigned sequence number of the first directory update transaction in the series being consecutive to an originating directory node synchronization number that stores the sequence number of a last confirmed directory update transaction, the assigned sequence numbers of all directory update transactions in the series being consecutive, such that each directory update transaction after the last confirmed directory update transaction is selected;
transmitting the selected series of directory update transactions from the originating directory node to the responding directory node;
receiving in the responding directory node at least one of the directory update transactions in the transmitted series of directory update transactions;
updating the contents of the user directory stored in the responding directory node by processing any directory update transactions received in the responding directory node whose sequence numbers are consecutive to each other and consecutive to a responding directory node synchronization number that stores the sequence number of a last processed directory update transaction;
transmitting from the responding directory node to the originating directory node a confirmation message indicating the largest consecutive sequence number of the directory update transactions received and processed in the responding directory node; and
upon receiving the transmitted confirmation message in the originating directory node, setting the originating directory node synchronization number to the sequence number indicated by the confirmation message thereby completing the synchronization of the user directory stored in the responding directory node with the user directory stored in the originating directory node,such that the originating directory node transmits to the responding directory node in each synchronization cycle all directory update transactions acquired after the last confirmed directory update transaction, irrespective of whether these directory update transactions were previously transmitted, so that the responding directory node can receive all of these transactions in order even though some of these transactions may have been previously received in the responding directory node.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for synchronizing directories containing information about computer mail users. In a preferred embodiment, a computer mail facility synchronizes a user directory stored in a responding directory node with a more current user directory stored in an originating directory node. Directory update transactions are received in the originating node and assigned a sequence number to denote the consecutive order of acquisition. The sequence number is relative to an originating sequence number which tracks the completed transmission of the transactions to the responding node. The transactions are processed by the originating node and subsequently transmitted to the responding directory node. Upon receipt of the transactions, the responding node transmits a confirmation message indicating the largest consecutive sequence number of a received transaction. This is used by the originating directory node to determine whether the responding node has received a complete set of the transactions. The sequence number in the confirmation message is then used to set the originating sequence number.
121 Citations
40 Claims
-
1. A method in a computer mail system for synchronizing a user directory stored in a responding directory node with a more current user directory stored in an originating directory node, the method comprising the steps of, for each of a plurality of consecutive synchronization cycles:
-
acquiring in the originating directory node a plurality of directory update transactions for updating the contents of the user directory stored in the originating directory node; assigning to each acquired directory update transaction a consecutive sequence number indicating an order of acquisition; updating the contents of the user directory stored in the originating directory node based on the acquired directory update transactions; selecting a series of two or more of the acquired directory update transactions for transmission to the responding directory node, the assigned sequence number of the first directory update transaction in the series being consecutive to an originating directory node synchronization number that stores the sequence number of a last confirmed directory update transaction, the assigned sequence numbers of all directory update transactions in the series being consecutive, such that each directory update transaction after the last confirmed directory update transaction is selected; transmitting the selected series of directory update transactions from the originating directory node to the responding directory node; receiving in the responding directory node at least one of the directory update transactions in the transmitted series of directory update transactions; updating the contents of the user directory stored in the responding directory node by processing any directory update transactions received in the responding directory node whose sequence numbers are consecutive to each other and consecutive to a responding directory node synchronization number that stores the sequence number of a last processed directory update transaction; transmitting from the responding directory node to the originating directory node a confirmation message indicating the largest consecutive sequence number of the directory update transactions received and processed in the responding directory node; and upon receiving the transmitted confirmation message in the originating directory node, setting the originating directory node synchronization number to the sequence number indicated by the confirmation message thereby completing the synchronization of the user directory stored in the responding directory node with the user directory stored in the originating directory node, such that the originating directory node transmits to the responding directory node in each synchronization cycle all directory update transactions acquired after the last confirmed directory update transaction, irrespective of whether these directory update transactions were previously transmitted, so that the responding directory node can receive all of these transactions in order even though some of these transactions may have been previously received in the responding directory node. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-readable medium having contents that cause a computer mail system to synchronize a user directory stored in a responding directory node with a more current user directory stored in an originating directory mode by performing the steps of, for each of a plurality of consecutive synchronization cycles:
-
acquiring in the originating directory node a plurality of directory update transactions for updating the contents of the user directory stored in the originating directory node; assigning to each acquired directory update transaction a consecutive sequence number indicating an order of acquisition; updating the contents of the user directory stored in the originating directory node based on the acquired directory update transactions; selecting a series of the acquired directory update transactions for transmission to the responding directory node, the assigned sequence number of the first directory update transaction in the series being consecutive to an originating directory node synchronization number that stores the sequence number of a last confirmed transmitted directory update transaction, the assigned sequence numbers of all directory update transactions in the series being consecutive, such that each directory update transaction after the last confirmed directory update transaction is selected; transmitting the selected series of directory update transactions from the originating directory node to the responding directory node; receiving in the responding directory node at least one of the directory update transactions in the transmitted series of directory update transactions; updating the contents of the user directory stored in the responding directory node by processing any directory update transactions received in the responding directory node whose sequence numbers are consecutive to each other and consecutive to a responding directory node synchronization number that stores the sequence number of a last processed directory update transaction; transmitting from the responding directory node to the originating directory node a confirmation message indicating the largest consecutive sequence number of the directory update transactions received and processed in the responding directory node; and upon receiving the transmitted confirmation message in the originating directory node, setting the originating directory node synchronization number to the sequence number indicated by the confirmation message thereby completing the synchronization of the user directory stored in the responding directory node with the user directory stored in the originating directory node, such that the originating directory node transmits to the responding directory node in each synchronization cycle all directory update transactions acquired after the last confirmed directory update transaction, irrespective of whether these directory update transactions were previously transmitted, so that the responding directory node can receive all of these transactions in order even though some of these transactions may have been previously received in the responding directory node. - View Dependent Claims (6)
-
-
7. A method in a computer system for synchronizing the remote execution of an ordered series of transactions transmitted from an originating node to a responding node, the method comprising the steps of:
-
in the originating node; assigning consecutive sequence numbers to the transactions in the ordered series; at each of a plurality of transmission times; identifying each transaction in the ordered series having a sequence number larger than a last confirmed sequence number value, and transmitting to the responding node a batch of a plurality of transactions including each identified transaction; in the responding node, for each batch of transactions received from the originating node; selecting each transaction included in the received batch that is consecutive to a last executed sequence number value; executing the selected transactions of the batch; ignoring the unselected transactions of the batch; if any transactions are executed; transmitting to the originating node a confirmation containing the highest sequence number of the executed transactions; setting the last executed sequence number value to the highest sequence number of the executed transactions; and in the originating node; for each confirmation received from the responding node, setting the last confirmed sequence number value to the sequence number in the confirmation, such that the originating code transmits to the responding node all transactions whose sequence number is larger than the last contained sequence number, irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in sequence number order even though some of these transactions may have been previously received in the responding node. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium whose contents cause nodes in a computer network to synchronize the remote execution of an ordered series of transactions by performing the steps of:
-
in an originating node; assigning consecutive sequence numbers to the transactions in the ordered series; at each of a plurality of transmission times; identifying each transaction in the ordered series at the transmission time having a sequence number larger than a last confirmed sequence number value, and transmitting to the responding node a batch of a plurality of transactions including each identified transaction; in the responding node, for each batch of transactions received from the originating node; selecting each transaction included in the received batch that is consecutive to a last executed sequence number value; executing the selected transactions of the batch; ignoring the unselected transactions of the batch; if any transactions are executed; transmitting to the originating node a confirmation containing the highest sequence number of the executed transactions; setting the last executed sequence number value to the highest sequence number of the executed transactions; and in the originating node; for each confirmation received from the responding node, setting the last confirmed sequence number value to the sequence number in the confirmation, such that the originating code transmits to the responding node all transactions whose sequence number is larger than the last contained sequence number, irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in sequence number order even though some of these transactions may have been previously received in the responding node. - View Dependent Claims (18, 19)
-
-
20. An apparatus for synchronizing the remote execution of an ordered series of transactions, comprising:
-
a responding node that executes transactions and transmits confirmations identifying executed transactions; and an originating node communicatively connected to the responding node from which transactions are transmitted to the responding node and to which confirmations are transmitted by the responding node, the originating node assigning consecutive sequence numbers to the transactions in the ordered series, the originating node further identifying each transaction in the ordered series having a sequence number larger than a last confirmed sequence number, the originating node further transmitting to the responding node, at each of a plurality of transmission times, a batch of a plurality of transactions including each identified transaction, the responding node, for each batch of transactions received from the originating node, selecting any transactions included in the batch that are consecutive to a last executed sequence number value, the responding node further executing any selected transactions, ignoring any unselected transactions, and, if any transactions are executed, transmitting to the originating node a confirmation containing the highest sequence number of the executed transactions and setting the last executed sequence number value to the highest sequence number of the executed transactions, the originating node further setting the last confirmed sequence number value to the sequence number in each received confirmation, such that the originating code transmits to the responding node all transactions whose sequence number is larger than the last contained sequence number, irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in sequence number order even though some of these transactions may have been previously received in the responding node. - View Dependent Claims (21, 22)
-
-
23. A method in a computer system for synchronizing the remote execution of a ordered series of transactions, the method comprising the steps of:
-
in an originating node; at each of a plurality of transmission times, identifying and transmitting to a responding node a batch of a plurality of transactions including each transaction in the ordered series not yet identified in a confirmation received from the responding node; in the responding node, for each batch of transactions received from the originating node; selecting and executing only those transactions included in the batch that have not yet been executed in the responding node and that are consecutive to the transactions already executed in the responding node, ignoring any unselected transactions included in the batch; and if any transactions are executed, transmitting to the originating node a confirmation identifying the executed transactions, such that the originating node transmits to the responding node all transactions in the ordered series after the last transaction confirmed, irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in order even though some of these transactions may have been previously received in the responding node. - View Dependent Claims (24, 25, 26)
-
-
27. A computer-readable medium whose contents cause nodes in a computer network to synchronize the remote execution of an ordered series of transactions by performing the steps of:
in an originating node; at each of a plurality of transmission times, identifying and transmitting to a responding node a batch of a plurality of transactions including each transaction in the ordered series at the transmission not yet identified in a confirmation received from the responding node; in the responding node, for each batch of transactions received from the originating node; selecting and executing only those transactions included in the batch that have not yet been executed in the responding node and that are consecutive to the transactions already executed in the responding node, ignoring only unselected transactions included in the batch; and if any transactions are executed, transmitting to the originating node a confirmation identifying the executed transactions, such that the originating node transmits to the responding node all transactions in the ordered series after the last transaction confirmed irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in order even though some of these transactions may have been previously received in the responding node. - View Dependent Claims (28, 29)
-
30. An apparatus for synchronizing the remote execution of an ordered series of transactions, the method, comprising:
-
a responding node that executes transactions and transmits confirmations identifying executed transactions; and an originating node communicatively connected to the responding node from which transactions are transmitted to the responding node, the originating node identifying and transmitting, at each of a plurality of transmission times, a batch of a plurality of transactions including each transaction in the ordered series at the transmission not yet identified in a confirmation received from the responding node, the responding node, for each batch of transactions received from the originating node; selecting and executing only those transactions included in the batch that have not yet been executed in the originating node and that are consecutive to the transactions already executed in the responding node, ignoring any unselected transactions included in the batch; and if any transactions are executed, transmitting to the originating node a confirmation identifying the executed transactions, such that the originating node transmits to the responding node all transactions in the ordered series after the last transaction confirmed, irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in order even though some of these transactions may have been previously received in the responding node. - View Dependent Claims (31, 32)
-
-
33. A method in a computer system for error-tolerant transmission of an ordered series of transactions from an originating node to a responding node, comprising the steps of:
-
assigning consecutive sequence numbers to the transactions in the ordered series; at each of a plurality of transmission times; identifying each transaction in the ordered series having a sequence number larger than a last confirmed sequence number value, and transmitting to the responding node a batch of a plurality of transactions including each identified transaction; receiving confirmations from the responding node each specifying the sequence number of the last transaction processed in the responding node; and for each confirmation received from the responding node, setting the last confirmed sequence number value to the sequence number specified by the confirmation, such that the originating code transmits to the responding node all transactions whose sequence number is larger than the last contained sequence number, irrespective of whether these transactions were previously transmitted, so that the responding node can receive all of these transactions in sequence number order even though some of these transactions may have been previously received in the responding node.
-
-
34. A method in a computer system for error-tolerant receipt and execution of an ordered series of transactions sent from an originating node to a responding node, comprising the steps of:
-
receiving batches of transactions from the originating node, each transaction having a sequence number; for each batch of transactions received; selecting each transaction included in the received batch that is consecutive to a last executed sequence number value; executing the selected transactions of the batch; ignoring the unselected transactions of the batch; and if any transactions are executed; transmitting to the originating node a confirmation containing the highest sequence number of the executed transactions, and setting the last executed sequence number value to the highest sequence number of the executed transactions, such that only received transactions that are consecutive to the last executed transaction are executed, and such that only executed transactions are confirmed so that any transactions subsequent to the last executed transactions are transmitted by the originating node in the next batch irrespective of whether such subsequent transactions have already been transmitted.
-
-
35. A computer-implemented method in an originating node for error-tolerant transmission of ordered transactions from the originating node to first and second responding nodes, the originating node maintaining a latest confirmed transaction for each of the first and second responding nodes, the method comprising:
-
(a) accumulating a first plurality of ordered transactions for transmission to the responding nodes, the first plurality comprising an initial transaction followed by a plurality of transactions ending with an intermediate transaction followed by a plurality of transactions ending with a last transaction; (b) transmitting as a group the first plurality of ordered transactions to each of the responding nodes; (c) receiving a single confirmation of processing the transactions in the transmitted group by the first responding node; (d) in response to step (c), setting the first responding node latest confirmed transaction to the last transaction; (e) receiving a single confirmation of processing all transactions from the initial transaction to the intermediate transaction by the second responding node; (f) in response to step (e), setting the second responding node latest confirmed transaction to the intermediate transaction; (g) accumulating a second plurality of ordered transactions; (h) transmitting as a group to the first responding node all transactions that accumulated after the first responding node latest confirmed transaction, such that only the second plurality of ordered transactions are transmitted; and (i) transmitting as an ordered group to the second responding node all transactions that accumulated after the second responding node latest confirmed transaction, such that both the transactions in the first plurality following the intermediate transaction and the second plurality of transactions are transmitted. - View Dependent Claims (36)
-
-
37. A computer memory containing a transaction processing status data structure usable by an originating node with a first plurality of ordered transactions to conduct error-tolerant transmission of transactions to first and second responding nodes, the first plurality comprising an initially accumulated transaction followed by a plurality of accumulated transactions ending with an intermediate transaction followed by a plurality of accumulated transactions ending with a last transaction, the data structure comprising:
-
a first responding node transaction value indicating a latest transaction whose processing by the first responding node has been confirmed, wherein, after the first plurality of ordered transactions is transmitted as a group to the first responding node and after a single confirmation is received from the first responding node of processing the transactions in the transmitted group, the first responding node transaction value indicates the last transaction; and a second responding node transaction value indicating a latest transaction whose processing by the second responding node has been confirmed, wherein, after the first plurality of ordered transactions is transmitted as a group to the second responding node and after a single confirmation is received from the second responding node of processing all transactions from the initial transaction to the intermediate transaction, the second responding node transaction value indicates the intermediate transaction, such that, after the originating node accumulates a second plurality of ordered transactions, the first responding node transaction value indicates that a group consisting only of the transactions in the second plurality of ordered transactions is to be transmitted to the first responding node and the second responding node transaction value indicates that an ordered group consisting of all transactions in the first plurality after the intermediate transaction and all transactions in the second plurality of transactions is to be transmitted to the second responding node. - View Dependent Claims (38)
-
-
39. A computer-readable medium containing instructions that cause an originating node to perform error-tolerant transmission of ordered transactions from the originating node to first and second responding nodes, the originating node maintaining a latest confirmed transaction for each of the first and second responding nodes, by performing the steps of:
-
(a) accumulating a first plurality of ordered transactions for transmission to the responding nodes, the first plurality comprising an initial transaction followed by a plurality of transactions ending with an intermediate transaction followed by a plurality of transactions ending with a last transaction; (b) transmitting as a group the first plurality of ordered transactions to each of the responding nodes; (c) receiving a single confirmation of processing the transactions in the transmitted group by the first responding node; (d) in response to step (c), setting the first responding node latest confirmed transaction to the last transaction; (e) receiving a single confirmation of processing all transactions from the initial transaction to the intermediate transaction by the second responding node; (f) in response to step (e), setting the second responding node latest confirmed transaction to the intermediate transaction; (g) accumulating a second plurality of ordered transactions; (h) transmitting as a group to the first responding node all transactions that accumulated after the first responding node latest confirmed transaction, such that only the second plurality of ordered transactions are transmitted; and (i) transmitting as an ordered group to the second responding node all transactions that accumulated after the second responding node latest confirmed transaction, such that both the transactions in the first plurality following the intermediate transaction and the second plurality of transactions are transmitted. - View Dependent Claims (40)
-
Specification