Methods and systems for batch processing in an on-demand service environment

US9507627B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9507627-B2
Application numberUS-201314061545-A
CountryUS
Kind codeB2
Filing dateOct 23, 2013
Priority dateApr 20, 2010
Publication dateNov 29, 2016
Grant dateNov 29, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method in a system having at least a processor and a memory therein for executing instructions, wherein the method comprises: communicating, via a request interface of the system, with a remotely connected client device during a synchronous request/reply session established between the client device and the request interface of the system; receiving at the request interface of the system, a request for synchronous processing from the remotely connected client device, the request specifying a real-time transaction request to retrieve or store data on behalf of the client device at a database system communicably interfaced with the system; rejecting or terminating the real-time transaction request; receiving, at the system, a batch processing request from the remotely connected client device, the batch processing request re-submitting the real-time transaction request to retrieve or store data on behalf of the client device at a database system as a batch processing request to be completed via asynchronous processing at the database system; dividing the batch processing request into a plurality of processing target sub-groups; queuing the batch processing request within a batch processing queue; releasing each of the plurality of processing target sub-groups for processing by the database system at one or more times specified by the batch processing queue; and sending a completion status to an originator of the batch processing request, the completion status indicating a successful or unsuccessful completion for each processing target sub-group, wherein each completion status comprises a status selected from the group comprising: complete and committed without error; complete and committed after re-try due to excessive use of resources; complete and committed after re-try due to excessive workload at the database system; and abort due to one or more errors for the respective processing target sub-group, wherein any database transaction error for the respective processing target sub-group prevents committing transaction associated with the respective processing target sub-group to the database system. 2. The method of claim 1 , wherein the database system embodies a multi-tenant database system having data stored therein on behalf of multiple customer organizations; and wherein the method further comprises running each of the plurality of processing target sub-groups released for processing in the multi-tenant database system concurrently with a plurality of other database transactions to be processed synchronously in the multi-tenant database system on behalf of other customer organizations other than a one customer organization associated with the remotely connected client device having submitted the batch processing request. 3. The method of claim 1 : wherein the database system embodies a multi-tenant database system having data stored therein on behalf of multiple customer organizations; wherein the batch processing request specifies customer logic for one of the multiple customer organizations, the customer logic to be applied to processing in the multi-tenant database system in fulfillment of the batch processing request; and wherein the customer logic is applied to each of the plurality of processing target sub-groups in the multi-tenant database system when released for processing by the batch processing queue. 4. The method of claim 1 , wherein releasing each of the plurality of processing target sub-groups for processing by the database system at the one or more times specified by the batch processing queue comprises: waiting until the queued batch processing request reaches a top position in the batch processing queue; selecting an unprocessed one of the plurality of processing target sub-groups; and releasing the selected unprocessed one of the plurality of processing target sub-groups to the database system. 5. The method of claim 4 , further comprising: re-queuing the batch processing request within the batch processing queue when at least one of the plurality of processing target sub-groups for the batch processing request remain unprocessed; and iteratively repeating the waiting, selecting, and releasing operations until all of the plurality of processing target sub-groups for the processing request are processed in the database system. 6. The method of claim 5 , further comprising: sending a completion notification to the originator of the batch processing request outside of the synchronous request/reply session established between the client device and the request interface of the system, wherein the completion notification comprises a completion report specifying: each of the plurality of processing target sub-groups released for processing in the database system; and the completion status for each of the plurality of processing target sub-groups indicating the successful or unsuccessful completion for each processing target sub-group. 7. The method of claim 1 , wherein queuing the processing request with the batch processing queue comprises: generating a reference message for the processing request in the batch processing queue, wherein the reference message specifies: the one or more processing target sub-groups, a processing state for each of the one or more processing target sub-groups, a pointer to each of the one or more processing target sub-groups, and a pointer to the processing logic to be applied to each of the one or more processing target sub-groups; and wherein the batch processing queue manages a list of pending batch processing requests to be asynchronously processed against the database system, each pending batch processing requests having one or more processing target sub-groups in an unprocessed state. 8. The method of claim 1 : wherein queuing the batch processing request within the batch processing queue comprises submitting a reference message for the batch processing request to the batch processing queue; wherein releasing each of the plurality of processing target sub-groups for processing in the database system comprises de-queuing the reference message from the batch processing queue; and wherein the method further comprises submitting a new reference message for the processing request to the batch processing queue as part of a commit process for the respective processing target sub-group released for processing in the database system, wherein the new reference message corresponds to a next unprocessed one of the plurality of processing target sub-groups for the processing request when at least one processing target sub-group for the processing request remains in an unprocessed state. 9. The method of claim 1 , wherein rejecting or terminating the real-time transaction request comprises rejecting or prematurely terminating the real-time transaction request based on a determined inability of the database system to complete the real-time transaction request prior to a session timeout for the synchronous request/reply session established between the client device and the request interface of the system. 10. The method of claim 1 , wherein rejecting or terminating the real-time transaction request comprises rejecting or prematurely terminating the real-time transaction request based on the real-time transaction request being too large a quantity of transactions required to complete the real-time transaction request or having a determined computationally intensive resource requirement in excess of a threshold or processing duration in excess of a permissible time period for the synchronous request/reply session established between the client device and the request interface of the system. 11. T

Assignees

Inventors

Classifications

  • G06F9/4843Primary

    by program, e.g. task dispatcher, supervisor, operating system · CPC title

  • Request control · CPC title

  • G06F9/466Primary

    Transaction processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9507627B2 cover?
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 embodi…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4843. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).