Skip to content

Improve performance of "obtainLock" blocking during "expireUnusedOlderThan" runtime of "RedisLockRegistry" #8730

Closed
@mhyeon-lee

Description

@mhyeon-lee

In what version(s) of Spring Integration are you seeing this issue?

6.0.7.RELEASE

Describe the bug

When running "expireUnusedOlderThan" on "RedisLockRegistry", too many target lock objects are holding locks for too long.
The "obtain" operation on another thread will have a longer blocking time.

The Redis call is made at "lock.isAcquiredInThisProcess" in the link below, so if RedisLockRegistry has a lot of lock objects, this can take a long time.

To Reproduce

Steps to reproduce the behavior.

Expected behavior

To avoid holding a lock for too long, the scopes that hold the lock should be broken up into individual objects.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions