Project

General

Profile

Actions

Feature #1690

open

Event queue performance enhancement

Added by Petr Fišer over 5 years ago. Updated about 5 years ago.

Status:
New
Priority:
Normal
Assignee:
Petr Fišer
Category:
-
Target version:
-
Start date:
05/24/2019
Due date:
% Done:

0%

Estimated time:
Owner:

Description

Currently we use event queue as a way to make some operations asynchronous.

User or LRT modifies some data in IdM. Data is persisted in IdM repository and an event is created. This event is enqueued into an event queue.
One of event queue processing threads (event-task-executor-X) takes the event out of the queue and synchronously makes all necessary operations.

In the current state of implementation, we are moving away from asynchronous provisioning. In effect, event-task-executor does all the work including provisioning operations. Those operations are, in recent IdM versions, coupled in such a way that event-task-executor does synchronous provisioning on all necessary systems one after another.
By default we can have 2*CPU count event-task-executors at most. In most situations this means: 2*CPU count = 8. Therefore we have, for instance, 8 threads that do operations which may take many seconds to complete.

We can raise the number of event-task-executor threads to some high number but this is only a workaround.
We should reevaluate the event queue philosophy and try to adjust the IdM internal architecture so we remove the possible event-queue bottleneck.

Some ideas:
  • Bring back some sort of asynchronous provisioning.
  • Make provisioning operation run i parallel. The whole provisioning operation will be capped only by the slowest system.
  • Think out some "intelligent event queue scheduling".

Files

threaddump-1568287310196.tdump (94 KB) threaddump-1568287310196.tdump Petr Fišer, 09/12/2019 12:09 PM

Related issues

Related to IdStory Identity Manager - Task #1688: Diagnose suspected interlocking of event and task scheduler executorClosedPetr Fišer05/24/2019

Actions
Actions

Also available in: Atom PDF