Details
-
Improvement
-
Resolution: Fixed
-
Major
-
6.6.5
-
1
Description
We take a large op/s hit when auditing is enabled for high-frequency events like document read/modify. Profiling indicates that as much as 21% of CPU time on each worker thread is spent doing JSON operations when constructing audit events to be passed to auditd.
https://share.firefox.dev/3AH3DlK
*Possible solutions
a) We might be able to use a C++ native data structure during event creation and only generate the JSON string when needed to be passed to auditd. We might even be able to use fmt to generate the JSON string. Memcached events have 5 hard-coded properties and about 5 more optional ones.
b) We could swap out nlohmann which is known to be slow with something like simd_json.
Attachments
Issue Links
- relates to
-
MB-52357 Improve performance for document access auditing when using filtering
- Closed
For Gerrit Dashboard: MB-53572 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
198099,22 | MB-53572: Verify that new impl to format timestamps | master | kv_engine | Status: MERGED | +2 | +1 |
198190,6 | MB-53572: Add ::to_string(time_point) | master | platform | Status: MERGED | +2 | +1 |
198207,12 | MB-53572: Migrate from ISOTime to platform's timestamp() | master | kv_engine | Status: MERGED | +2 | +1 |
209400,1 | [BP] MB-53572: Verify that new impl to format timestamps | neo | kv_engine | Status: ABANDONED | 0 | 0 |
209401,1 | [BP] MB-53572: Migrate from ISOTime to platform's timestamp() | neo | kv_engine | Status: ABANDONED | 0 | 0 |