Multi-tenant Database Resource Governance via Threshold Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional database systems face performance issues due to high query volumes and concurrent access from multiple users, leading to slow processing and inefficient resource utilization.

Innovation Solution

A multi-tenant database system that tracks and manages access by receiving programming language instructions to apply resource limits, using a network of application servers with local and global stores to compare request volumes with thresholds, and applies filters to optimize database access efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the database system processes a high number of queries concurrently, then the system utilization is improved, but the query processing speed deteriorates

Engineering Contradiction:
Improvesystem utilizationVSAvoidquery processing speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the database system into multiple independent database instances, each capable of processing queries independently. This segmentation allows the system to handle high query volumes by distributing load across instances while maintaining acceptable processing speeds within each instance, thus resolving the contradiction between system utilization and query processing speed.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the database system allows concurrent access from multiple users, then the accessibility is improved, but the resource consumption increases

Engineering Contradiction:
Improveconcurrent access capabilityVSAvoidresource consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic resource allocation where database instances can be activated or deactivated based on current workload demands. When concurrent access requirements are high, more instances are activated to handle the load; when demands are low, instances are deactivated to conserve resources. This dynamic approach allows the system to adapt to varying concurrent access needs while optimizing resource consumption.

Inventive Principle:
Principle #15Dynamics

3Use of energy by moving object

If resource limits are applied to govern access, then the resource consumption is controlled, but the system complexity increases

Engineering Contradiction:
Improveresource consumptionVSAvoidsystem complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where database instances automatically monitor their own resource consumption and enforce their own access limits based on predefined policies. Each instance can independently determine whether to process incoming queries based on its current resource state, eliminating the need for complex centralized control mechanisms. This self-service approach controls resource consumption while keeping system complexity manageable.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8271641B2Method and system for governing resource consumption in a multi-tenant system
Publication Date: 2012.09.18 SALESFORCE INC
  • US8271641B2 patent drawing
  • US8271641B2 patent drawing
  • US8271641B2 patent drawing

AI summary

A database system includes servers configured to receive requests from user systems. Each server includes a local and a global store. Each local store stores the number of requests received by its server. The system includes a processor configured to receive the number of requests from servers. The processor is configured to determine the number of requests received by all of the servers, and send this number of requests to each server. The global store stores the number of requests received from the processor. A given server is configured to compare the number of requests received by the servers with a threshold number. If this number is greater than the threshold number, then the given server is configured to send a message to the user systems that the number of threshold requests has been exceeded and/or the given server will discontinue accepting requests.