IP Library Granted Patent US 10,664,487
Granted Patent B2
US 10,664,487 · App. 16/112,538 · Granted May 26, 2020

Multi-tenancy for structured query language (SQL) and non structured query language (NoSQL) databases

Inventors: Jonathan Bruce (San Rafael, CA); Eli Levine (San Francisco, CA); Simon Toens (San Francisco, CA); James Taylor (San Francisco, CA)
Assignee: salesforce.com
G06F16/2471G06F16/20G06F16/245G06F16/25G06F16/258G06F16/27G06F16/284G06F16/18G06F16/21G06F16/211G06F16/214G06F16/217G06F16/219G06F16/256G06F16/289
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 10,664,487
App. No.
16/112,538
Granted
May 26, 2020
Kind
B2
Abstract

Techniques and structures for providing a multitenant environment having both a relational database and a non-relational database. A database query is received with at least one server computing device providing a multitenant environment having a relational database system and a non-relational database system, the database query in a format corresponding to the relational database system. The query is parsed with the at least one server computing device to find one or more components of the query directed to data stored in the non-relational database system. One or more components of the query directed to data stored in the non-relational database system are converted to one or more scans of the non-relational database system. Results from the query of the relational database system and results from the one or more scans of the non-relational database system are collected. The results from the query and the results of the one or more scans to a combined result are combined. The combined results are provided to a client entity.

Claims (33)

1. A system comprising:

a group of one or more server computing devices configured to provide a computing environment that provides on-demand service to client entities;

at least one relational database system coupled with the one or more server computing devices, the at least one relational database system to provide data management services to tenants of the computing environment;

at least one non-relational database system coupled with the one or more server computing devices, the at least one non-relational database system to provide data management services to client entities of the computing environment, the non-relational database system to manage scan ranges for the non-relational database to limit access for each client entity to data in the non-relational database corresponding to that client entity, wherein a primary key constraint of a base table cannot be changed and indexes in separate shared tables can be added;

a database search agent coupled with the at least one relational database system and with the at least one non-relational database system, the database search agent to receive a database query in a format corresponding to the relational database system, to parse the query to find one or more components of the query directed to data stored in the non-relational database system, to convert one or more components of the query directed to data stored in the non-relational database system to one or more scans of the non-relational database system wherein table metadata is utilized to provide use of correct schema in responding to the one or more scans, to collect results from the query of the relational database system and results from the one or more scans of the non-relational database system, to combine the results from the query and the results of the one or more scans to a combined result, and to provide the combined result to a client entity.

2. The system of claim 1 wherein the multitenant environment comprises a multitenant on-demand services environment.

3. The system of claim 2 wherein the multitenant on-demand service environment comprises at least a multitenant database environment.

4. The system of claim 1 wherein data stored in the non-relational database is immutable.

5. The system of claim 1 wherein the at least one non-relational database system to provide the ability to run one or more client entity-specific tables that use a single common physical non-relational database table.

6. A method comprising:

receiving a database query with at least one server computing device providing a computing environment having a relational database system and a non-relational database system, the database query in a format corresponding to the relational database system;

parsing the query with the at least one server computing device to find one or more components of the query directed to data stored in the non-relational database system;

converting with the at least one server computing device, one or more components of the query directed to data stored in the non-relational database system to one or more scans of the non-relational database system wherein table metadata is utilized to provide use of correct schema in responding to the one or more scans;

managing scan ranges for the non-relational database to limit access for each entity to data in the non-relational database corresponding to that entity, wherein a primary key constraint of a base table cannot be changed and indexes in separate shared tables can be added;

collecting results from the query of the relational database system and results from the one or more scans of the non-relational database system;

combining the results from the query and the results of the one or more scans to a combined result; and

providing the combined result to a client entity.

7. The method of claim 6 wherein the multitenant environment comprises a multitenant on-demand services environment.

8. The method of claim 7 wherein the multitenant on-demand service environment comprises at least a multitenant database environment.

9. The method of claim 6 wherein data stored in the non-relational database is immutable.

10. The method of claim 6 wherein the at least one non-relational database system to provide the ability to run one or more client entity-specific tables that use a single common physical non-relational database table.

11. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:

receive a database query with at least one server computing device providing a computing environment having a relational database system and a non-relational database system, the database query in a format corresponding to the relational database system;

parse the query with the at least one server computing device to find one or more components of the query directed to data stored in the non-relational database system;

convert with the at least one server computing device, one or more components of the query directed to data stored in the non-relational database system to one or more scans of the non-relational database system wherein table metadata is utilized to provide use of correct schema in responding to the one or more scans;

manage scan ranges for the non-relational database to limit access for each entity to data in the non-relational database corresponding to that entity, wherein a primary key constraint of a base table cannot be changed and indexes in separate shared tables can be added;

collect results from the query of the relational database system and results from the one or more scans of the non-relational database system;

combine the results from the query and the results of the one or more scans to a combined result; and

provide the combined result to a client entity.

12. The non-transitory computer-readable medium of claim 11 wherein the multitenant environment comprises a multitenant on-demand services environment.

13. The non-transitory computer-readable medium of claim 12 wherein the multitenant on-demand service environment comprises at least a multitenant database environment.

14. The non-transitory computer-readable medium of claim 11 wherein data stored in the non-relational database is immutable.

15. The non-transitory computer-readable medium of claim 11 wherein the at least one non-relational database system to provide the ability to run one or more client entity-specific tables that use a single common physical non-relational database table.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2018
From: BRUCE, JONATHAN; LEVINE, ELI; TOENS, SIMON; TAYLOR, JAMES
To: SALESFORCE.COM, INC.
Reel/Frame 046827/0049 →
Continuity (7)
Continuation 14542348 · Nov 14, 2014
Provisional Application 61904826 · Nov 15, 2013
Provisional Application 61904822 · Nov 15, 2013
Provisional Application 61905439 · Nov 18, 2013
Provisional Application 61905457 · Nov 18, 2013
Provisional Application 61905460 · Nov 18, 2013
Related Publication 20180365299A1 · Dec 20, 2018
Cited By (2)
US 12,253,983 US 12,639,308