IP Library Granted Patent US 10,148,745
Granted Patent B2
US 10,148,745 · App. 15/252,439 · Granted Dec 4, 2018

Application aware input/output fencing

Inventors: Jai Gahlot (Pune, IN); Abhijit Toley (Pune, IN)
Assignee: Veritas Technologies LLC
H04L67/1034H04L41/082H04L67/1097H04L41/0668H04L41/0859
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 10,148,745
App. No.
15/252,439
Granted
Dec 4, 2018
Kind
B2
Abstract

Disclosed herein are methods, systems, and processes to perform application aware input/output (I/O) fencing operations. A determination is made that an instance of an application is executing on a node that is part of a cluster. In response to the determination that the instance of the application is executing on the node, an identifier that associates the instance of the application and the node on which the instance of the application is executing is generated for the instance of the application. The identifier is installed on one or more coordination points.

Claims (134)

1. A method comprising:

determining that an instance of an application is executing on a node, wherein

the node is part of a plurality of nodes, and

the plurality of nodes are comprised a cluster; and

in response to the determination that the instance of the application is executing on the node,

generating an identifier for the instance of the application, wherein

the identifier associates the instance of the application and the node on which the instance of the application is executing, and

installing the identifier on one or more coordination points.

2. The method of claim 1 , further comprising:

determining whether one or more instances of one or more other applications are executing on the node; and

in response to the determination that the one or more instances of the one or more other applications are executing on the node,

generating one or more other identifiers for the one or more instances of the one or more other applications, wherein

the one or more other identifiers associate each of the one or more instances of the one or more other applications and the node, and

installing the one or more other identifiers on the one or more coordination points.

3. The method of claim 2 , wherein

the identifier is a registration key,

the one or more other identifiers are one or more other registration keys, and

the registration key and the one or more other registration keys are part of a plurality of registration keys.

4. The method of claim 3 , further comprising:

generating a coordination point registration key matrix, wherein

the coordination point registration key matrix comprises the plurality of registration keys,

the plurality of registration keys are stored on the one or more coordination points; and

maintaining the coordination point registration key matrix on the one or more coordination points.

5. The method of claim 4 , wherein

the plurality of nodes are communicatively coupled to each other,

the one or more coordination points are communicatively coupled to the plurality of nodes but are not part of the cluster,

the instance of the application and the one or more other instances of the one or more other applications are part of a plurality of application instances, and

each of the plurality of application instances execute on one or more nodes of the plurality of nodes.

6. The method of claim 5 , wherein

the plurality of application instances comprise a plurality of disparate application instances, and

the plurality of disparate application instances can be used to perform a plurality of Extract, Transform, and Load (ETL) processes.

7. The method of claim 5 , further comprising:

receiving an application weight matrix, wherein

the application weight matrix comprises at least one weight assigned to each of the plurality of application instances, a total application weight, and

a total node weight; and

transmitting the application weight matrix to each node of the plurality of nodes that is communicatively coupled to the node.

8. The method of claim 5 , further comprising:

determining whether the cluster is partitioned into a plurality of network partitions; and

determining whether a split-brain condition exists in the cluster as a result of the partitioning, wherein

the split-brain condition is caused by one or more application instances of the plurality of application instances executing on the one or more nodes of the plurality of nodes.

9. The method of claim 8 , further comprising:

performing an application fencing operation to rectify the split-brain condition, wherein the application fencing operation comprises, at least in part,

accessing an application weight matrix, and

performing a partition arbitration process.

10. The method of claim 9 , further comprising:

uninstalling one or more registration keys of the one or more application instances from the one or more coordination points based on a result of the partition arbitration process and as part of performing the application fencing operation, wherein

the uninstalling causes termination of the one or more application instances instead of the one or more nodes on which the one or more application instances are executing.

11. A non-transitory computer-readable storage medium (CRM) storing program instructions executable to:

determine that an instance of an application is executing on a node, wherein

the node is part of a plurality of nodes, and

the plurality of nodes are comprised a cluster; and

in response to a determination that the instance of the application is executing on the node,

generate an identifier for the instance of the application, wherein

the identifier associates the instance of the application and the node on which the instance of the application is executing, and

install the identifier on one or more coordination points.

12. The non-transitory CRM of claim 11 , further comprising:

determining whether one or more instances of one or more other applications are executing on the node; and

in response to the determination that the one or more instances of the one or more other applications are executing on the node,

generating one or more other identifiers for the one or more instances of the one or more other applications, wherein

the one or more other identifiers associate each of the one or more instances of the one or more other applications and the node, and

installing the one or more other identifiers on the one or more coordination points.

13. The non-transitory CRM of claim 12 , wherein

the identifier is a registration key,

the one or more other identifiers are one or more other registration keys, and

the registration key and the one or more other registration keys are part of a plurality of registration keys.

