# US 11,308,047 B2 · Data access and recommendation system

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

- Number: US 11,308,047 B2
- Document ID: US11308047B2
- Status: Granted
- Kind: B2
- Application number: 16/816,511
- Filed: 2020-03-12
- Published: 2021-09-16
- Granted: 2022-04-19
- Earliest claimed: 2020-03-12
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Panfeng Zhou; Vivek Kandiyanallur; Colin Florendo; Robert Schulze; Zheng-Wei She; Yanhong Wang; Amarnadh Sai Eluri
- Web page: https://patentgrep.com/patent/US11308047B2

## CPC

- G06F 16/213: {with details for schema evolution support}
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2255: {Hash tables}
- G06N 5/04: Inference or reasoning models
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

System, method, and various embodiments for providing a data access and recommendation system are described herein. An embodiment operates by identifying a column access of one or more data values of a first column of a plurality of columns of a table of a database during a sampling period. A count of how many of the one or more data values are accessed during the column access are recorded. A first counter, corresponding to the first column and stored in a distributed hash table, is incremented by the count. The sampling period is determined to have expired. A load recommendation on how to load data values into the first column based on the first counter is computed. The load recommendation for implementation into the database for one or more subsequent column accesses is provided.

## Claims

### Claim 1

A method comprising:
identifying, by a processor, a column access of one or more data values of a first column of a plurality of columns of a table of a database during a sampling period;
recording a count of how many of the one or more data values are accessed during the column access;
incrementing a first counter, corresponding to the first column and stored in a distributed hash table, by the count, wherein the distributed hash table stores a plurality of other counters corresponding to each of the plurality of columns of the table;
determining that the sampling period has expired;
computing a load recommendation on how to load data values into the first column based on the first counter, wherein the load recommendation includes at least one of a full load of data values recommendation or a partial load of data values recommendation; and
providing the load recommendation for implementation into the database for one or more subsequent column accesses.

### Claim 2 (depends on 1)

The method of claim 1, wherein the computing comprises:
computing the load recommendation based on both a second counter corresponding to the first column, and the first counter, wherein the first counter and the second counter each count different types of column accesses that occurred on the first column during the sampling period.

### Claim 3 (depends on 1)

The method of claim 1, wherein the database comprises a column-oriented database, wherein the one or more data values of the first column are loaded from a disk storage location into a memory location.

### Claim 4 (depends on 3)

The method of claim 3, wherein the full load of data values recommendation comprises that when the one or more data values of the first column are loaded from the disk storage location into the memory location, all of the data values of the first column are copied into the memory location.

### Claim 5 (depends on 4)

The method of claim 4, wherein the partial load of data values recommendation comprises that when the one or more data values of the first column are loaded from the disk storage location into the memory location, only a subset less than all of the data values of the first column are copied into the memory location.

### Claim 6 (depends on 1)

The method of claim 1, wherein the computing comprises:
computing a granularity recommendation, included with the load recommendation, that all of the plurality of columns of the table use the same load recommendation.

### Claim 7 (depends on 1)

The method of claim 1, wherein the computing comprises:
computing a granularity recommendation, included with the load recommendation, that all of the plurality of columns of a plurality of tables of the database using a similar schema use the same load recommendation.

### Claim 8 (depends on 1)

The method of claim 1, wherein the computing comprises:
computing the load recommendation based at least in part on a column density corresponding to the first column, wherein the column density indicates a number of values of the first column are accessed relative to a total data size of the first column.

### Claim 9

A system comprising:
a memory; and
at least one processor coupled to the memory and configured to perform operations comprising:
identifying, by the at least one processor, a column access of one or more data values of a first column of a plurality of columns of a table of a database during a sampling period;
recording a count of how many of the one or more data values are accessed during the column access;
incrementing a first counter, corresponding to the first column and stored in a distributed hash table, by the count, wherein the distributed hash table stores a plurality of other counters corresponding to each of the plurality of columns of the table;
determining that the sampling period has expired;
computing a load recommendation on how to load data values into the first column based on the first counter, wherein the load recommendation includes at least one of a full load of data values recommendation or a partial load of data values recommendation; and
providing the load recommendation for implementation into the database for one or more subsequent column accesses.

### Claim 10 (depends on 9)

The system of claim 9, wherein the computing comprises:
computing the load recommendation based on both a second counter corresponding to the first column, and the first counter, wherein the first counter and the second counter each count different types of column accesses that occurred on the first column during the sampling period.

### Claim 11 (depends on 9)

The system of claim 9, wherein the database comprises a column-oriented database, wherein the one or more data values of the first column are loaded from a disk storage location into a memory location.

### Claim 12 (depends on 11)

The system of claim 11, wherein the full load of data values recommendation comprises that when the one or more data values of the first column are loaded from the disk storage location into the memory location, all of the data values of the first column are copied into the memory location.

### Claim 13 (depends on 12)

The system of claim 12, wherein the partial load of data values recommendation comprises that when the one or more data values of the first column are loaded from the disk storage location into the memory location, only a subset less than all of the data values of the first column are copied into the memory location.

### Claim 14 (depends on 9)

The system of claim 9, wherein the computing comprises:
computing a granularity recommendation, included with the load recommendation, that all of the plurality of columns of the table use the same load recommendation.

### Claim 15 (depends on 9)

The system of claim 9, wherein the computing comprises:
computing a granularity recommendation, included with the load recommendation, that all of the plurality of columns of a plurality of tables of the database using a similar schema use the same load recommendation.

### Claim 16 (depends on 9)

The system of claim 9, wherein the computing comprises:
computing the load recommendation based at least in part on a column density corresponding to the first column, wherein the column density indicates a number of values of the first column are accessed relative to a total data size of the first column.

### Claim 17

A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
identifying a column access of one or more data values of a first column of a plurality of columns of a table of a database during a sampling period;
recording a count of how many of the one or more data values are accessed during the column access;
incrementing a first counter, corresponding to the first column and stored in a distributed hash table, by the count, wherein the distributed hash table stores a plurality of other counters corresponding to each of the plurality of columns of the table;
determining that the sampling period has expired;
computing a load recommendation on how to load data values into the first column based on the first counter, wherein the load recommendation includes at least one of a full load of data values recommendation or a partial load of data values recommendation; and
providing the load recommendation for implementation into the database for one or more subsequent column accesses.

### Claim 18 (depends on 17)

The device of claim 17, wherein the computing comprises:
computing the load recommendation based on both a second counter corresponding to the first column, and the first counter, wherein the first counter and the second counter each count different types of column accesses that occurred on the first column during the sampling period.

### Claim 19 (depends on 17)

The device of claim 17, wherein the database comprises a column-oriented database, wherein the one or more data values of the first column are loaded from a disk storage location into a memory location.

### Claim 20 (depends on 19)

The device of claim 19, wherein the full load of data values recommendation comprises that when the one or more data values of the first column are loaded from the disk storage location into the memory location, all of the data values of the first column are copied into the memory location.
