Maintenance of multi-tenant software programs

US9904538B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9904538-B2
Application numberUS-201514833323-A
CountryUS
Kind codeB2
Filing dateAug 24, 2015
Priority dateAug 24, 2015
Publication dateFeb 27, 2018
Grant dateFeb 27, 2018

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.

A multi-tenant software program is maintained in a computing environment having a plurality of compatible instances of the program, each adapted to serve a plurality of tenants, with each controlling corresponding individual data. The method includes: receiving a maintenance request for a target instance, the target instance having one or more target tenants each controlling corresponding target individual data; selecting an auxiliary instance from other instances different from the target instance; providing the target individual data of each target tenant to the auxiliary instance; redirecting each target tenant by forwarding each target tenant request to the auxiliary instance; applying a maintenance operation on the target instance according to the maintenance request; returning the target individual data of each target tenant from the auxiliary instance in response to the applying of the maintenance operation; and restoring the serving of each target tenant request by the target instance.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for maintaining a multi-tenant software program in a computing environment comprising a plurality of virtual machines with a plurality of compatible instances of the software program, each compatible instance being adapted to serve a plurality of tenants, and each tenant controlling corresponding individual data, the method comprising: receiving a maintenance request at a target virtual machine for a target instance of the plurality of compatible instances of the software program, the target instance having one or more target tenants each one controlling corresponding target individual data; selecting by a target service agent of the target virtual machine, in response to the maintenance request, an auxiliary instance from other instances of the plurality of compatible instances of the software program, the auxiliary instance being associated with an other virtual machine of the plurality of virtual machines different from the target virtual machine with the target instance, and the other virtual machine comprising an auxiliary service agent; providing, by the target service agent of the target virtual machine, the target individual data of each target tenant to be accessible to the auxiliary instance of the other virtual machine, wherein the providing comprises cloning the target individual data of each target tenant into corresponding auxiliary individual data of the target tenant in the auxiliary instance, the cloning being performed, in part, by communications between the target service agent and the auxiliary service agent; initiating redirecting, by the target service agent of the target virtual machine, each target tenant by forwarding each target tenant request submitted by the target tenant for the target instance to the auxiliary service agent of the other virtual machine with the auxiliary instance, in response to the providing of the target individual data of the target tenant, for causing the auxiliary instance to serve the target tenant request using the auxiliary individual data of the target tenant; applying, during the redirecting of the target tenant(s), a maintenance operation on the target instance according to the maintenance request; initiating returning by the target service agent, in response to completion of the applying of the maintenance operation, the target individual data of each target tenant, wherein the returning comprises merging the auxiliary individual data of the target tenant with the corresponding target individual data, the merging performed in part by communications between the target service agent and the auxiliary service agent, and including applying to the corresponding target individual data each update of the auxiliary individual data of the target tenant that occurred in the auxiliary instance after the redirecting of the target tenant; and restoring the serving of each target tenant request by the target instance in response to the returning of the target individual data of the target tenant. 2. The method of claim 1 , wherein the cloning the target individual data of the target tenant comprising: copying a snapshot of the target individual data of the target tenant into the corresponding auxiliary individual data. 3. The method of claim 2 , wherein the cloning the target individual data of the target tenant comprises, in response to a completion of the copying of the snapshot of the target individual data of the target tenant: applying to the corresponding auxiliary individual data each update of the target individual data of the target tenant that occurred in the target instance during the copying thereof. 4. The method of claim 3 , wherein the cloning the target individual data of the target tenant comprises, in response to the completion of the copying of the snapshot of the target individual data of the target tenant: applying to the target individual data of the target tenant each update of the target individual data of the target tenant that occurred in the target instance during the copying thereof. 5. The method of claim 2 , wherein the providing the target individual data of each target tenant comprises, in response to a completion of the cloning of the target individual data of the target tenant: serving each target tenant request of each target tenant by the target instance when the target tenant has one or more operations being ongoing in the target instance or forwarding the target tenant request to the auxiliary instance for causing the auxiliary instance to serve the target tenant request on the corresponding auxiliary individual data otherwise, and applying each update of the target individual data of the target tenant that occurred in the target instance after the cloning thereof to the corresponding auxiliary individual data in response to a completion of ongoing operations of the target tenant. 6. The method of claim 5 , wherein the providing the target individual data of each target tenant comprises: applying each update of the target individual data of the target tenant that occurred in the target instance after the cloning thereof to the target individual data of the target tenant in response to the completion of the ongoing operations of the target tenant. 7. The method of claim 1 , wherein the returning the target individual data of each target tenant comprises, in response to a completion of the merging of the target individual data of the target tenant: serving each target tenant request of each target tenant by the auxiliary instance when the target tenant has one or more further operations ongoing in the auxiliary instance or forwarding the target tenant request to the target instance for causing the target instance to serve the target tenant request on the corresponding target individual data; and applying, in response to a completion of ongoing operations of the target tenant, each update of the auxiliary individual data of the target tenant that occurred in the auxiliary instance after the merging thereof to the corresponding target individual data. 8. The method of claim 1 , wherein the selecting an auxiliary instance comprises: selecting the auxiliary instance according to one or more characteristics of each instance of the plurality of instance of software program. 9. The method of claim 8 , wherein the selecting the auxiliary instance comprises: selecting the auxiliary instance according to a workload of each instance of the plurality of instances of the software program or according to a distance between the target instance and each one of the other instances of the plurality of compatible instances of the software program. 10. The method of claim 1 , wherein the selecting an auxiliary instance comprises: reserving the auxiliary instance for the target instance, the auxiliary instance being selected among other instances of the plurality of compatible instances of the software program not already reserved; and wherein the restoring the serving of each tenant request comprises: releasing the auxiliary instance for other selection. 11. The method of claim 1 , wherein each instance of the software program is installed in at least one first storage device and the individual data of the corresponding tenants is stored in at least one second storage device. 12. The method of claim 1 , wherein the computing environment is a cloud computing environment and the software program is supplied as a service in the cloud computing environment. 13. A computer program product for maintaining a multi-tenant software program in a computing environment comprising a plurality of virtual machines with a plurality of compatible instances of a so

Assignees

Inventors

Classifications

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 US9904538B2 cover?
A multi-tenant software program is maintained in a computing environment having a plurality of compatible instances of the program, each adapted to serve a plurality of tenants, with each controlling corresponding individual data. The method includes: receiving a maintenance request for a target instance, the target instance having one or more target tenants each controlling corresponding targe…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/656. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 27 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).