Record tracking in database replication
First Claim
1. In a distributed database in which a plurality of replicas are stored on different servers connected to a network, and in which users access the replicas from a plurality of clients connected to the network, a computer implemented method of storing per user read/unread data indicating which of a plurality of records in the database have been read by particular users, the method comprising:
- storing a first copy of the per user read/unread data on a first server;
determining the identity of a second server on which an accessed replica is stored;
copying the first copy of the per user read/unread data for that user from the first server to the second server to create a replica copy of the data;
updating the replica copy of the per user read/unread data on the second server to reflect records read by the user on the replica stored on the second server, andupdating the first copy of the per user read/unread data with changes made to the replica copy of the per user read/unread data.
2 Assignments
0 Petitions
Accused Products
Abstract
In a one aspect, a technique for tracking the status of records in replicated databases. Sets of identifiers (e.g., record identifiers or change numbers) are stored by individual replicas, and in some cases conveyed between replicas. The sets comprise lists of intervals, with each interval being either a single number (in the case of the interval containing only one identifier) or a pair of numbers representing the low and high bounds of the interval. Stored as lists of intervals, the sets can usually be efficiently compressed for compact storage or transmission. The technique is particularly useful for tracking the status of message records in distributed messaging systems. It is also particularly useful in "push" replication schemes as the status information represented by the sets of identifiers can be replicated simply by each replica sending its set of identifiers to other replicas. In a second aspect, a technique for handling per user read/unread data in a distributed database such as a client/server messaging system, particularly server transparent distributed databases, in which the replica server accessed by a user can change transparently to the user. Copies of the per user read/unread data are stored on a first server (e.g., the user'"'"'s home server on which the user'"'"'s mailbox is stored in a messaging system) and on the replica server currently accessed by the user. Changes made to the replica copy to reflect records read by the user are written back to the copy stored on the first server.
136 Citations
51 Claims
-
1. In a distributed database in which a plurality of replicas are stored on different servers connected to a network, and in which users access the replicas from a plurality of clients connected to the network, a computer implemented method of storing per user read/unread data indicating which of a plurality of records in the database have been read by particular users, the method comprising:
-
storing a first copy of the per user read/unread data on a first server; determining the identity of a second server on which an accessed replica is stored; copying the first copy of the per user read/unread data for that user from the first server to the second server to create a replica copy of the data; updating the replica copy of the per user read/unread data on the second server to reflect records read by the user on the replica stored on the second server, and updating the first copy of the per user read/unread data with changes made to the replica copy of the per user read/unread data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program, residing on a computer readable medium, for storing per user read/unread data for the records of a distributed database in which a plurality of replicas are stored on different servers connected to a network, and in which users access the replicas from a plurality of clients connected to the network, the computer program comprising instructions for:
-
storing a first copy of the per user read/unread data on a first server; determining the identity of a second server on which the accessed replica is stored; copying the first copy of the per user read/unread data for that user from the first server to the second server to create a replica copy of the data; updating the replica copy of the per user read/unread data on the second server to reflect records read by the user on the replica stored on the second server; and updating the first copy of the per user read/unread data with changes made to the replica copy of the per user read/unread data. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A method for tracking the status of records in a distributed database in which a plurality of replicas are stored on different servers connected to a network, a method of storing a set of identifiers, the method comprising:
-
using an interval to represent a series of identifiers in the set; describing the interval with a low and a high bound, the low bound being a number representative of the smallest number in the series of identifiers; and the high bound being a number representative of the largest number in the series of identifiers. - View Dependent Claims (40, 41, 42, 43, 44)
-
-
45. A computer program, resident on a computer readable medium, for a distributed database in which a plurality of replicas are stored on different servers connected to a network, the computer program comprising instructions for:
-
storing sets of identifiers to identify selected records of the database; using an interval to represent a series of identifiers in the set; describing the interval with a low and a high bound, the low bound being a number representative of the smallest number in the series of identifiers; and the high bound being a number representative of the largest number in the series of identifiers. - View Dependent Claims (46, 47, 48, 49, 50, 51)
-
Specification