Multi-tenant Database Record Action Batching via Message Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant database systems, updating shared records can be resource-intensive and lead to significant delays, especially when large numbers of records are shared among multiple users, causing processing performance issues.

Innovation Solution

The implementation of a message queue and event queue system that allows for selective batch processing of record actions, enabling efficient processing of updates by grouping messages and events corresponding to the same tenant and connection, thereby reducing the need for repeated API sessions and minimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If records are shared with large numbers of users across multiple tenants, then collaboration capability is improved, but resource consumption and processing delays increase

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

Solution Approach 1:

The patent segments the monolithic record update process into discrete, manageable units by creating separate message queue entries for each target tenant and connection. This segmentation allows the system to process updates in smaller batches rather than attempting to update all shared records simultaneously, thereby reducing peak resource consumption while maintaining collaboration capabilities across multiple tenants.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by creating message queue entries and event queue entries before actual record updates occur. This allows the system to prepare and stage update operations in advance, organizing them by target tenant and connection, so that when updates are executed, they can be applied efficiently without causing resource contention or processing delays.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all shared records are updated simultaneously for every user, then data consistency is improved, but processing time and resource usage increase

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the simultaneous update process into discrete message queue entries, one for each target tenant and connection. This segmentation maintains data consistency by ensuring each update is properly tracked and applied, while avoiding the resource exhaustion that would result from truly simultaneous updates across all users.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements periodic action by processing record updates in batches through the message queue system rather than all at once. Updates are processed periodically as messages are dequeued and executed, allowing the system to maintain data consistency across tenants while spreading resource consumption over time and avoiding processing bottlenecks.

Inventive Principle:
Principle #19Periodic action

3Manufacturing precision

If repeated API sessions are created for each record update, then update accuracy is improved, but system performance and response time deteriorate

Engineering Contradiction:
Improveupdate accuracyVSAvoidsystem performance
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent implements universality by creating a single message queue handler that processes multiple record update operations across different tenants and connections. This handler serves multiple functions: it manages message queuing, tracks updates by target tenant, coordinates batch processing, and ensures accurate application of each update. This eliminates the need for separate API sessions for each update while maintaining update accuracy through systematic tracking and processing.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses copying by creating message queue entries and event queue entries that replicate the essential information needed for each record update. These entries serve as templates or copies that contain all necessary update details, allowing the system to process multiple updates through a unified handler without needing to recreate API sessions, thereby maintaining accuracy while improving performance.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If users with large numbers of shared records perform updates, then collaboration features are improved, but other users experience resource hogging and processing delays

Engineering Contradiction:
Improvecollaboration featuresVSAvoidresource hogging
Core Design Contradiction:
Adaptability or versatilityVSObject-generated harmful factors

Solution Approach 1:

The patent segments update operations by target tenant and connection, creating separate message queue entries for each. This segmentation prevents any single user with numerous shared records from monopolizing system resources, as each update is processed as an independent, manageable unit. Other users' processing is not blocked by resource hogging from a single user's bulk updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements periodic action by processing updates in batches through the message queue system. Instead of allowing one user's updates to consume all resources continuously, the system periodically processes batches of updates from different users in an interleaved manner. This ensures fair resource distribution and prevents processing delays for other users while maintaining full collaboration features.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8818940B2Systems and methods for performing record actions in a multi-tenant database and application system
Publication Date: 2014.08.26 SALESFORCE INC
  • US8818940B2 patent drawing
  • US8818940B2 patent drawing
  • US8818940B2 patent drawing

AI summary

A system and method for executing record actions in a multi-tenant database and application service is provided. The system and method is configured to provide a message queue and an event queue, the message queue configured to store a plurality of messages corresponding to record actions and the event queue configured to store a corresponding list of events. The system and method are configured to process record actions on the plurality of records by selecting a plurality of messages in the message queue for processing, the selected plurality of messages corresponding to a plurality of record actions on records in the multi-tenant database, identifying a plurality of events in the event queue corresponding to the selected plurality of messages, and processing the identified plurality of events as a batch to execute the plurality of record actions.