mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-27 11:55:15 +00:00
This patch adds support for multiple audit log outputs. If only one audit log output is enabled, the behavior does not change. If multiple audit log outputs are enabled, then the `audit_composite_storage_helper` class is used. It has a collection of `storage_helper` objects. Performance testing shows that read query throughput and auth request throughput are consistent even at high reactor utilization. It can also be observed that read query latency increases a bit. Read query ops = 60k/s AUTH ops = 200/s | Audit Mode | QUERY latency (p99) | Δ% vs none | |------------|---------------------|------------| | none | 777 | 0 | |table| 801 | +3.09% | |syslog | 803 | +3.35% | |table,syslog | 818 | +5.28% | Read query ops = 50k/s AUTH ops = 200/s | Audit Mode | QUERY latency (p99) | Δ% vs none | |------------|---------------------|------------| | none | 643 | 0 | |table| 647 | +0.62% | |syslog | 648 | +0.78% | |table,syslog | 656 | +2.02% | Detailed performance results are in the following Confluence document: [Audit performance impact test](https://scylladb.atlassian.net/wiki/spaces/RND/pages/148308005/Audit+performance+impact+test) Fixes #26022 Backport: The decision is to not backport for now. After making sure it works on the latest release, and if there is a need, we can do it. Closes scylladb/scylladb#26613 * github.com:scylladb/scylladb: test: dtest: audit_test.py: add AuditBackendComposite test: dtest: audit_test.py: group logs in dict per audit mode audit: write out to both table and syslog audit: move storage helper creation from `audit::start` to `audit::audit` audit: fix formatting in `audit::start_audit` audit: unify `create_audit` and `start_audit`