IP Library Granted Patent US 11,599,397
Granted Patent B2
US 11,599,397 · App. 16/779,632 · Granted Mar 7, 2023

Collaboration service to support cross-process coordination between active instances of a microservice

Inventors: Madhu M. Ramachandran (Cary, NC); Scott E. Joyce (Foxboro, MA)
Assignee: EMC IP Holding Company LLC
G06F9/52G06F8/316G06F9/262H04L67/10
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,599,397
App. No.
16/779,632
Granted
Mar 7, 2023
Kind
B2
Abstract

Techniques are provided for enabling cross-process coordination between multiple instances of given microservice in a cloud computing system. A method includes running a plurality of active instances of a given microservice of a computing system comprising a distributed microservices architecture. A first active instance of the plurality of active instances executes a portion of program code of the given microservice to perform a job. The portion of the program code of the given microservice includes an instance synchronization element which is configured to enable cross-process coordination between the plurality of active instances of the given microservice with the support of a collaboration service. The first active instance utilizes the instance synchronization element to communicate with the collaboration service and cause the collaboration service to execute a process associated with the instance synchronization element to thereby implement the cross-process coordination between the plurality of active instances for executing the job.

Claims (34)

1. A method, comprising:

running a plurality of active instances of a given microservice of a computing system comprising a distributed microservices architecture;

executing, by a first active instance of the plurality of active instances, program code of the given microservice to perform a job;

reaching, by the first active instance, a point in the executing program code of the given microservice that comprises an instance synchronization element which comprises an associated process that is configured to enable a collaboration service to implement cross-process coordination between the plurality of active instances of the given microservice to perform the job with the support of the collaboration service; and

utilizing, by the first active instance, the instance synchronization element to communicate with the collaboration service and cause the collaboration service to execute the process associated with the instance synchronization element to thereby implement the cross-process coordination between the plurality of active instances to perform the job.

2. The method of claim 1 , wherein the instance synchronization element comprises an aspect that configured using an aspect-oriented programming paradigm.

3. The method of claim 1 , wherein the instance synchronization element (i) enables the first active instance of the given microservice to request a lock on a portion of the program code to be executed to perform the job and (ii) enables the collaboration service to issue a lock on the portion of the program code so that only one active instance of the given microservice performs the job.

4. The method of claim 3 , wherein in response to the request for the lock, the collaboration service issues the lock to the first active instance requesting the lock.

5. The method of claim 3 , wherein in response to the request for the lock, the collaboration service selects an active instance among the plurality of active instances of the given microservice to perform the job, and issues the lock to the selected active instance to perform the job.

6. The method of claim 1 , wherein the instance synchronization element (i) enables the first active instance of the given microservice to pass an updated in-memory value of the first active instance to the collaboration service and (ii) enables the collaboration service to broadcast the updated in-memory value to other active instances of the given microservice.

7. The method of claim 6 , wherein the instance synchronization element is included in a setter process of the program code executed by the first active instance.

8. The method of claim 6 , wherein the instance synchronization element is included in a log level setting process of the program code executed by the first active instance.

9. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by one or more processors causes the one or more processors to implement a method comprising:

running a plurality of active instances of a given microservice of a computing system comprising a distributed microservices architecture;

executing, by a first active instance of the plurality of active instances, program code of the given microservice to perform a job;

reaching, by the first active instance, a point in the executing program code of the given microservice that comprises an instance synchronization element which comprises an associated process that is configured to enable a collaboration service to implement cross-process coordination between the plurality of active instances of the given microservice to perform the job with the support of the collaboration service; and

utilizing, by the first active instance, the instance synchronization element to communicate with the collaboration service and cause the collaboration service to execute the process associated with the instance synchronization element to thereby implement the cross-process coordination between the plurality of active instances to perform the job.

10. The article of manufacture of claim 9 , wherein the instance synchronization element comprises an aspect that configured using an aspect-oriented programming paradigm.

11. The article of manufacture of claim 9 , wherein the instance synchronization element (i) enables the first active instance of the given microservice to request a lock on a portion of the program code to be executed to perform the job and (ii) enables the collaboration service to issue a lock on the portion of the program code so that only one active instance of the given microservice performs the job.

12. The article of manufacture of claim 11 , wherein in response to the request for the lock, the collaboration service issues the lock to the first active instance requesting the lock.

13. The article of manufacture of claim 11 , wherein in response to the request for the lock, the collaboration service selects an active instance among the plurality of active instances of the given microservice to perform the job, and issues the lock to the selected active instance to perform the job.

14. The article of manufacture of claim 9 , wherein the instance synchronization element (i) enables the first active instance of the given microservice to pass an updated in-memory value of the first active instance to the collaboration service and (ii) enables the collaboration service to broadcast the updated in-memory value to other active instances of the given microservice.

15. The article of manufacture of claim 14 , wherein the instance synchronization element is included in a setter process of the program code executed by the first active instance.

16. The article of manufacture of claim 14 , wherein the instance synchronization element is included in a log level setting process of the program code executed by the first active instance.

17. A server node, comprising:

at least one processor; and

system memory configured to store program code, wherein the program code when executed by the at least one processor causes the at least one processor to perform a process comprising:

running a plurality of active instances of a given microservice of a computing system comprising a distributed microservices architecture;

executing, by a first active instance of the plurality of active instances, program code of the given microservice to perform a job;

reaching, by the first active instance, a point in the executing program code of the given microservice that comprises an instance synchronization element which comprises an associated process that is configured to enable a collaboration service to implement cross-process coordination between the plurality of active instances of the given microservice to perform the job with the support of the collaboration service; and

utilizing, by the first active instance, the instance synchronization element to communicate with the collaboration service and cause the collaboration service to execute the process associated with the instance synchronization element to thereby implement the cross-process coordination between the plurality of active instances to perform the job.

18. The server node of claim 17 , wherein the instance synchronization element comprises an aspect that configured using an aspect-oriented programming paradigm.

19. The server node of claim 17 , wherein the instance synchronization element (i) enables the first active instance of the given microservice to request a lock on a portion of the program code to be executed to perform the job and (ii) enables the collaboration service to issue a lock on the portion of the program code so that only one active instance of the given microservice performs the job.

20. The server node of claim 17 , wherein the instance synchronization element (i) enables the first active instance of the given microservice to pass an updated in-memory value of the first active instance to the collaboration service and (ii) enables the collaboration service to broadcast the updated in-memory value to other active instances of the given microservice.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2020
From: RAMACHANDRAN, MADHU M.; JOYCE, SCOTT E.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051706/0813 →