On 7.4 audit log is saved in an async job using a pool with a single thread to serialize write access.
On high throughput this process is a bit heavy and slow, for instance when using Redis:
- there are 2 round trip to redis to save/get the job
- there is a transaction and session open
- the bundle events are reconnected
- there is a bulk command send to ES
- a commit
In case of Redis failure the event is lost.
In case of ES failure the event is lost (we can add a retry).
This should be improved. A possible solution is to do like ES indexing: collect events in a sync listener then send them to ES during afterCompletion.
In case of failure events can be logged to log4j and/or an async job can be scheduled to retry.
- depends on
-
NXBT-1018 Bench: Test with bigger default worker pool size
- Resolved
- is required by
-
NXP-19523 Fix random failure on Selenium tests of "event log" tab
- Resolved
-
NXP-19472 process core events in audit inlined
- Resolved
-
NXBT-1028 Bench: Analyze audit and fulltext updater refactoring
- Resolved
-
NXP-17862 Improve fulltext extraction
- Resolved
-
NXP-19128 Reduce job serialization footprint
- Resolved
-
NXP-19160 remove completed jobs as soon as possible
- Resolved