Skip to content

Use a ConcurrentHashMap for deferredDfOpsQueue and deferredDsOpsQueue #114

@RKrahl

Description

@RKrahl

The deferred operations in the FiniteStateMachine are stored in a HashMap deferredDfOpsQueue or deferredDsOpsQueue respectively depending of storageUnit. In order to maintain thread safety, access to these objects are synchronized, which essentially creates a global lock each time the queue is processed in the FiniteStateMachine. This has been observed to degrade performance in situations where the queue becomes large.

Using a ConcurrentHashMap instead would avoid the need for a synchronized access and might mitigate the degradation.

This proposal has been made by @stuartpullinger in the march 2020 F2F meeting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestperformanceIssues related to poor performance of the program

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions