IP Library Granted Patent US 11,586,354
Granted Patent B2
US 11,586,354 · App. 17/162,249 · Granted Feb 21, 2023

Techniques for role assignment of components of a distributed application

Inventors: Bathulwar Akash (Telangana, IN); Piyush Tibrewal (Pune, IN); Aditya Sriram Mattaparthi (Bangalore, IN); Suprava Das (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0604G06F3/067G06F3/0629
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,586,354
App. No.
17/162,249
Granted
Feb 21, 2023
Kind
B2
Abstract

The role of a node component of a distributed application may be changed without the need to terminate a current OS process implementing the node component. A first component on a first node of a distributed file server may be designated as a control path master and configured to execute a first group of services defined for the control path master as part of a first OS process. One or more other components on one or more other nodes of the distributed file server may be designated as a control path agent and configured to execute a second group of services defined for the control path agent as part of a respective second OS process. The control path master may be changed to a control path agent, and a control path agent may be changed to a control path master, without having to reboot the control path component in question.

Claims (42)

1. For a storage system including a cluster of processing nodes collectively executing a distributed application, wherein a first of the processing nodes serves a first role of a functional component of the distributed application, the first role defined by a first group of one or more services, a method comprising:

configuring a first operating system process of the first processing node, wherein said configuring configures the first operating system process to serve the first role of a master role by executing the first group of one or more services as part of the first operating system process;

determining to change the first role of the master role of the first operating system process of the first processing node to a second role of an agent role of the functional component, wherein the second role of the agent role is defined by a second group of one or more services; and

responsive to said determining to change the first role of the master role of the first operating system process to the second role of the agent role, changing the first role of the master role of the first operating system process of the first processing node to the second role of the agent role, while the first operating system process continues to execute, by changing the first operating system process to execute the second group of one or more services of the functional component.

2. The method of claim 1 , wherein each service of the first group and each service of the second group is an independently executable unit of instructions.

3. The method of claim 2 , wherein the first operating system process includes a plurality of threads, wherein each of the one or more services of the first group and the one or more services of the second group are executable by any of the plurality of threads asynchronously.

4. The method of claim 2 , wherein changing the first operating system process to execute the second group of one or more services includes at least one of:

undeploying one or more of the executable units that constitute the one or more services, respectively, of the first group so that the undeployed executable units are no longer executable by the first operating system process; or

deploying one or more of the executable units that constitute the one or more services, respectively, of the second group so that the one or more deployed executable units are executable by the first operating system process.

5. The method of claim 1 , wherein the distributed application is a distributed file system, and the functional component is a control path component of the distributed file system.

6. The method of claim 5 , wherein the first role is the master role of a master control path component that: receives control path requests, executes control path functions and delegates execution of control path functions to agent control path components, and

wherein the second role is the agent role of an agent control path component that: executes control path functions delegated by the master control path component; does not receive control path requests; and does not delegate execution of control path functions.

7. The method of claim 1 , wherein at least a second operating system process of a second of the plurality of nodes initially serves the second role of the agent of the functional component where the second operating system process executes the second group of one or more services, and wherein the method further comprises:

changing the second role of the agent role of the second processing node to the first role of the agent role, while the second operating system process continues to execute, by changing the second operating system process to execute the second group of one or more services.

8. A storage system comprising:

a cluster of processing nodes collectively executing a distributed application, wherein a first of the processing nodes serves a first role of a first functional component of the distributed application, the first role defined by a first group of one or more services; and

executable logic that implements a method including:

configuring a first operating system process of the first processing node, wherein said configuring configures the first operating system process to serve the first role of a master role by executing the first group of one or more services as part of the first operating system process;

determining to change the first role of the master role of the first operating system process of the first processing node to a second role of an agent role of the functional component, wherein the second role of the agent role is defined by a second group of one or more services; and

responsive to said determining to change the first role of the master role of the first operating system process to the second role of the agent role, changing the first role of the master role of the first operating system process of the first processing node to the second role of the agent role, while the first operating system process continues to execute, by changing the first operating system process to execute the second first group of one or more services of the functional component.

9. The storage system of claim 8 , wherein each service of the first group and each service of the second group is an independently executable unit of instructions.

10. The storage system of claim 9 , wherein the first operating system process includes a plurality of threads, wherein each of the one or more services of the first group and the one or more services of the second group are executable by any of the plurality of threads asynchronously.

11. The storage system of claim 9 , wherein changing the first operating system process to execute the second group of one or more services includes at least one of:

undeploying one or more of the executable units that constitute the one or more services, respectively, of the first group so that the undeployed executable units are no longer executable by the first operating system process; or

deploying one or more of the executable units that constitute the one or more services, respectively, of the second group so that the one or more deployed executable units are executable by the first operating system process.

12. The storage system of claim 8 , wherein the distributed application is a distributed file system, and the functional component is a control path component of the distributed file system.

13. The storage system of claim 12 , wherein the first role is the master role of a master control path component that: receives control path requests, executes control path functions and delegates execution of control path functions to agent control path components, and

wherein the second role is the agent role of an agent control path component that: executes control path functions delegated by the master control path component; does not receive control path requests; and does not delegate execution of control path functions.

14. The storage system of claim 8 , wherein at least a second operating system process of a second of the plurality of nodes initially serves the second role of the agent of the functional component where the second operating system process executes the second group of one or more services, and wherein the method further comprises:

changing the second role of the agent role of the second processing node to the first role of the agent role, while the second operating system process continues to execute, by changing the second operating system process to execute the second group of one or more services.

15. For a storage system including a cluster of processing nodes collectively executing a distributed application, wherein a first of the processing nodes serves a first role of a first functional component of the distributed application, the first role defined by a first group of one or more services, non-transitory computer-readable media having software stored thereon, the software comprising:

executable code that configures a first operating system process of the first processing node to serve the first role of a master role by executing the first group of one or more services as part of the first operating system process;

executable code to determine to change the first role of the master role of the first processing node to a second role of an agent role of the functional component, wherein the second role of the agent role is defined by a second group of one or more services; and

executable code that, responsive to determining to change the first role of the master role of the first operating system process to the second role of the agent role, changes the first role of the master role of the first processing node to the second role of the agent role, while the first operating system process continues to execute, by changing the first operating system process to execute the second group of one or more services of the functional component.

16. The non-transitory computer-readable media of claim 15 , wherein each service of the first group and each service of the second group is an independently executable unit of instructions.

17. The non-transitory computer-readable media of claim 16 , wherein the first operating system process includes a plurality of threads, wherein each of the one or more services of the first group and the one or more services of the second group are executable by any of the plurality of threads asynchronously.

18. The non-transitory computer readable media of claim 16 , wherein changing the first operating system process to execute the second group of one or more services includes at least one of:

undeploying one or more of the executable units that constitute the one or more services, respectively, of the first group so that the undeployed executable units are no longer executable by the first operating system process; or

deploying one or more of the executable units that constitute the one or more services, respectively, of the second group so that the one or more deployed executable units are executable by the first operating system process.

19. The non-transitory computer readable media of claim 15 , wherein the distributed application is a distributed file system, and the functional component is a control path component of the distributed file system.

20. The non-transitory computer readable media of claim 19 , wherein the first role is the master role of a master control path component that: receives control path requests, executes control path functions and delegates execution of control path functions to agent control path components, and

wherein the second role is the agent role of an agent control path component that: executes control path functions delegated by the master control path component; does not receive control path requests; and does not delegate execution of control path functions.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2021
From: AKASH, BATHULWAR; TIBREWAL, PIYUSH; MATTAPARTHI, ADITYA SRIRAM; DAS, SUPRAVA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055107/0752 →