Query optimization in a multi-tenant database system
First Claim
1. A method for load sharing incoming requests received at a Multitenant Database System, the method comprising:
- generating tenant-level statistics for each of a plurality of tenants having data stored within a database system of the Multitenant Database System, wherein the database system includes one or more data tables to store the data, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the data tables;
receiving the incoming requests from user systems over a public Internet network at a web-based customer relationship management (CRM) interface of the Multitenant Database System;
load sharing the requests received amongst a plurality of servers within the Multitenant Database System to balance loads via distribution of the requests among the plurality of servers within the Multitenant Database System; and
wherein the distribution of the requests among the plurality of servers comprises each one of the plurality of servers having been distributed one of the requests performing at least the following operations;
(i) generating one or more queries designed to access the information requested, and(ii) optimizing the one or more queries based on the tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being accessed.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides techniques for managing a multi-tenant database system. In one embodiment the method includes providing access to data stored in a multi-tenant data structure that is implemented by storing data for multiple tenants on a pool of computer servers defining the multi-tenant data structure that having a plurality of data columns and one or more index columns. The one or more index columns define a first data field for a first tenant of the multi-tenant data structure and a second data field for a second tenant of the multi-tenant data structure. The first field indicates a first data type and the second field indicates a second data type, wherein the second data type is different than the first data type. Once created, records having data values in the first and second fields are stored to a single column in the data structure. The single column includes data values having different data types for different tenants in the multi-tenant data structure. Operations are monitored so that one or more requests to access the multi-tenant data structure among are distributing the pool of computer servers to maintain load balancing among the servers of the pool.
-
Citations
22 Claims
-
1. A method for load sharing incoming requests received at a Multitenant Database System, the method comprising:
-
generating tenant-level statistics for each of a plurality of tenants having data stored within a database system of the Multitenant Database System, wherein the database system includes one or more data tables to store the data, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the data tables; receiving the incoming requests from user systems over a public Internet network at a web-based customer relationship management (CRM) interface of the Multitenant Database System; load sharing the requests received amongst a plurality of servers within the Multitenant Database System to balance loads via distribution of the requests among the plurality of servers within the Multitenant Database System; and wherein the distribution of the requests among the plurality of servers comprises each one of the plurality of servers having been distributed one of the requests performing at least the following operations; (i) generating one or more queries designed to access the information requested, and (ii) optimizing the one or more queries based on the tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being accessed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory medium storing program code that, when executed by a central processing unit of a Multitenant Database System, the program code causes the Multitenant Database System to perform operations for load sharing incoming requests received at the Multitenant Database System, the operations including:
-
generating tenant-level statistics for each of a plurality of tenants having data stored within a database system of the Multitenant Database System, wherein the database system includes one or more data tables to store the data, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the data tables; receiving the incoming requests from user systems over a public Internet network at a web-based customer relationship management (CRM) interface of the Multitenant Database System; load sharing the requests received amongst a plurality of servers within the Multitenant Database System to balance loads via distribution of the requests among the plurality of servers within the Multitenant Database System; and wherein the distribution of the requests among the plurality of servers comprises each one of the plurality of servers having been distributed one of the requests performing at least the following operations; (i) generating one or more queries designed to access the information requested, and (ii) optimizing the one or more queries based on the tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being accessed. - View Dependent Claims (17, 18, 19)
-
-
20. A Multitenant Database System, comprising:
-
a database system including one or more data tables to store data for a plurality of tenants, each data table having one or more columns defining data categories and one or more rows associated with one or more tenants among the plurality of tenants having data stored within the data tables; a plurality of servers to store data to and retrieve data from the database system; a statistics generating module to generate tenant-level statistics for each of the plurality of tenants having data stored within the database system of the Multitenant Database System; a web-based customer relationship management (CRM) interface to receive the incoming requests from user systems over a public Internet network; a load balancer to distribute the requests received at the web-based CRM interface amongst the plurality of servers; and wherein the load balancer to distribute the requests among the plurality of servers comprises each one of the plurality of servers having been distributed one of the requests to perform at least the following operations; (i) generate one or more queries designed to access the information requested, and (ii) optimize the one or more queries based on the tenant-level statistics to increase system performance for an individual tenant among the plurality of tenants whose data is being accessed. - View Dependent Claims (21, 22)
-
Specification