Batch Processing Queue for Multi-Tenant Database Transactions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional client/server transaction models are inefficient for handling long-duration transactions, leading to client device timeouts, resource wastage, and potential data corruption, especially when dealing with large or numerous database transactions, which can overwhelm shared architectures and degrade performance for other users.
Innovation Solution
Implementing batch processing in an on-demand service environment, where requests are divided into sub-groups, queued, and processed asynchronously, allowing for efficient utilization of resources without affecting other users, and enabling completion notifications when all sub-groups are processed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Duration of action of moving object
If a conventional client/server transaction model is used for long-duration transactions, then the server can process the request, but the client device may timeout or appear hung before receiving a response, wasting time and potentially causing the server to waste resources
Solution Approach 1:
The patent segments long-duration transactions into smaller processing units that can be handled more efficiently. By dividing the transaction processing into manageable segments, the system reduces the perceived waiting time for clients while maintaining comprehensive processing capabilities on the server side.
Solution Approach 2:
The system performs preliminary actions by preparing and validating transaction requests before full processing begins. This includes pre-checking client connectivity, validating request formats, and setting up processing contexts in advance, so that if a client disconnects, the system has already minimized resource commitment and can abort gracefully without wasting extensive resources.
2Ease of operation
If a client terminates prematurely due to perceived delay, then the client can resume operations, but the server may have already processed the request, causing duplicative effort and transactional errors
Solution Approach 1:
The system implements feedback mechanisms where the server acknowledges receipt of requests and provides status updates to clients. This feedback loop allows clients to understand that their requests are being processed even if the full result isn't immediately available, reducing premature terminations. Conversely, if a client disconnects, the server can detect this and provide feedback to prevent duplicative processing.
Solution Approach 2:
The patent introduces an intermediary layer (such as a message queue or transaction coordinator) that sits between the client and server. This intermediary manages the transaction lifecycle, tracking request states and coordinating between client actions and server processing. It can detect client disconnections and prevent the server from executing duplicate transactions, maintaining integrity while allowing client flexibility.
3Speed
If large transactions or numerous small transactions are processed quickly, then client satisfaction improves, but the supporting architecture may be overburdened or overwhelmed
Solution Approach 1:
The system employs dynamic resource allocation and adaptive processing strategies. Processing capacity is dynamically adjusted based on current system load, client priorities, and transaction characteristics. When the architecture is under heavy load, the system can dynamically queue transactions, adjust processing threads, or allocate resources differently to prevent overwhelming the system while still maintaining good throughput during lighter load periods.
4Productivity
If processing resources are dedicated to complete a request for one entity, then that entity receives fast service, but performance for all other entities sharing the supporting architecture degrades
Solution Approach 1:
The patent implements universal resource pools and multi-functional processing components that can serve multiple entities simultaneously. Instead of dedicated resources for each entity, the system uses shared resource pools (processing threads, database connections, memory buffers) that can be dynamically allocated to any entity needing service. This multi-functionality allows the system to maintain high throughput for individual entities while preventing any single entity from monopolizing resources and degrading overall system performance.
Data Source
AI summary
In accordance with embodiments disclosed herein, there are provided mechanisms and methods for batch processing in an on-demand service environment. For example, in one embodiment, mechanisms include receiving a processing request for a multi-tenant database, in which the processing request specifies processing logic and a processing target group within the multi-tenant database. Such an embodiment further includes dividing or chunking the processing target group into a plurality of processing target sub-groups, queuing the processing request with a batch processing queue for the multi-tenant database among a plurality of previously queued processing requests, and releasing each of the plurality of processing target sub-groups for processing in the multi-tenant database via the processing logic at one or more times specified by the batch processing queue.


