IP Library › Granted Patent US 12,001,335
Granted Patent B2
US 12,001,335 · App. 17/868,183 · Granted Jun 4, 2024

In-memory normalization of cached objects to reduce cache memory footprint

Inventor: Subrata Biswas (Issaquah, WA)
Assignee: Microsoft Technology Licensing, LLC.
G06F12/084G06F12/0888G06F2212/1044G06F2212/608
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 12,001,335
App. No.
17/868,183
Granted
Jun 4, 2024
Kind
B2
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 (63)

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.

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

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

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.

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

11. 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.

12. The computer-implemented method of claim 11 , and further comprising:

loading the second sharable object into a shared object pool in the cache store.

13. 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.

14. 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.

15. 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.

16. 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.

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.

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

19. 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.

20. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2022
From: BISWAS, SUBRATA
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060550/0402 →
Continuity (3)
Continuation 17148825 · Jan 14, 2021
Continuation 16297849 · Mar 11, 2019
Related Publication 20220350741A1 · Nov 3, 2022