# US 10,503,636 B2 · Concurrent hierarchical dead actor collection in a distributed system

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

- Number: US 10,503,636 B2
- Document ID: US10503636B2
- Status: Granted
- Kind: B2
- Application number: 15/320,402
- Filed: 2014-06-30
- Published: 2017-05-25
- Granted: 2019-12-10
- Earliest claimed: 2014-06-30
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Luis Miguel Vaquero Gonzalez
- Web page: https://patentgrep.com/patent/US10503636B2

## CPC

- G06F 12/0261: {using reference counting}
- H04L 12/6418: {Hybrid transport}
- G06F 12/12: Replacement control
- G06F 2212/154: Networked environment
- 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

Examples relate to providing concurrent dead actor collection. In some examples, a blocked notification is received from an actor of a number of actors in a distributed system, where the actors are arranged in an actor hierarchy that describes communication links between the actors. In response to receiving the blocked notification, a blocked status is requested from each other actor in a loop subset of the actors, where each of the other actors is connected to the actor in the actor hierarchy by an incoming edge. After using the blocked status of each of the other actors to determine that incoming edges of the actor refer to blocked actors, the actor is designated for garbage collection.

## Claims

### Claim 1

A system for concurrent dead actor collection, comprising:
a plurality of processors configured to execute a distributed application of a distributed system;
a plurality of actors arranged in an actor hierarchy of communication links between the plurality of actors in the distributed system; and
a loop detector associated with a loop subset of the plurality of actors in the distributed system;
wherein a first actor associated with the loop subset is configured to:
be reclaimed by garbage collection after becoming a dead actor;
receive incoming messages from each of the other actors in the loop subset;
determine an incoming reference count from the incoming messages waiting to be processed by the first actor; and
in response to determining that the incoming reference count is zero, send a blocked notification to the loop detector,
wherein the loop detector is configured to:
in response to receiving the blocked notification, request a blocked status response from each other actor in the loop subset,
wherein the blocked status response depends on a state of each of the other actors; and
after determining from the requested blocked status responses that all of the other actors in the loop subset are blocked, designate the first actor for the garbage collection.

### Claim 2 (depends on 1)

The system of claim 1, further comprising:
a special actor comprising local variables and references that can be provided as outgoing messages to the plurality of actors, wherein the special actor cannot be collected by the garbage collection and the outgoing messages correspond to outgoing edges of the special actor in the actor hierarchy.

### Claim 3 (depends on 1)

The system of claim 1, wherein the reference count is zero when the actor has responded to the incoming messages.

### Claim 4 (depends on 1)

The system of claim 1, wherein the distributed system comprises a plurality of computing devices, wherein each of the plurality of computing devices provides at least one of the plurality of actors.

### Claim 5 (depends on 1)

The system of claim 1, wherein the loop detector is a parent actor of the first actor in the actor hierarchy.

### Claim 6 (depends on 5)

The system of claim 5, further comprising a garbage collector configured to concurrently collect resources associated with the first actor while operation of the distributed application continues.

### Claim 7

A method for concurrent dead actor collection, comprising:
receiving a blocked notification from a first actor of a plurality of actors in a distributed system, wherein the plurality of actors are arranged in an actor hierarchy that describes a plurality of communication links between the plurality of actors;
in response to receiving the blocked notification, requesting a blocked status response from each other actor in a loop subset of the plurality of actors, wherein the first actor has an incoming edge extending from each of the other actors in the loop subset, and wherein the blocked status response depends on a state of each of the other actors in the loop subset; and
after determining from the requested blocked status response of each of the other actors that all of the incoming edges of the first actor refer to blocked actors, designating the first actor for the garbage collection.

### Claim 8 (depends on 7)

The method of claim 7, wherein the blocked notification is sent by the first actor when a reference count of incoming edges of the first actor is zero.

### Claim 9 (depends on 7)

The method of claim 7, wherein the distributed system comprises a plurality of computing devices, wherein each of the plurality of computing devices provides at least one of the plurality of actors.

### Claim 10 (depends on 7)

The method of claim 7, wherein the loop detector is a parent actor of the first actor in the actor hierarchy.

### Claim 11 (depends on 10)

The method of claim 10, wherein the garbage collection concurrently collects resources associated with the first actor while operation of the distributed application continues.

### Claim 12

A non-transitory machine-readable storage medium encoded with instructions executable by a processor for providing concurrent dead actor collection, the machine-readable storage medium comprising instructions to:
receive a blocked notification from a first actor of a plurality of actors in a distributed system after a reference count of incoming edges of the first actor is determined by the first actor to be zero, wherein the plurality of actors are arranged in an actor hierarchy that describes a plurality of communication links between the plurality of actors;
in response to receiving the blocked notification, request a blocked status response from each other actor in a loop subset of the plurality of actors, wherein an incoming edge extends to the first actor from each of the other actors in the loop subset; wherein the blocked status response depends on a state of each of the other actors in the loop subset; and
after determining from the requested blocked status responses that all incoming edges of the first actor refer to blocked actors, designate the first actor for garbage collection.

### Claim 13 (depends on 12)

The non-transitory machine-readable storage medium of claim 12, wherein the distributed system comprises a plurality of computing devices, wherein each of the plurality of computing devices provides at least one of the plurality of actors.

### Claim 14 (depends on 12)

The non-transitory machine-readable storage medium of claim 12, wherein each actor of the plurality of actors provides functionality of a distributed application of the distributed system.

### Claim 15 (depends on 14)

The non-transitory machine-readable storage medium of claim 14, wherein the garbage collection concurrently collects resources associated with the first actor while operation of the distributed application continues.
