Skip to content

Introduce poison inside the cross-process locks #4874

Open
@Hywan

Description

@Hywan

During our work on the event cache store, we have worked on improving the event cache store to introduce lock and lock_unchecked with the notion of a poison. If a lock has been taken by another process, the lock is poisoned and returned an error. This is helpful to know when to refresh the state of the data owned by such a lock.

This work is nice but we realise it should be extended to all cross-process locks, not only the event cache store.

Tasks:

  • Introduce a generation mechanism right inside the cross-process lock type,
  • Update lock() to return a poison if any,
  • Add lock_unchecked() to lock regardless of the poison,
  • Implement this new mechanism in the event cache store
  • Remove the existing similar mechanism in the crypto store
    • A clean up in the crypto store is necessary to put all the states in a single place, so that cache invalidation is easier

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions