IP Library Granted Patent US 11,271,999
Granted Patent B2
US 11,271,999 · App. 17/109,642 · Granted Mar 8, 2022

Flexible associativity in multitenant clustered environments

Inventors: Sunil Yadav (Maharashtra, IN); Pranav Sarwate (Madhya Pradesh, IN)
Assignee: Veritas Technologies LLC
H04L67/1034H04L41/082H04L67/10H04L67/34
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,271,999
App. No.
17/109,642
Granted
Mar 8, 2022
Kind
B2
Abstract

Disclosed herein are methods, systems, and processes to provide flexible associativity for multitenant applications operating in clustered computing environments. One such method involves updating a configuration file to produce an updated configuration file by generating new relationship information based on associations between a dependent application represented by a parent object and a dependee application represented by a child object. In certain embodiments, the new relationship information is stored in a metadata object.

Claims (113)

1. A computer-implemented method comprising:

retrieving a configuration file including associativity information relating to a relationship between a parent object representing a dependent application and one or more child objects representing one or more dependee applications associated with the dependent application;

determining whether the dependent application represented by a parent object and an associated dependee application represented by a child object are both online;

in response to determining that the dependent application represented by the parent object and/or associated dependee application represented by the child object are not online,

determining whether the parent object and child object have a hard rigidity relationship;

in response to determining that the parent object and associated child object do not have a hard rigidity relationship,

determining whether the parent object and the associated child object have a local locality relationship;

in response to determining that the parent object and associated child object have a local locality relationship,

determining whether the dependee application represented by the associated child object is online locally; and

in response to determining that the dependee application represented by the associated child object is online locally,

updating the configuration file to indicate that the child object is currently associated with the parent object.

2. The computer-implemented method of claim 1 , further comprising:

in response to determining that the associated dependee application represented by the child object is not online,

determining whether there is another associated dependee application represented by a corresponding child object that is online; and

in response to determining that another associated dependee application represented by the corresponding child object is online,

updating the configuration file to indicate that the corresponding child object is currently associated with the parent object.

3. The computer-implemented method of claim 1 , further comprising:

determining a rigidity associated between a dependent application and a dependee application, wherein

the rigidity is one of a hard rigidity, a firm rigidity, or a soft rigidity, wherein

the hard rigidity requires the dependent application to be taken offline if the dependee application fails,

the firm rigidity allows the dependent application to remain online and be associated with a second dependee application if a first dependee application fails, and

the soft rigidity allows the dependent application to remain online and does not require the dependee application to be associated with any other dependee application if the first dependee application fails; and

updating the configuration file to reflect the rigidity association between the parent object corresponding to the dependent application and the child object corresponding to the dependee application.

4. The computer-implement method of claim 1 , wherein

the dependent application is dependent on data received from the dependee application.

5. The computer-implemented method of claim 1 , further comprising:

determining a locality requirement between a dependent application and one or more dependee applications, wherein

the locality requirement indicates a preference for either a local locality or a global locality, wherein

the local locality indicates that, in a case of a failover or migration of the dependent application, preference should be given to another dependee application that is operating on a cluster of a given node having on which the dependent application resides, and

the global locality indicates that, in the case of a failover or migration of the dependent application, the dependee application can be migrated to a different node in a cluster other than the given node; and

updating the configuration file to reflect the locality requirement between the parent object corresponding to the dependent application and one or more child objects corresponding to the one or more dependee applications.

6. The computer-implemented method of claim 1 , wherein:

the dependee application associated with a child object is a container application,

the dependent application associated with the parent object is a pluggable application, and

the pluggable application is a production database.

7. The computer-implemented method of claim 1 , wherein:

at least one dependee application or at least one dependent application are configured to be executed by a virtual machine.

8. The computer-implemented method of claim 1 , wherein:

the dependee application associated with a child object is a container application,

the dependent application associated with the parent object is a pluggable application, and

the pluggable application is a production database.

9. A non-transitory computer-readable storage medium comprising program instructions executable to perform a method comprising:

retrieving a configuration file including associativity information relating to a relationship between a parent object representing a dependent application and one or more child objects representing one or more dependee applications associated with the dependent application;

determining whether the dependent application represented by a parent object and an associated dependee application represented by a child object are both online;

in response to determining that the dependent application represented by the parent object and/or associated dependee application represented by the child object are not online,

determining whether the parent object and child object have a hard rigidity relationship;

in response to determining that the parent object and associated child object do not have a hard rigidity relationship,

determining whether the parent object and the associated child object have a local locality relationship;

in response to determining that the parent object and associated child object have a local locality relationship,

determining whether the dependee application represented by the associated child object is online locally; and

in response to determining that the dependee application represented by the associated child object is online locally,

updating the configuration file to indicate that the child object is currently associated with the parent object.

10. The non-transitory, computer-readable storage medium of claim 9 , wherein the method further comprises:

in response to determining that the associated dependee application represented by the child object is not online,

