System, method and computer program product for routing messages to a server

US9229793B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9229793-B2
Application numberUS-201113092710-A
CountryUS
Kind codeB2
Filing dateApr 22, 2011
Priority dateApr 22, 2010
Publication dateJan 5, 2016
Grant dateJan 5, 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, there are provided mechanisms and methods for routing messages to a server. These mechanisms and methods for routing messages to a server can enable dynamic data migration within a system, increased efficiency, improved user experience, avoidance of data loss, etc.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed by a computer to implement a method for routing messages to a server, the method comprising: detecting by a system a request to migrate data of a client of the system from a first server of the system to a second server of the system; in response to the request, migrating the data of the client from the first server of the system to the second server of the system; during the migrating: accessing one or more messages within a messaging element of the system separate from the first server and the second server, the one or more messages including requests to perform one or more tasks on one or more servers of the system; identifying one or more of the messages queued within the messaging element of the system that include one or more tasks to be performed in association with the client of the system whose data is being migrated; re-enqueueing the one or more identified messages within the messaging element of the system with a predetermined time delay; detecting a conclusion to the migrating of the data of the client from the first server to the second server; routing the one or more messages determined to be associated with the data being migrated from the messaging element to the second server and performing the one or more tasks requested by the one or more messages on the second server, when it is determined that the migrating of the data was successful; and routing the one or more messages determined to be associated with the data being migrated from the messaging element to the first server and performing the one or more tasks requested by the one or more messages on the first server, when it is determined that the migrating of the data was not successful. 2. The computer program product of claim 1 , wherein the migrating of the data includes migrating an organization of the system from the first server to the second server. 3. The computer program product of claim 1 , wherein the messaging element includes a message queue of the system. 4. The computer program product of claim 3 , further including receiving, at the message queue, an indication from the second server confirming whether each of the one or more messages routed to the second server has been performed on the second server of the system. 5. The computer program product of claim 1 , wherein the one or more messages associated with the data include transient data. 6. The computer program product of claim 1 , wherein a state associated with the data of the client of the system is changed to reflect that the migrating is currently being performed within the system. 7. The computer program product of claim 1 , wherein a notification of the conclusion to the migrating includes an indication as to whether the migrating was successful or unsuccessful. 8. The computer program product of claim 1 , wherein a result of the migrating is confirmed by a user. 9. The computer program product of claim 1 , wherein a state associated with the data is changed to reflect that the migrating was successful and that the data is now on the second server of the system. 10. The computer program product of claim 1 , wherein if the migrating is successful, new messages entering the messaging element that are directed toward the migrated data are routed to the second server. 11. The computer program product of claim 10 , wherein the new messages, when received at the messaging element, are initially directed toward the first server, and are enqueued in the messaging element before being re-directed and routed toward the second server. 12. The computer program product of claim 1 , wherein the system includes a multi-tenant on-demand database system. 13. The computer program product of claim 1 , wherein the data that is migrated includes persistent data. 14. The computer program product of claim 1 , wherein the migrating of the data is performed in response to a request by the client of the system. 15. The computer program product of claim 1 , wherein the migrating of the data is performed automatically in response to one or more needs of the system. 16. The computer program product of claim 1 , wherein routing for each type of the one or more messages is configured to be enabled or disabled, such that the routing of each of the one or more messages within the messaging element to the second server of the system is further based on a type of each of the one or more messages. 17. The computer program product of claim 1 , wherein it is determined that one or more of the messages queued within the messaging element of the system are associated with the data being migrated from the first server to the second server when it is determined that the one or more messages manipulate the data being migrated from the first server to the second server. 18. A method, comprising: detecting by a system a request to migrate data of a client of the system from a first server of the system to a second server of the system; in response to the request, migrating the data of the client from the first server of the system to the second server of the system; during the migrating: accessing one or more messages within a messaging element of the system separate from the first server and the second server, the one or more messages including requests to perform one or more tasks on one or more servers of the system; identifying one or more of the messages queued within the messaging element of the system that include one or more tasks to be performed in association with the client of the system whose data is being migrated; re-enqueueing the one or more identified messages within the messaging element of the system with a predetermined time delay; detecting a conclusion to the migrating of the data of the client from the first server to the second server; routing the one or more messages determined to be associated with the data being migrated from the messaging element to the second server and performing the one or more tasks requested by the one or more messages on the second server, when it is determined that the migrating of the data was successful; and routing the one or more messages determined to be associated with the data being migrated from the messaging element to the first server and performing the one or more tasks requested by the one or more messages on the first server, when it is determined that the migrating of the data was not successful. 19. A system, comprising: at least one processor for: detecting by the system a request to migrate data of a client of the system from a first server of the system to a second server of the system; in response to the request, migrating the data of the client from the first server of the system to the second server of the system; during the migrating: accessing one or more messages within a messaging element of the system separate from the first server and the second server, the one or more messages including requests to perform one or more tasks on one or more servers of the system; identifying one or more of the messages queued within the messaging element of the system that include one or more tasks to be performed in association with the client of the system whose data is being migrated; re-enqueueing the one or more identified messages within the messaging element of the system with a predetermined time delay; detecting a concl

Assignees

Inventors

Classifications

  • Migration or transfer of sessions · CPC title

  • G06F9/546Primary

    Message passing systems or structures, e.g. queues · CPC title

  • Buffering arrangements · 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 US9229793B2 cover?
In accordance with embodiments, there are provided mechanisms and methods for routing messages to a server. These mechanisms and methods for routing messages to a server can enable dynamic data migration within a system, increased efficiency, improved user experience, avoidance of data loss, etc.
Who is the assignee on this patent?
Devadhar Vijayanth, Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/546. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 05 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).