Generating unique identifiers in a computer system
First Claim
1. A method for creating a series of unique identifiers using a processor coupled to volatile memory and to at least one block of non-volatile memory, the method comprising the steps of:
- storing a predetermined identifier in said non-volatile memory and in said volatile memory;
setting a bit string in said non-volatile memory to a first logical value;
setting a number subfield and a range subfield, together comprising an extension field in said volatile memory, to a second logical value; and
generating a monotonic sequence of said unique identifiers by repetitively performing the steps of;
incrementing said number subfield;
creating said unique identifier by concatenating said predetermined identifier and said extension field; and
when said number subfield contains all of the first logical value, performing the steps of;
setting to the second logical value, a next sequential bit in the bit string in said non-volatile memory;
incrementing said range subfield in said volatile memory; and
resetting said number subfield to the second logical value.
1 Assignment
0 Petitions
Accused Products
Abstract
Generating unique identifiers (UUIDs) for software objects and other components in a network in which a large number of components may exist simultaneously and/or over a period of time. UUIDs generated by a particular product are divided into two sub-fields. One sub-field is stored in non-volatile memory, and incremented infrequently. The other sub-field is stored in volatile memory, that can be incremented frequently. During operation, the product creating the UUIDs generates new UUIDs by incrementing the field stored in volatile memory. When overflow of the volatile memory field occurs, the field stored in non-volatile memory is incremented. A block of non-volatile memory is initialized to all of a first logical state, and the bits therein are then sequentially cleared to generate a subsequent unique identifier. The present system provides the equivalent of a counter that can count up to the number of available bits in non-volatile memory plus one, while reducing the number of non-volatile memory erase cycles to one cycle for each time all the bits are cleared.
29 Citations
38 Claims
-
1. A method for creating a series of unique identifiers using a processor coupled to volatile memory and to at least one block of non-volatile memory, the method comprising the steps of:
-
storing a predetermined identifier in said non-volatile memory and in said volatile memory;
setting a bit string in said non-volatile memory to a first logical value;
setting a number subfield and a range subfield, together comprising an extension field in said volatile memory, to a second logical value; and
generating a monotonic sequence of said unique identifiers by repetitively performing the steps of;
incrementing said number subfield;
creating said unique identifier by concatenating said predetermined identifier and said extension field; and
when said number subfield contains all of the first logical value, performing the steps of;
setting to the second logical value, a next sequential bit in the bit string in said non-volatile memory;
incrementing said range subfield in said volatile memory; and
resetting said number subfield to the second logical value. - View Dependent Claims (2, 3)
-
-
4. A method for creating a series of unique identifiers using a processor coupled to volatile memory and to at least one block of non-volatile memory, the method comprising the steps of:
-
storing a predetermined identifier in said non-volatile memory and in said volatile memory;
setting a bit string in said non-volatile memory to a value of all of a first logical value;
setting a counter in said non-volatile memory to a value of a second logical value;
setting a number subfield and a range subfield, together comprising an extension field in said volatile memory, to the second logical value; and
generating a monotonic sequence of said unique identifiers by repetitively performing the steps of;
incrementing said number subfield;
creating said unique identifier by concatenating said predetermined identifier and said extension field; and
when said number subfield contains all of the first logical value, performing the steps of;
incrementing said range subfield in said volatile memory; and
resetting said number subfield to the second logical value;
setting to second logical value, a next sequential bit in the bit string in said non-volatile memory; and
when said bit string in said non-volatile memory contains all of the second logical value, performing the steps of;
incrementing counter in said non-volatile memory; and
resetting said bit string to all of the first logical value. - View Dependent Claims (5, 6)
-
-
7. A system for generating a series of unique identifiers for use in a computer network, the system comprising:
-
volatile memory containing one of the unique identifiers comprising a predetermined identifier and a field including a number subfield and a range subfield;
non-volatile memory containing a copy of said predetermined identifier and bit string representing a value of said range subfield; and
a processor coupled to said volatile memory and said non-volatile memory;
wherein said system generates a monotonic sequence of said unique identifiers by incrementing said number subfield. - View Dependent Claims (8, 9, 10)
-
-
11. A system for generating a series of unique identifiers for use in a computer network, the system comprising:
-
volatile memory containing one of the unique identifiers comprising a predetermined identifier and a field including a number subfield and a range subfield;
non-volatile memory containing a copy of said predetermined identifier and bit string representing a value of said range subfield; and
a processor coupled to said volatile memory and said non-volatile memory;
wherein said system generates a monotonic sequence of said unique identifiers by incrementing said number subfield;
wherein, when said number subfield contains all of a first logical value, a bit in the bit string in said non-volatile memory is set to a second logical value;
said range subfield is incremented; and
said number subfield is reset to the second logical value; and
wherein, a value for said one of the unique identifiers is determined by storing, in said range subfield, the binary equivalent of the number of the second logical value bits in the bit string in said non-volatile memory. - View Dependent Claims (12)
-
-
13. A system for generating a series of unique identifiers for use in a computer network, the system comprising:
-
volatile memory containing one of the unique identifiers comprising a predetermined identifier and a field including a number subfield and a range subfield;
non-volatile memory containing a counter, a copy of said predetermined identifier and bit string representing a value of said range subfield; and
a processor coupled to said volatile memory and said non-volatile memory;
wherein said system generates a monotonic sequence of said unique identifiers by incrementing said number subfield;
wherein, when said number subfield contains all of a first logical value, a bit in the bit string in said non-volatile memory is set to a second logical value;
said range subfield is incremented; and
said number subfield is reset to the second logical value; and
wherein, when said bit string in said non-volatile memory contains all of the second logical value, the counter in said non-volatile memory is incremented and the bit string in said non-volatile memory is set to all of the first logical value. - View Dependent Claims (14, 15)
-
-
16. A method for creating a series of unique identifiers using a processor coupled to volatile memory and to at least one block of non-volatile memory, the method comprising the steps of:
-
storing a predetermined identifier and a field including a number subfield and a range subfield in said volatile memory;
storing a copy of the predetermined identifier and a bit string representing a value of the range subfield in said non-volatile memory; and
generating identifiers by stepping the value of the range subfield. - View Dependent Claims (17)
-
-
18. A system to create a series of unique identifiers comprising:
-
volatile memory to store a predetermined identifier and a field including a number subfield and a range subfield;
non-volatile memory to store a copy of the predetermined identifier and a bit string representing a value of the range subfield; and
a processor for generating identifiers by stepping the value of the range subfield. - View Dependent Claims (19)
-
-
20. A method for creating a series of unique identifiers using a processor coupled to faster memory and to at least one block of slower memory, the method comprising the steps of:
-
storing a predetermined identifier in said slower memory and in said faster memory;
setting a bit string in said slower memory to a first logical value;
setting a number subfield and a range subfield, together comprising an extension field in said faster memory, to a second logical value; and
generating a monotonic sequence of said unique identifiers by repetitively performing the steps of;
incrementing said number subfield;
creating said unique identifier by concatenating said predetermined identifier and said extension field; and
when said number subfield contains all of the first logical value, performing the steps of;
setting to the second logical value, a next sequential bit in the bit string in said slower memory;
incrementing said range subfield in said faster memory; and
resetting said number subfield to the second logical value. - View Dependent Claims (21, 22)
-
-
23. A method for creating a series of unique identifiers using a processor coupled to faster memory and to at least one block of slower memory, the method comprising the steps of:
-
storing a predetermined identifier in said slower memory and in said faster memory;
setting a bit string in said slower memory to a value of all of a first logical value;
setting a counter in said slower memory to a value of a second logical value;
setting a number subfield and a range subfield, together comprising an extension field in said faster memory, to the second logical value; and
generating a monotonic sequence of said unique identifiers by repetitively performing the steps of;
incrementing said number subfield;
creating said unique identifier by concatenating said predetermined identifier and said extension field; and
when said number subfield contains all of the first logical value, performing the steps of;
incrementing said range subfield in said faster memory; and
resetting said number subfield to the second logical value;
setting to second logical value, a next sequential bit in the bit string in said slower memory; and
when said bit string in said slower memory contains all of the second logical value, performing the steps of;
incrementing counter in said slower memory; and
resetting said bit string to all of the first logical value. - View Dependent Claims (24, 25)
-
-
26. A system for generating a series of unique identifiers for use in a computer network, the system comprising:
-
faster memory containing one of the unique identifiers comprising a predetermined identifier and a field including a number subfield and a range subfield;
slower memory containing a copy of said predetermined identifier and bit string representing a value of said range subfield; and
a processor coupled to said faster memory and said slower memory;
wherein said system generates a monotonic sequence of said unique identifiers by incrementing said number subfield. - View Dependent Claims (27, 28, 29)
-
-
30. A system for generating a series of unique identifiers for use in a computer network, the system comprising:
-
faster memory containing one of the unique identifiers comprising a predetermined identifier and a field including a number subfield and a range subfield;
slower memory containing a copy of said predetermined identifier and bit string representing a value of said range subfield; and
a processor coupled to said faster memory and said slower memory;
wherein said system generates a monotonic sequence of said unique identifiers by incrementing said number subfield;
wherein, when said number subfield contains all of a first logical value, a bit in the bit string in said slower memory is set to a second logical value;
said range subfield is incremented; and
said number subfield is reset to the second logical value; and
wherein, a value for said one of the unique identifiers is determined by storing, in said range subfield, the binary equivalent of the number of the second logical value bits in the bit string in said slower memory. - View Dependent Claims (31)
-
-
32. A system for generating a series of unique identifiers for use in a computer network, the system comprising:
-
faster memory containing one of the unique identifiers comprising a predetermined identifier and a field including a number subfield and a range subfield;
slower memory containing a counter, a copy of said predetermined identifier and bit string representing a value of said range subfield; and
a processor coupled to said faster memory and said slower memory;
wherein said system generates a monotonic sequence of said unique identifiers by incrementing said number subfield;
wherein, when said number subfield contains all of a first logical value, a bit in the bit string in said slower memory is set to a second logical value;
said range subfield is incremented; and
said number subfield is reset to the second logical value; and
wherein, when said bit string in said slower memory contains all of the second logical value, the counter in said slower memory is incremented and the bit string in said slower memory is set to all of the first logical value. - View Dependent Claims (33, 34)
-
-
35. A method for creating a series of unique identifiers using a processor coupled to faster memory and to at least one block of slower memory, the method comprising the steps of:
-
storing a predetermined identifier and a field including a number subfield and a range subfield in said faster memory;
storing a copy of the predetermined identifier and a bit string represnting a value of the range subfield in said slower memory; and
generating identifiers by stepping the value of the range subfield. - View Dependent Claims (36)
-
-
37. A system to create a series of unique identifiers comprising:
-
faster memory to store a predetermined identifier and a field including a number subfield and a range subfield;
slower memory to store a copy of the predetermined identifier and a bit string representing a value of the range subfield; and
a processor for generating identifiers by stepping the value of the range subfield. - View Dependent Claims (38)
-
Specification