[ZBXNEXT-4577] Convert configuration cache mutexes to read/write locks Created: 2018 Jan 05 Updated: 2019 Jan 28 Resolved: 2018 Jun 12 |
|
Status: | Closed |
Project: | ZABBIX FEATURE REQUESTS |
Component/s: | Proxy (P), Server (S) |
Affects Version/s: | None |
Fix Version/s: | 4.0.0alpha8, 4.0 (plan) |
Type: | New Feature Request | Priority: | Trivial |
Reporter: | Andris Zeila | Assignee: | Vladislavs Sokurenko |
Resolution: | Fixed | Votes: | 0 |
Labels: | performance | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified |
Attachments: | pthread_lock.diff | ||||||||||||
Issue Links: |
|
||||||||||||
Epic Link: | DEV-677 | ||||||||||||
Team: | Team A | ||||||||||||
Sprint: | Sprint 25, Sprint 26, Sprint 27, Sprint 28, Sprint 29, Sprint 30, Sprint 31, Sprint 32, Sprint 33, Sprint 34, Sprint 35, Sprint 36 | ||||||||||||
Story Points: | 5 |
Description |
Zabbix does a lot of read only requests to configuration cache. By replacing configuration cache mutex with read/write lock we could parallelize such requests. Preliminary tests showed around 60% data processing maximum throughput increase when configuration cache mutex was replaced with pthread based read/write lock. We need to re-evaluate the implementation complexity and test results with on the latest trunk version and decide if we move forward with it. There are few thoughts to consider:
|
Comments |
Comment by Andris Zeila [ 2018 Jan 08 ] | ||||||||
Some quick performance data based on latest trunk:
| ||||||||
Comment by Andris Zeila [ 2018 Jan 08 ] | ||||||||
POC patch is attached. However one problem with read-write locks is handling of process exits. It might actually be impossible to add read-write locks while Zabbix processes simply exists in the case of fatal or terminate signal (most probably pthread_rwlock_unlock() is not safe to use in singal handler, but then again we already are doing things that are not supposed to be done in signal handler). | ||||||||
Comment by Vladislavs Sokurenko [ 2018 Jun 08 ] | ||||||||
Available in:
| ||||||||
Comment by Vladislavs Sokurenko [ 2018 Jun 08 ] | ||||||||
(6) Upgrade notes:
Installation requirements: martins-v Updated documentation: RESOLVED vso thanks, lets also add zlib as mandatory to upgrade notes and requirements, because it is mandatory. martins-v RESOLVED vso CLOSED | ||||||||
Comment by Vladislavs Sokurenko [ 2018 Jun 08 ] | ||||||||
(7) What's new: martins-v RESOLVED in what' s new. vso CLOSED |