# US 2021/0240544 A1 · Collaboration service to support cross-process coordination between active instances of a microservice

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240544 A1
- Document ID: US20210240544A1
- Status: Published application
- Kind: A1
- Application number: 16/779,632
- Filed: 2020-02-02
- Published: 2021-08-05
- Earliest claimed: 2020-02-02
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Madhu M. Ramachandran; Scott E. Joyce
- Web page: https://patentgrep.com/patent/US20210240544A1

## CPC

- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 8/316: {Aspect-oriented programming techniques}
- G06F 9/262: {Arrangements for next microinstruction selection}
- G06F 9/54: Interprogram communication
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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, a portion of program code of the given microservice to perform a job, wherein the portion of the program code of the given microservice comprises 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; and
utilizing, by the first active instance, 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.

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 1)

The method of claim 1, wherein the instance synchronization element (i) enables the first active instance of the microservice to request a lock on the 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 microservice performs the job.

### Claim 4 (depends on 3)

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

### Claim 5 (depends on 3)

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

### Claim 6 (depends on 1)

The method of claim 1, wherein the instance synchronization element (i) enables the first active instance of the 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.

### Claim 7 (depends on 6)

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

### Claim 8 (depends on 6)

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

### Claim 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 is executable by 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, a portion of program code of the given microservice to perform a job, wherein the portion of the program code of the given microservice comprises 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; and
utilizing, by the first active instance, 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.

### Claim 10 (depends on 9)

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

### Claim 11 (depends on 9)

The article of manufacture of claim 9, wherein the instance synchronization element (i) enables the first active instance of the microservice to request a lock on the 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 microservice performs the job.

### Claim 12 (depends on 11)

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

### Claim 13 (depends on 11)

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

### Claim 14 (depends on 9)

The article of manufacture of claim 9, wherein the instance synchronization element (i) enables the first active instance of the 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.

### Claim 15 (depends on 14)

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

### Claim 16 (depends on 14)

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

### Claim 17

A server node, comprising:
at least one processor; and
system memory configured to store program code, wherein the program code is executable by 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, a portion of program code of the given microservice to perform a job, wherein the portion of the program code of the given microservice comprises 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; and
utilizing, by the first active instance, 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.

### Claim 18 (depends on 17)

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

### Claim 19 (depends on 17)

The server node of claim 17, wherein the instance synchronization element (i) enables the first active instance of the microservice to request a lock on the 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 microservice performs the job.

### Claim 20 (depends on 17)

The server node of claim 17, wherein the instance synchronization element (i) enables the first active instance of the 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.
