IP Library Granted Patent US 7,096,236
Granted Patent B2
US 7,096,236 · App. 09/993,939 · Granted Aug 22, 2006

Change sequence number generator

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,096,236
App. No.
09/993,939
Granted
Aug 22, 2006
Kind
B2
Abstract

A directory server including a supplier server, a consumer server in communication with the supplier server, a plurality of pluggable services that manage replication of data contained within the directory server from the supplier server to the consumer server, and a change sequence number used to determine ordering of operations performed on the consumer server. Replication of data is managed using the change sequence number.

Claims (34)

1. A directory server comprising:

a supplier server;

a consumer server in communication with the supplier server;

a plurality of pluggable services that manage replication of data contained within the directory server from the supplier server to the consumer server; and

a change sequence number used to determine ordering of operations performed on the consumer server;

wherein the replication of data is managed using the change sequence number;

wherein the change sequence number is a tuple comprising a timestamp portion, a sequence number portion, a replica identifier portion, and a sub-sequence number portion, and wherein the timestamp portion comprises a network offset component, wherein the network offset component is incremented when a first logical time on the consumer server is greater than a second logical time on the supplier server.

2. The directory server of claim 1 , wherein the highest value of the change sequence number is maintained in stable storage.

3. The directory server of claim 1 , wherein the timestamp portion is represented by logical time and is thirty-two bits in length.

4. The directory server of claim 1 , wherein the sequence number portion is generated by an incremental counter and is sixteen bits in length.

5. The directory server of claim 1 , wherein the replica identifier portion denotes an identifier of the consumer server that generated the change sequence number and is sixteen bits in length.

6. The directory server of claim 1 , wherein the sub-sequence number is used to order operations within a single operation and is sixteen bits in length.

7. The directory server of claim 1 , wherein the change sequence number is assigned when an entry is modified by a client.

8. A method of generating a change sequence number, comprising:

initializing the change sequence number;

retrieving a timestamp portion, wherein the timestamp portion comprises a network offset component, wherein the network offset component is incremented when a first logical time on a first server is greater than a second logical time on a second server;

retrieving a sequence number portion;

retrieving a replica identifier portion;

retrieving a sub-sequence number portion; and

wherein the timestamp portion, the sequence number portion, the replica identifier portion, and the sub-sequence number portion are joined into a tuple that forms the change sequence number.

9. The method of claim 8 , further comprising:

maintaining a highest value of the change sequence number in stable storage.

10. The method of claim 8 , wherein the timestamp portion is represented by logical time and is thirty-two bits in length.

11. The method of claim 8 , wherein the sequence number portion is generated by an incremental counter and is sixteen bits in length.

12. The method of claim 8 , wherein the replica identifier portion denotes an identifier of a server that generated the change sequence number and is sixteen bits in length.

13. The method of claim 8 , wherein the sub-sequence number portion is used to order operations within a single operation and is sixteen bits in length.

14. The method of claim 8 , wherein the change sequence number is assigned when an entry is modified by a client.

15. An apparatus for generating a change sequence number, comprising:

means for initializing the change sequence number;

means for retrieving a timestamp portion;

means for retrieving a sequence number portion;

means for retrieving a replica identifier portion;

means for retrieving a sub-sequence number portion; and

means for joining the timestamp portion, the sequence number portion, the replica identifier portion, and the sub-sequence portion into a tuple that forms the change sequence number, wherein the timestamp portion comprises a network offset component, wherein the network offset component is incremented when a first logical time on a first server is greater than a second logical time on a second server.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0579 →