IP Library Granted Patent US 10,007,689
Granted Patent B1
US 10,007,689 · App. 14/214,204 · Granted Jun 26, 2018

Temporally consistent group keys

Inventors: Andrew Benjamin Ray (Bentonville, AR); Nathaniel Philip Troutman (Seattle, WA)
Assignee: Walmart Apollo, LLC
G06F17/30336
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,007,689
App. No.
14/214,204
Granted
Jun 26, 2018
Kind
B1
Abstract

The present disclosure extends to temporally consistent group keys for groups of linked records in a data store. In embodiments, records in the data store can be categorized as persistent or temporary. Each record carries a unique record identifier and a timestamp depicting the record's time of creation. The group key for a group is the record identifier for the oldest persistent record in the group. If a group has no persistent records, the group key is the record identifier for the oldest temporary record in the group. If two or more records have identical timestamps, the group key is the first record identifier in a lexicographical ordering of the record identifiers for records having the earliest timestamps.

Claims (55)

1. A computer-implemented method for adding a new record to a database comprising a plurality of records, each record comprising a record ID and being a member of a group, the method comprising:

at a computer processor of a record generator module, receiving data pertaining to the new record, the data comprising at least one parameter indicative of membership in a group;

at a computer processor of a record scanner module, identifying a group based on the at least one parameter;

at the computer processor of the record scanner module, identifying all records in the group based on the at least one parameter;

at a computer processor of a record evaluator module, retrieving an oldest record of the identified records in the group;

at the computer processor of the record generator module, setting a group key to be the record ID of the oldest record; and

at the computer processor of the record generator module, inserting the group key into the new record and then inserting the new record into the database.

2. The method of claim 1 , further comprising:

generating a unique record ID for the new record; and

inserting the unique record ID for the new record into the new record.

3. The method of claim 2 , wherein the unique record ID comprises a universally unique identifier.

4. The method of claim 1 , wherein each of the identified records in the group is a temporary record or a persistent record, and wherein retrieving the oldest record of the identified records in the group further comprises retrieving the oldest persistent record of the identified records in the group.

5. The method of claim 1 , wherein each of the identified records in the group is a temporary record or a persistent record, and wherein retrieving the oldest record of the identified records in the group further comprises:

determining that the group contains no persistent records; and

retrieving the oldest temporary record of the identified records in the group.

6. The method of claim 5 , further comprising:

inserting the record ID of the oldest record into all records in the group.

7. The method of claim 1 , wherein retrieving the oldest record of the identified records in the group further comprises:

comparing a timestamp of each one of the identified records in the group; and

identifying the oldest timestamp.

8. The method of claim 7 , further comprising:

identifying two or more of the identified records in the group that have the oldest timestamp; and

comparing a lexicographical order of a record ID of each one of the identified records in the group that have the oldest timestamp.

9. The method of claim 1 , further comprising:

at the computer processor of the record generator module, generating a timestamp; and

at the computer processor of the record generator module, inserting the timestamp into the new record.

10. A system for adding a new record to a database comprising a plurality of records, each record being a member of a group, the system comprising:

one or more record scanner processors and one or more record scanner processing memory devices operably coupled to the one or more record scanner processors and storing executable and operational record scanner data, the executable and operational record scanner data effective to cause the one or more record scanner processors to search for one or more previous records in the data record store and retrieve a selected parameter of one of the previous records, each one of the previous records comprising a unique record ID and a timestamp;

one or more record evaluator processors and one or more record evaluator processing memory devices operably coupled to the one or more record evaluator processors and storing executable and operational record evaluator data, the executable and operational record evaluator data effective to cause the one or more record evaluator processors to:

process a selected parameter of the one or more previous records to identify a group of previous records that the new record is a member of and

select the unique record ID of one of the previous records in the group to be a group key; and

one or more record generator processors and one or more record generator processing memory devices operably coupled to the one or more record generator processors and storing executable and operational record generator data, the executable and operational record generator data effective to cause the one or more record generator processors to generate the new record and then insert the new record into the database.

11. The system of claim 10 , wherein the executable and operational record evaluator data is effective to cause the one or more record evaluator processors to determine if any of the one or more previous records are persistent records.

12. The system of claim 10 , wherein the executable and operational record evaluator data is effective to cause the one or more record evaluator processors to compare timestamps of the one or more previous records to determine the oldest record.

13. The system of claim 10 , wherein the executable and operational record evaluator data is effective to cause the one or more record evaluator processors to compare lexicographical ordering of each record ID.

14. A computer-implemented method for updating an updated record in a database comprising a plurality of records, each record comprising a record ID and being a member of a group, the method comprising:

at a computer processor of a record generator module, receiving data pertaining to the updated record, the data comprising at least one parameter indicative of membership in a group;

at a computer processor of a record scanner module, identifying a group of the updated record based on the at least one parameter;

at a computer processor of a record evaluator module, retrieving an oldest record in the group;

at the computer processor of the record generator module, setting a group key to be the record ID of the oldest record; and

at the computer processor of the record generator module, inserting the group key into the updated record and then inserting the updated record into the data record store.

15. The method of claim 14 , further comprising:

generating a unique record ID for the updated record; and

inserting the unique record ID for the updated record into the updated record.

16. The method of claim 15 , wherein the unique record ID comprises a universally unique identifier.

17. The method of claim 14 , wherein each of the identified records in the group is a temporary record or a persistent record, and wherein retrieving the oldest record in the group further comprises retrieving the oldest persistent record in the group.

18. The method of claim 14 , wherein each of the identified records in the group is a temporary record or a persistent record, and wherein retrieving the oldest record in the group further comprises:

determining that the group contains no persistent records; and

retrieving the oldest temporary record of the identified records in the group.

19. The method of claim 14 , wherein retrieving the oldest record in the group further comprises:

comparing a timestamp of records in the group; and

identifying the oldest timestamp.

20. The method of claim 14 , further comprising:

at the computer processor of the record generator module, generating a timestamp; and

at the computer processor of the record generator module, inserting the timestamp into the new record.

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 Mar 17, 2014
From: RAY, ANDREW BENJAMIN; TROUTMAN, NATHANIEL PHILIP
To: WAL-MART STORES, INC.
Reel/Frame 032456/0926 →