[ZBXNEXT-2988] Reduce configuration cache locking by pollers Created: 2015 Sep 28  Updated: 2015 Oct 16  Resolved: 2015 Oct 16

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: 3.0.0alpha3

Type: Change Request Priority: Minor
Reporter: Andris Zeila Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: cache, lock
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

When processing single value poller locks configuration cache 3 times:

  1. to get item from queue and retrieve its data from configuration cache
  2. to put item in queue and update its nextcheck, unreachable fields
  3. to get timestamp of the next item to poll

We can reduce the number of times configuration cache is being locked by merging (2) and (3).



 Comments   
Comment by Andris Zeila [ 2015 Oct 05 ]

Fixed in development branch svn://svn.zabbix.com/branches/dev/ZBXNEXT-2988

Comment by dimir [ 2015 Oct 06 ]

(1) [S] It should be discussed if we could also improve the locking performed by ICMP pinger.

<dimir> It was decided not to touch pinger at this point as applying this improvement there is not trivial and pinger is not that critical component.

CLOSED

Comment by dimir [ 2015 Oct 07 ]

(2) wiper suggested renaming DCpoller_requeue_items() to DC_requeue_poller_items() to be consistent with DCconfig_get_poller_items().

wiper on the second thought while DCconfig_requeue_poller_items() would be better match for DCconfig_get_poller_items(), it should be viewed also in DCrequeue_items() context. In this case DCpoller_requeue_items() hints that the items are being requeued from poller, which better fits its purpose.

<dimir> Agreed. CLOSED

Comment by Andris Zeila [ 2015 Oct 07 ]

Released in:

  • pre-3.0.0alpha3 r55970
Comment by Andris Zeila [ 2015 Oct 07 ]

(3) Documentation:

sasha CLOSED

Comment by Andris Zeila [ 2015 Oct 07 ]

(3) pollers should acquire nextcheck directly with DCconfig_get_poller_nextcheck() if there are no items to process (and requeue)
RESOLVED in r55979

<dimir> CLOSED

Comment by Andris Zeila [ 2015 Oct 08 ]

Released in:

  • pre-3.0.0alpha3 r55970 r56006
Generated at Fri Apr 26 21:51:22 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.