14. The non-transitory CRM of claim 13 , further comprising:

generating a coordination point registration key matrix, wherein

the coordination point registration key matrix comprises the plurality of registration keys,

the plurality of registration keys are stored on the one or more coordination points; and

maintaining the coordination point registration key matrix on the one or more coordination points.

15. The non-transitory CRM of claim 14 , wherein

the plurality of nodes are communicatively coupled to each other,

the one or more coordination points are communicatively coupled to the plurality of nodes but are not part of the cluster,

the instance of the application and the one or more other instances of the one or more other applications are part of a plurality of application instances,

each of the plurality of application instances execute on one or more nodes of the plurality of nodes,

the plurality of application instances comprise a plurality of disparate application instances, and

the plurality of disparate application instances can be used to perform a plurality of Extract, Transform, and Load (ETL) processes.

16. The non-transitory CRM of claim 15 , further comprising:

receiving an application weight matrix, wherein

the application weight matrix comprises at least one weight assigned to each of the plurality of application instances, a total application weight, and

a total node weight;

transmitting the application weight matrix to each node of the plurality of nodes that is communicatively coupled to the node;

determining whether the cluster is partitioned into a plurality of network partitions;

determining whether a split-brain condition exists in the cluster as a result of the partitioning, wherein

the split-brain condition is caused by one or more application instances of the plurality of application instances executing on the one or more nodes of the plurality of nodes;

performing an application fencing operation to rectify the split-brain condition, wherein the application fencing operation comprises, at least in part,

accessing the application weight matrix, and

performing a partition arbitration process; and

uninstalling one or more registration keys of the one or more application instances from the one or more coordination points based on a result of the partition arbitration process and as part of performing the application fencing operation, wherein

the uninstalling causes termination of the one or more application instances instead of the one or more nodes on which the one or more application instances are executing.

17. A system comprising:

one or more processors; and

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

determine that an instance of an application is executing on a node, wherein

the node is part of a plurality of nodes, and

the plurality of nodes are comprised a cluster; and

in response to a determination that the instance of the application is executing on the node,

generate an identifier for the instance of the application, wherein

the identifier associates the instance of the application and the node on which the instance of the application is executing, and

install the identifier on one or more coordination points.

18. The system of claim 17 , further comprising:

determining whether one or more instances of one or more other applications are executing on the node; and

in response to the determination that the one or more instances of the one or more other applications are executing on the node,

generating one or more other identifiers for the one or more instances of the one or more other applications, wherein the one or more other identifiers associate each of the one or more instances of the one or more other applications and the node, and

installing the one or more other identifiers on the one or more coordination points.

19. The system of claim 18 , wherein

the identifier is a registration key,

the one or more other identifiers are one or more other registration keys, and

the registration key and the one or more other registration keys are part of a plurality of registration keys.

20. The system of claim 19 , further comprising:

generating a coordination point registration key matrix, wherein

the coordination point registration key matrix comprises the plurality of registration keys,

the plurality of registration keys are stored on the one or more coordination points; and

maintaining the coordination point registration key matrix on the one or more coordination points.

21. The system of claim 20 , wherein

the plurality of nodes are communicatively coupled to each other,

the one or more coordination points are communicatively coupled to the plurality of nodes but are not part of the cluster,

the instance of the application and the one or more other instances of the one or more other applications are part of a plurality of application instances,

each of the plurality of application instances execute on one or more nodes of the plurality of nodes,

the plurality of application instances comprise a plurality of disparate application instances, and

the plurality of disparate application instances can be used to perform a plurality of Extract, Transform, and Load (ETL) processes.

22. The system of claim 21 , further comprising:

receiving an application weight matrix, wherein

the application weight matrix comprises at least one weight assigned to each of the plurality of application instances, a total application weight, and

a total node weight;

transmitting the application weight matrix to each node of the plurality of nodes that is communicatively coupled to the node;

determining whether the cluster is partitioned into a plurality of network partitions;

determining whether a split-brain condition exists in the cluster as a result of the partitioning, wherein

the split-brain condition is caused by one or more application instances of the plurality of application instances executing on the one or more nodes of the plurality of nodes;

performing an application fencing operation to rectify the split-brain condition, wherein the application fencing operation comprises, at least in part,

accessing the application weight matrix, and

performing a partition arbitration process; and

uninstalling one or more registration keys of the one or more application instances from the one or more coordination points based on a result of the partition arbitration process and as part of performing the application fencing operation, wherein

the uninstalling causes termination of the one or more application instances instead of the one or more nodes on which the one or more application instances are executing.

Assignments (12)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0931 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2017
From: GAHLOT, JAI; TOLEY, ABHIJIT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 043609/0740 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
Priority Claims (1)
IN 201621022438 · Jun 30, 2016 · national
Continuity (1)
Related Publication 20180007129A1 · Jan 4, 2018