# US 8,788,470 B2 · Allocating and managing random identifiers using a shared index set across products

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,470 B2
- Document ID: US8788470B2
- Status: Granted
- Kind: B2
- Application number: 13/618,078
- Filed: 2012-09-14
- Published: 2013-01-10
- Granted: 2014-07-22
- Earliest claimed: 2010-09-03
- Assignees: International Business Machines Corporation
- Applicants: Nisanth M. Simon
- Inventors: Nisanth M. Simon
- Web page: https://patentgrep.com/patent/US8788470B2

## CPC

- G06F 16/2228: {Indexing structures}
- G06Q 10/0833: Tracking
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Provided are techniques for selecting row identifiers from an initial index structure storing rows of randomized indexes. The row identifiers are randomized. Groups are formed with the randomized row identifiers so that each group has a predetermined number of row identifiers. At least one group is selected from the groups. Indexes are retrieved from the initial index structure that correspond to the row identifiers in the selected at least one group. The retrieved indexes are encoded by adding product information to form new identifiers.

## Claims

### Claim 1

A method, comprising:
selecting, using a processor of a computer, row identifiers from an initial index structure storing rows of randomized indexes;
randomizing the row identifiers;
selecting a set of the randomized row identifiers;
retrieving the randomized indexes from the initial index structure that correspond to the selected set of the randomized row identifiers; and
encoding the retrieved, randomized indexes to form identifiers.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
forming groups with the randomized row identifiers so that each group has a predetermined number of the randomized row identifiers;
selecting at least one group from the groups; and
selecting the set of the randomized row identifiers form the selected at least one group.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
randomizing the retrieved, randomized indexes;
selecting a number of the retrieved, randomized indexes;
encoding the selected number of the retrieved, randomized indexes; and
returning the encoded indexes in response to a request for a quantity of indexes.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
calculating a lower limit and an upper limit; and
using the lower limit and the upper limit to select the number of the retrieved, randomized indexes.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
randomizing the selected indexes; and
storing the randomized indexes in the initial index structure.

### Claim 6 (depends on 1)

The method of claim 1, wherein the initial index structure is shared by multiple products, and wherein the encoding identifies a particular product from the multiple products.

### Claim 7

A computer system, comprising:
a processor; and
a storage device coupled to the processor, wherein the storage device stores a computer program, and wherein the processor executes the computer program to perform operations, the operations comprising:
selecting row identifiers from an initial index structure storing rows of randomized indexes;
randomizing the row identifiers;
selecting a set of the randomized row identifiers;
retrieving the randomized indexes from the initial index structure that correspond to the selected set of the randomized row identifiers; and
encoding the retrieved, randomized indexes to form identifiers.

### Claim 8 (depends on 7)

The computer system of claim 7, further comprising:
forming groups with the randomized row identifiers so that each group has a predetermined number of the randomized row identifiers;
selecting at least one group from the groups; and
selecting the set of the randomized row identifiers form the selected at least one group.

### Claim 9 (depends on 7)

The computer system of claim 7, further comprising:
randomizing the retrieved, randomized indexes;
selecting a number of the retrieved, randomized indexes;
encoding the selected number of the retrieved, randomized indexes; and
returning the encoded indexes in response to a request for a quantity of indexes.

### Claim 10 (depends on 9)

The computer system of claim 9, further comprising:
calculating a lower limit and an upper limit; and
using the lower limit and the upper limit to select the number of the retrieved, randomized indexes.

### Claim 11 (depends on 7)

The computer system of claim 7, further comprising:
randomizing the selected indexes; and
storing the randomized indexes in the initial index structure.

### Claim 12 (depends on 7)

The computer system of claim 7, wherein the initial index structure is shared by multiple products, and wherein the encoding identifies a particular product from the multiple products.

### Claim 13

A computer program product comprising a non-transitory computer readable storage medium including a computer readable program, wherein the computer readable program when executed by a processor on a computer causes the computer to perform:
selecting row identifiers from an initial index structure storing rows of randomized indexes;
randomizing the row identifiers;
selecting a set of the randomized row identifiers;
retrieving the randomized indexes from the initial index structure that correspond to the selected set of the randomized row identifiers; and
encoding the retrieved, randomized indexes to form identifiers.

### Claim 14 (depends on 13)

The computer program product of claim 13, further comprising:
forming groups with the randomized row identifiers so that each group has a predetermined number of the randomized row identifiers;
selecting at least one group from the groups; and
selecting the set of the randomized row identifiers form the selected at least one group.

### Claim 15 (depends on 13)

The computer program product of claim 13, further comprising:
randomizing the retrieved, randomized indexes;
selecting a number of the retrieved, randomized indexes;
encoding the selected number of the retrieved, randomized indexes; and
returning the encoded indexes in response to a request for a quantity of indexes.

### Claim 16 (depends on 15)

The computer program product of claim 15, further comprising:
calculating a lower limit and an upper limit; and
using the lower limit and the upper limit to select the number of the retrieved, randomized indexes.

### Claim 17 (depends on 13)

The computer program product of claim 13, further comprising:
randomizing the selected indexes; and
storing the randomized indexes in the initial index structure.

### Claim 18 (depends on 13)

The computer program product of claim 13, wherein the initial index structure is shared by multiple products, and wherein the encoding identifies a particular product from the multiple products.
