[Home]

Summary:ASTERISK-28119: stasis: Segment channel snapshot to reduce creation cost
Reporter:Joshua C. Colp (jcolp)Labels:
Date Opened:2018-10-18 11:26:51Date Closed:2018-11-26 14:08:57.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/Stasis
Versions:16.0.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Right now when we create a channel snapshot we create a fresh one, copy loads of stuff in, and ship it off. After examining the snapshot itself there's some room for improvement in that some stuff either never changes or infrequently changes. This issue is for investigating whether we can segment the channel snapshot and whether it would be worthwhile. By segment I mean make reasonable things combined under their own structure which is a pointer on the channel snapshot - and when a snapshot is creating we only create new segments for invalidated things.

What I think doesn't change ever:
name, uniqueid, type, manager_vars, ari_vars, tech_properties, creationtime

What I think rarely changes:
caller information, connected information, language, bridge information, hangup information

These could be grouped in logical blocks so that we don't have to recreate that part. As well these could take the place of storage on the channel structure itself in some cases, so we aren't duplicating it even there.
Comments:By: Joshua C. Colp (jcolp) 2018-10-18 11:28:16.242-0500

I don't think this is worthwhile for bridge snapshots, as comparatively they contain less and aren't raised as much. Channel snapshots are much more frequent.

By: Friendly Automation (friendly-automation) 2018-11-26 14:08:58.312-0600

Change 10622 merged by Jenkins2:
stasis: Segment channel snapshot to reduce creation cost.

[https://gerrit.asterisk.org/10622|https://gerrit.asterisk.org/10622]