[Home]

Summary:ASTERISK-25040: pbx: Improve performance of reloads by making hint destruction more performant
Reporter:Matt Jordan (mjordan)Labels:
Date Opened:2015-04-30 10:20:07Date Closed:2015-07-27 11:32:03
Priority:MajorRegression?
Status:Closed/CompleteComponents:Core/PBX
Versions:Frequency of
Occurrence
Related
Issues:
causesASTERISK-25202 Hints extension state broken between 13.3.2 and 13.4
Environment:Attachments:( 0) ASTERISK-25040-master.diff
Description:The PBX core maintains two hash tables for hints: a container of the actual hints ({{hints}}), along with a container of devices that are watching that hint ({{hintdevices}}). When a dialplan reload occurs, each hint in the hints container is destroyed; this requires a lookup in the container of devices to find the device => hint mapping object. In the current code, this performs an {{ao2_callback}}, iterating over each of the device to hint objects in the {{hintdevices}} container. For a large number of hints, this is extremely
expensive: dialplan reloads with 20000 hints could take several minutes in just this phase.

This process could be made more efficient by storing the key of the device (its name) with the hint. This would prevent an expensive {{ao2_callback}}.
Comments:By: Asterisk Team (asteriskteam) 2015-07-26 11:45:36.656-0500

This issue has been reopened as a result of your commenting on it as the reporter. It will be triaged once again as applicable.

By: Asterisk Team (asteriskteam) 2015-07-26 11:54:12.240-0500

This issue has been reopened as a result of your commenting on it as the reporter. It will be triaged once again as applicable.