IP Library Granted Patent US 11,514,004
Granted Patent B2
US 11,514,004 · App. 16/295,217 · Granted Nov 29, 2022

Providing a simple and flexible data access layer

Inventor: Paymon Teyer (San Ramon, CA)
Assignee: salesforce.com, inc.
G06F16/211G06F16/2455
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 11,514,004
App. No.
16/295,217
Granted
Nov 29, 2022
Kind
B2
Abstract

Systems and methods provide a simple and flexible data access layer for an application. The systems and methods receive, at a data access layer associated with an application, a request for accessing data in memory; identify a pattern of the data of the request; determine whether the data access layer includes a table having a structure of one of key/value pair, sorted set, map, or event that is suitable for accessing the data of the request based on the identified pattern. If the data access layer includes a table with suitable structure, using that table for accessing the data of the request. If the data access layer does not include a table with suitable structure, generating a table having the structure of one of key/value pair, sorted set, map, or event; and using the generated table for accessing the data of the request.

Claims (50)

1. A method for providing simple and flexible data access, the method comprising:

receiving, at a data access layer associated with an application running on one or more processors of a computer system, a request for accessing data in a memory of the computer system storing one or more relational databases;

identifying, at the one or more processors, a pattern of the data of the request;

determining, at the one or more processors, whether the data access layer includes a table having a structure of one of key/value pair, sorted set, map, or event that matches with a structure of queried data in the request and is suitable for accessing the data of the request based on the identified pattern;

if the data access layer includes the table with suitable structure, using that table for accessing the data of the request; and

if the data access layer does not include any table with the suitable structure:

generating a new table, based on one or more tables of abstractions in the data access layer including at least one of a key-value pair objects table, a sorted set object table, a map objects table, and an event objects table, wherein the new table has the structure of one of key/value pair, sorted set, map, or event that matches with the structure of the queried data in the request, corresponding to the one or more tables of abstractions;

presenting an interface suitable to the structure of the queried data through which a user can direct one or more operations to configure the generated table;

indexing the generated new table in a form based on a data format or a data structure of the generated new table;

locating the generated new table by a hash function according to the indexed form in response to the request; and

accessing the data of the request based on the structure of the new table at the data access layer without resorting to cross-references and dependencies between the one or more relational databases.

2. The method of claim 1 , wherein the interface presented is specific to the identified pattern of data of the request.

3. The method of claim 1 , wherein a table for the structure of a key/value pair comprises a first column for a key and a second column for a value.

4. The method of claim 1 , wherein a table for the structure of a sorted set comprises a first column for a set name, a second column for an entry, and a third column for a weight associated with the entry.

5. The method of claim 1 , wherein a table for the structure of a map comprises a column for each key in the map.

6. The method of claim 1 , wherein a table for the structure of an event comprises a first column for a timestamp and a second column for a payload.

7. The method of claim 1 , comprising generating a name for the generated table, wherein the generated name of the table is based upon the structure of the table.

8. The method of claim 1 , wherein the pattern of the data is one of single object, collection of data, and temporal data point.

9. A non-transitory machine-readable medium comprising executable code which when executed by one or more processors associated with a computer are adapted to cause the one or more processors to perform a method for providing simple and flexible data access, the method comprising:

receiving, at a data access layer associated with an application running on one or more processors of a computer system, a request for accessing data in a memory of the computer system storing one or more relational databases;

identifying, at the one or more processors, a pattern of the data of the request;

determining, at the one or more processors, whether the data access layer includes a table having a structure of one of key/value pair, sorted set, map, or event that matches with a structure of queried data in the request and is suitable for accessing the data of the request based on the identified pattern;

if the data access layer includes the table with suitable structure, using that table for accessing the data of the request; and

if the data access layer does not include any table with the suitable structure:

generating a new table, based on one or more tables of abstractions in the data access layer including at least one of a key-value pair objects table, a sorted set object table, a map objects table, and an event objects table, wherein the new table has the structure of one of key/value pair, sorted set, map, or event that matches with the structure of the queried data in the request, corresponding to the one or more tables of abstractions;

presenting an interface suitable to the structure of the queried data through which a user can direct one or more operations to configure the generated table;

indexing the generated new table in a form based on a data format or a data structure of the generated new table;

locating the generated new table by a hash function according to the indexed form in response to the request; and

accessing the data of the request based on the structure of the new table at the data access layer without resorting to cross-references and dependencies between the one or more relational databases.

10. The non-transitory machine-readable medium of claim 9 , wherein the interface presented is specific to the identified pattern of data of the request.

11. The non-transitory machine-readable medium of claim 9 , wherein a table for the structure of a key/value pair comprises a first column for a key and a second column for a value.

12. The non-transitory machine-readable medium of claim 9 , wherein a table for the structure of a sorted set comprises a first column for a set name, a second column for an entry, and a third column for a weight associated with the entry.

13. The non-transitory machine-readable medium of claim 9 , wherein a table for the structure of a map comprises a column for each key in the map.

14. The non-transitory machine-readable medium of claim 9 , wherein a table for the structure of an event comprises a first column for a timestamp and a second column for a payload.

15. The non-transitory machine-readable medium of claim 9 , wherein the pattern of the data is one of single object, collection of data, and temporal data point.

16. A system for providing simple and flexible data access, the system comprising:

a memory containing machine readable medium storing machine executable code; and

one or more processors coupled to the memory and configurable to execute the machine executable code to cause the one or more processors to:

receive, at a data access layer associated with an application running on one or more processors of a computer system, a request for accessing data in a memory of the computer system storing one or more relational databases;

identify, at the one or more processors, a pattern of the data of the request;

determine, at the one or more processors, whether the data access layer includes a table having a structure of one of key/value pair, sorted set, map, or event that matches with a structure of queried data in the request and is suitable for accessing the data of the request based on the identified pattern;

if the data access layer includes the table with suitable structure, use that table for accessing the data of the request; and

if the data access layer does not include any table with the suitable structure:

generate a new table, based on one or more tables of abstractions in the data access layer including at least one of a key-value pair objects table, a sorted set object table, a map objects table, and an event objects table, wherein the new table has the structure of one of key/value pair, sorted set, map, or event that matches with the structure of the queried data in the request, corresponding to the one or more tables of abstractions;

present an interface suitable to the structure of the queried data through which a user can direct one or more operations to configure the generated table;

index the generated new table in a form based on a data format or a data structure of the generated new table;

locate the generated new table by a hash function according to the indexed form in response to the request; and

access the data of the request based on the structure of the new table at the data access layer without resorting to cross-references and dependencies between the one or more relational databases.

17. The system of claim 16 , wherein the interface presented is specific to the identified pattern of data of the request.

18. The system of claim 16 , wherein the pattern of the data is one of single object, collection of data, and temporal data point.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0399 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2019
From: TEYER, PAYMON
To: SALESFORCE.COM, INC.
Reel/Frame 048705/0109 →
Cited By (2)
US 12,423,334 US 12,602,444