IP Library Granted Patent US 10,789,320
Granted Patent B2
US 10,789,320 · App. 15/533,267 · Granted Sep 29, 2020

System and method for generating globally-unique identifiers

Inventors: Kevin M. Charles (Bentonville, AR); Richard T. Jackson (Bentonville, AR); John Randy Frerking (Bentonville, AR)
Assignee: Walmart Apollo, LLC
G06F16/955G06Q10/10H04L67/32
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 10,789,320
App. No.
15/533,267
Granted
Sep 29, 2020
Kind
B2
Abstract

A system and method for producing a new globally-unique identifier (GUID) format that may be used, for instance, to uniquely identify a number of different items in a distributed computer system, such as transactions in an e-commerce system, sessions in a cloud-based computing system, and identifiers for unique customers in an ecommerce system, among others. The unique ID may have one of a number of different formats that may be generated upon receiving a request for an ID. For instance, the GUID may be generated in a plain hex format, a GUID format, ESS, and B64B (Base64Binaty) format. The new format may be generated based on information relating to a site ID, an absolute time, and a sequential counter, that ensures that no two GUIDs are the same. Further, the system may be capable of issuing multiple GUIDs within a single command, such as may be required to generate an array of GUIDs.

Claims (45)

1. A system for generating a plurality of globally-unique identifiers (GUIDs), the system comprising:

a memory;

an interface adapted to receive one or more requests for at least one GUID from at least one of a plurality of executing applications;

a first processing component configured to generate, based on the one or more requests, a first GUID among the plurality of GUIDs; and

a second processing component configured to generate a second GUID among the plurality of GUIDs,

wherein the interface is further configured to communicate the first GUID to the at least one of the plurality of executing applications, and

wherein each one of the GUIDs generated by the first processing component and each one of the GUIDs generated by the second processing component is unique and determined based on:

a first site identifier unique to the location of the first processing component for GUIDs generated by the first processing component, a second site identifier unique to the location of the second processing component for GUIDs generated by the second processing component,

an absolute time value, and

a counter shared between the first processing component and the second processing component.

2. The system according to claim 1 , wherein the one or more requests for at least one GUID are alternatively processed by the first processing component and the second processing component.

3. The system according to claim 1 , wherein the counter is located in a shared memory associated with the first processing component and the second processing component.

4. The system according to claim 1 , wherein the absolute time value is shared between the first processing component and the second processing component.

5. The system according to claim 4 , wherein the absolute time value includes a shared system clock that is shared by the first processing component and the second processing component.

6. The system according to claim 4 , wherein the counter is incremented upon the generation of at least two GUIDs having a same indication of time value.

7. The system according to claim 1 , wherein the one or more requests each comprises a command specifying an output format of the at least one GUID, and wherein the command indicates at least one of a plurality of selectable formats specified by at least one requesting entity.

8. The system according to claim 7 , wherein the first processing component generates the requested at least one GUID based on information within the command indicating at least one of a plurality of selectable formats.

9. The system according to claim 8 , wherein the plurality of selectable formats includes at least one of:

a plain hexadecimal format;

a conventional GUID format;

an ESS format;

and a B64B format.

10. The system according to claim 7 , wherein the command specifies whether the generated at least one GUID is journaled to a central database of GUIDs.

11. A system for generating a plurality of globally-unique identifiers (GUIDs), the system comprising:

a memory;

an interface adapted to receive at least one request for multiple GUIDs from at least one plurality of requesting entities, wherein the at least one request includes an indication of a request for generating the multiple GUIDs; and

a first processing component that adaptively generates the requested multiple GUIDs, wherein the interface is adapted to communicate the multiple GUIDs to the at least one of the requesting entities, wherein each one of the requested multiple GUIDs is unique and determined based on:

a site identifier unique to the location of the processing component,

an absolute time value shared between the first processing component and a second processing component, and

a counter shared between the first processing component and the second processing component.

12. The system according to claim 11 , wherein the first processing component is adapted to generate the requested multiple GUIDs within a single processing action.

13. The system according to claim 11 , wherein the first processing component is adapted to generate the requested multiple GUIDs within a single clock cycle.

14. The system according to claim 11 , wherein the first processing component is adapted to generate a data structure including the multiple GUIDs.

15. The system according to claim 11 , wherein the first processing component is adapted to generate the requested multiple GUIDs responsive to a single request to generate the multiple GUIDs.

16. A method comprising:

receiving one or more requests for at least one of a plurality of globally-unique identifiers (GUIDs) from at least one of a plurality of executing applications;

adaptively generating, by a first processor, the requested at least one GUID, wherein the interface is adapted to communicate the at least one GUID to the at least one of the plurality of executing applications;

adaptively generating, by a second processor, at least one other GUID among the plurality of GUIDs, wherein each one of the plurality of GUIDs generated by the first processor and the second processor is unique and determined based on:

a first site identifier unique to the location of the first processor for GUIDs generated by the first processor, a second site identifier unique to the location of the second processor for GUIDs generated by the second processor,

an absolute time value, and

a counter shared between the first processor and the second processor.

17. The method according to claim 16 , wherein the one or more requests for at least one GUID are alternatively processed by the first processor and the second processor.

18. The method according to claim 16 , wherein the counter is located in a shared memory associated with the first processor and the second processor.

19. The method according to claim 16 , wherein the absolute time value includes a shared system clock that is shared by the first processor and the second processor.

20. The method according to claim 19 , further comprising an act of changing a value of the counter responsive to a generation of at least two GUIDs having a same indication of time value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2018
From: WAL-MART STORES, INC.
To: WALMART APOLLO, LLC
Reel/Frame 045949/0126 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: CHARLES, KEVIN M.; JACKSON, RICHARD T.; FRERKING, JOHN RANDY
To: WAL-MART STORES, INC.
Reel/Frame 045186/0150 →
Continuity (2)
Provisional Application 62088414 · Dec 5, 2014
Related Publication 20170364601A1 · Dec 21, 2017
Cited By (1)
US 12,574,246