Browse Prior Art Database

Unique Identifier Generation

IP.com Disclosure Number: IPCOM000014732D
Original Publication Date: 1999-Nov-01
Included in the Prior Art Database: 2003-Jun-20
Document File: 1 page(s) / 25K

Publishing Venue

IBM

Related People

Natalia Maclinovsky: AUTHOR

Abstract

This article describes generating a unique identifier (UID). It is unique across multiple computers, multiple processes and threads within one computer, and time. It is possible to store and use UID as a string. Size of UID is minimised. The algorithm uses computer IP address, process ID, Time Stamp and counter to generate a UID. IP address, process ID and Time Stamp are retrieved from a operating system. Counter is maintained internally. Those numbers are stored in a buffer (B) as binary data. The buffer B is 14 bytes long. The binary data can contain NULLs which would make it impossible to use the UID as a string. To overcome this problem a "null removing" algorithm was developed. It scanns the generated buffer B and replaces all nulls found with value 0xFF. To maintain uniqueness an additional byte (B1) is used. It is initialised to binary 11111111. For each null in B replaced with 0xFF the corresponding bit in B1 is set to 0. We assume that IP address does not contain nulls. Counter is maintained in such a way that it does not contain nulls either. It means that the additional byte B1 provides enough storage to insure uniqueness. This byte is appended to the end of buffer B.B+B1is15 byte long string which sutisfies the original requirement. Variation of this algorithm could remove assumption that IP address does not contain nulls. In this case the string generated will be 16 bytes long. 1

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 100% of the total text.

Page 1 of 1

Unique Identifier Generation

   This article describes generating a unique identifier (UID). It is unique
across multiple computers, multiple processes and threads within one computer,
and time. It is possible to store and use UID as a string. Size of UID is
minimised.

The algorithm uses computer IP address, process ID, Time Stamp and counter to
generate a UID. IP address, process ID and Time Stamp are retrieved from a
operating system. Counter is maintained internally. Those numbers are stored
in a buffer (B) as binary data. The buffer B is 14 bytes long. The binary data
can contain NULLs which would make it impossible to use the UID as a string.
To overcome this problem a "null removing" algorithm was developed. It scanns
the generated buffer B and replaces all nulls found with value 0xFF. To
maintain uniqueness an additional byte (B1) is used. It is initialised to
binary 11111111. For each null in B replaced with 0xFF the corresponding bit
in B1 is set to 0. We assume that IP address does not contain nulls. Counter
is maintained in such a way that it does not contain nulls either. It means
that the additional byte B1 provides enough storage to insure uniqueness. This
byte is appended to the end of buffer B.B+B1is15 byte long string which
sutisfies the original requirement. Variation of this algorithm could remove
assumption that IP address does
not contain nulls. In this case the string generated will be 16 bytes long.

1