# US 12,001,335 B2 · In-memory normalization of cached objects to reduce cache memory footprint

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

- Number: US 12,001,335 B2
- Document ID: US12001335B2
- Status: Granted
- Kind: B2
- Application number: 17/868,183
- Filed: 2022-07-19
- Published: 2022-11-03
- Granted: 2024-06-04
- Earliest claimed: 2019-03-11
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Subrata Biswas
- Web page: https://patentgrep.com/patent/US12001335B2

## CPC

- G06F 12/084: with a shared cache
- G06F 16/24552: {Database cache management}
- G06F 12/0888: using selective caching, e.g. bypass
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/608: Details relating to cache mapping
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Database objects are retrieved from a database and parsed into normalized cached data objects. The database objects are stored in the normalized cached data objects in a cache store, and tenant data requests are serviced from the normalized cached data objects. The normalized cached data objects include references to shared objects in a shared object pool that can be shared across different rows of the normalized cached data objects and across different tenant cache systems.

## Claims

### Claim 1

A computing system uprising:
at least one processor; and
memory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computing system to:
receive a data access request associated with a requesting tenant computing system;
identify a requested data table based on the data access request;
parse the requested data table into a normalized cache data object comprising a reference to an inter-tenant sharable data object that includes inter-tenant sharable data, the computing system configured to share the inter-tenant sharable data among a plurality of different tenant cache systems; and
store the normalized cache data object in a cache store corresponding to the requesting tenant computing system.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the plurality of different tenant cache systems corresponds to a plurality of different tenants.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to:
identify a data item in the requested data table; and
identify the inter-tenant sharable data in the data item and construct a second sharable object that includes the inter-tenant sharable data.

### Claim 4 (depends on 3)

The computing system of claim 3, wherein the instructions, when executed, cause the computing system to:
load the second sharable object into a shared object pool in the cache store.

### Claim 5 (depends on 1)

The computing system of claim 1, wherein the normalized cache data object comprises a first normalized cache data object, and the instructions, when executed, cause the computing system to:
identity a second normalized cache data object corresponding to a second data access request;
obtain non-sharable data properties from the second normalized cache data object corresponding to the second data access request; and
obtain, from the inter-tenant sharable data object, the inter-tenant sharable data based on the reference to the inter-tenant sharable data object in the normalized cache data object.

### Claim 6 (depends on 5)

The computing system of claim 5, wherein the requesting tenant computing system comprises a first requesting tenant computing system, and the instructions, when executed, cause the computing system to:
receive the second data access request from a second tenant computing system; and
determine that data requested in the second data access request is loaded into a cache store for the second tenant computing system based on the reference to the inter-tenant sharable data object.

### Claim 7 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to:
identify a data item in the requested data table; and
determine whether a normalized cache data object already exists in the cache store and is referrable for data in the data item.

### Claim 8 (depends on 7)

The computing system of claim 7, wherein the instructions, when executed, cause the computing system to:
based on determining that a normalized cache data object does not already exist in the cache store, construct the normalized cache data object corresponding to the data item.

### Claim 9

A computer-implemented method comprising:
receiving a data access request associated with a requesting tenant computing system;
identifying a requested data table based on the data access request;
parsing the requested data table into a normalized cache data object comprising a reference to an inter-tenant sharable data object that includes inter-tenant sharable data, wherein a computing system is configured to share the inter-tenant sharable data among a plurality of different tenant cache systems; and
storing the normalized cache data object in a cache store corresponding to the requesting tenant computing system.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein the plurality of different tenant cache systems corresponds to a plurality of different tenants.

### Claim 11 (depends on 9)

The computer-implemented method of claim 9, and further comprising:
identifying a data item in the requested data table; and
identifying the inter-tenant sharable data in the data item and constructing a second sharable object that includes the inter-tenant sharable data.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, and further comprising:
loading the second sharable object into a shared object pool in the cache store.

### Claim 13 (depends on 9)

The computer-implemented method of claim 9, wherein the normalized cache data object comprises a first normalized cache data object, and further comprising:
identifying a second normalized cache data object corresponding to a second data access request;
obtaining non-sharable data properties from the second normalized cache data object corresponding to the second data access request; and
obtaining, from the inter-tenant sharable data object, the inter-tenant sharable data based on the reference to the inter-tenant sharable data object in the normalized cache data object.

### Claim 14 (depends on 13)

The computer-implemented method of claim 13, wherein the requesting tenant computing system comprises a first requesting tenant computing system, and further comprising:
receiving the second data access request from a second tenant computing system; and
determining that data requested in the second access request is loaded into a cache store for the second tenant computing system based on the reference to the inter-tenant sharable data object.

### Claim 15 (depends on 9)

The computer-implemented method of claim 9, and further comprising:
identifying a data item in the requested data table; and
determining whether a normalized cache data object already exists in the cache store and is referrable for data in the data item.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, and further comprising:
based on determining that a normalized cache data object does not already exist in the cache store, constructing the normalized cache data object corresponding to the data item.

### Claim 17

A computing system comprising:
at least one processor; and
memory storing instructions executable by the at least one processor, wherein the instructions, when executed, provide:
request processing logic configured to receive a data access request from a requesting computing system and identify a data table based on the data access request;
data accessing logic configured to obtain the data table;
parsing logic configured to parse the data table into a normalized cache data object that includes non-sharable data properties and a reference to an inter-tenant sharable data object that includes inter-tenant sharable data, the computing system configured to share the inter-tenant sharable data among a plurality of different tenant cache systems; and
cache loading logic configured to load the normalized cache data object into a cache store corresponding to the requesting computing system.

### Claim 18 (depends on 17)

The computing system of claim 17, wherein the plurality of different tenant cache systems corresponds to a plurality of different tenants.

### Claim 19 (depends on 17)

The computing system of claim 17, wherein the parsing logic comprises:
data identifier logic configured to identity a data item in the data table; and
normalized object construction logic configured to determine that a normalized cache data object does not already exist in the cache store, that can be referred to for data in the data item, and, based on the determination, construct the normalized cache data object corresponding to the data item.

### Claim 20 (depends on 17)

The computing system of claim 17, wherein the parsing logic is configured to:
identify a data item in the data table;
identify the inter-tenant sharable data in the data item and construct a second sharable object that includes the inter-tenant sharable data; and
load the second sharable object into a shared object pool in the cache store.