determining whether there is another associated dependee application represented by a corresponding child object that is online; and

in response to determining that another associated dependee application represented by the corresponding child object is online,

updating the configuration file to indicate that the corresponding child object is currently associated with the parent object.

11. The non-transitory, computer-readable storage medium of claim 9 , wherein the method further comprises:

determining a rigidity associated between a dependent application and a dependee application, wherein

the rigidity is one of a hard rigidity, a firm rigidity, or a soft rigidity, wherein

the hard rigidity requires the dependent application to be taken offline if the dependee application fails,

the firm rigidity allows the dependent application to remain online and be associated with a second dependee application if a first dependee application fails, and

the soft rigidity allows the dependent application to remain online and does not require the dependee application to be associated with any other dependee application if the first dependee application fails; and

updating the configuration file to reflect the rigidity association between the parent object corresponding to the dependent application and the child object corresponding to the dependee application.

12. The non-transitory, computer-readable storage medium of claim 9 , wherein

the dependent application is dependent on data received from the dependee application.

13. The non-transitory, computer-readable storage medium of claim 9 , wherein the method further comprises:

determining a locality requirement between a dependent application and one or more dependee applications, wherein

the locality requirement indicates a preference for either a local locality or a global locality, wherein

the local locality indicates that, in a case of a failover or migration of the dependent application, preference should be given to another dependee application that is operating on a cluster of a given node having on which the dependent application resides, and

the global locality indicates that, in the case of a failover or migration of the dependent application, the dependee application can be migrated to a different node in a cluster other than the given node; and

updating the configuration file to reflect the locality requirement between the parent object corresponding to the dependent application and one or more child objects corresponding to the one or more dependee applications.

14. The non-transitory, computer-readable storage medium of claim 9 , wherein

the dependee application associated with a child object is a container application,

the dependent application associated with the parent object is a pluggable application, and

the pluggable application is a production database.

15. The non-transitory, computer-readable storage medium of claim 9 , wherein

at least one dependee application or at least one dependent application are configured to be executed by a virtual machine.

16. A system comprising:

one or more processing units each including

one or more processors,

memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors, wherein

the one or more processing units, alone or in combination with one another, execute the program instructions to perform a method comprising:

retrieving a configuration file including associativity information relating to a relationship between a parent object representing a dependent application and one or more child objects representing one or more dependee applications associated with the dependent application;

determining whether the dependent application represented by a parent object and an associated dependee application represented by a child object are both online;

in response to determining that the dependent application represented by the parent object and/or associated dependee application represented by the child object are not online,

determining whether the parent object and child object have a hard rigidity relationship;

in response to determining that the parent object and associated child object do not have a hard rigidity relationship,

determining whether the parent object and the associated child object have a local locality relationship;

in response to determining that the parent object and associated child object have a local locality relationship,

determining whether the dependee application represented by the associated child object is online locally; and

in response to determining that the dependee application represented by the associated child object is online locally,

updating the configuration file to indicate that the child object is currently associated with the parent object.

17. The system of claim 16 , wherein the method further comprises:

in response to determining that the associated dependee application represented by the child object is not online,

determining whether there is another associated dependee application represented by a corresponding child object that is online; and

in response to determining that another associated dependee application represented by the corresponding child object is online,

updating the configuration file to indicate that the corresponding child object is currently associated with the parent object.

18. The system of claim 16 , wherein the method further comprises:

determining a rigidity associated between a dependent application and a dependee application, wherein

the rigidity is one of a hard rigidity, a firm rigidity, or a soft rigidity, wherein

the hard rigidity requires the dependent application to be taken offline if the dependee application fails,

the firm rigidity allows the dependent application to remain online and be associated with a second dependee application if a first dependee application fails, and

the soft rigidity allows the dependent application to remain online and does not require the dependee application to be associated with any other dependee application if the first dependee application fails; and

updating the configuration file to reflect the rigidity association between the parent object corresponding to the dependent application and the child object corresponding to the dependee application.

19. The system of claim 16 , wherein

the dependent application is dependent on data received from the dependee application.

20. The system of claim 16 , wherein the method further comprises:

determining a locality requirement between a dependent application and one or more dependee applications, wherein

the locality requirement indicates a preference for either a local locality or a global locality, wherein

the local locality indicates that, in a case of a failover or migration of the dependent application, preference should be given to another dependee application that is operating on a cluster of a given node having on which the dependent application resides, and

the global locality indicates that, in the case of a failover or migration of the dependent application, the dependee application can be migrated to a different node in a cluster other than the given node; and

updating the configuration file to reflect the locality requirement between the parent object corresponding to the dependent application and one or more child objects corresponding to the one or more dependee applications.

Assignments (11)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069591/0510 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069577/0001 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2022
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 059337/0159 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Feb 24, 2022
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 059247/0656 →
Continuity (3)
Continuation 16528756 · Aug 1, 2019
Continuation 15395109 · Dec 30, 2016
Related Publication 20210092184A1 · Mar 25, 2021