[ZBXNEXT-7553] Create user macro resolver to reduce configuration cache locks Created: 2020 Feb 01 Updated: 2025 Apr 23 Resolved: 2022 Jun 04 |
|
Status: | Closed |
Project: | ZABBIX FEATURE REQUESTS |
Component/s: | Proxy (P), Server (S) |
Affects Version/s: | None |
Fix Version/s: | 6.2.0beta3, 6.2 (plan) |
Type: | New Feature Request | Priority: | Major |
Reporter: | Andris Zeila | Assignee: | Andris Zeila |
Resolution: | Fixed | Votes: | 1 |
Labels: | None | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Attachments: |
![]() ![]() |
||||||||||||
Issue Links: |
|
||||||||||||
Team: | |||||||||||||
Sprint: | Sprint 86 (Mar 2022), Sprint 87 (Apr 2022), Sprint 88 (May 2022) | ||||||||||||
Story Points: | 5 |
Description |
Resolving user macro takes configuration cache read lock/unlock. For some performance critical locations user macros are already resolved during configuration cache synchronization. However with secret user macros this introduces another problem - secret macros can't be used in such locations. This could be improved by allowing processes to obtain immutable macro data which could be used to resolve user macros without locking. The processing would be like:
This should reduce configuration cache locking during batch processing. During configuration cache synchronization syncer would make a new macro data set if the old one is being used by some other processes. To reduce memory overhead and improve synchronization speed the macro data would contain references to the macro containers/macros, which would be copied only when changed. The old data sets would be freed by configuration syncer (use reference counting for macro data sets and free sets with 0 references after configuration sync).
|
Comments |
Comment by Andris Zeila [ 2022 May 18 ] |
Released
Documentation updated: |