> On Sept. 4, 2014, 3:49 p.m., Matt Jordan wrote:
> > This is a loaded question but... how much does 64k "buy" us? That is, how 
> > many different list elements can we typically embed in a 64k body?
> 
> Mark Michelson wrote:
>     The list used in the test on /r/3978/ has 20 presence resources. The full 
> state NOTIFY takes up ~17500 bytes. So, extrapolating a bit, if you're 
> subscribing to presence (with no Digium presence supplement), then I ballpark 
> the maximum at ~70 resources. If you have a setup where you have a master 
> list with embedded sublists, then the number goes down some, but not by much. 
> If you had a top-level list with two approximately equal sublists, I'd reckon 
> that with the extra RLMI body part, you'd maybe have to dock the estimate by 
> a single resource, maybe two.
>     
>     MWI bodies are much smaller than presence bodies, so I'd estimate you 
> could probably get about 5 times as many MWI resources as presence resources 
> at 64K.
> 
> Mark Michelson wrote:
>     And just so we have some numbers here, I made a local change to the test 
> to enable Digium presence, and the resulting full state NOTIFY now is ~19500 
> bytes. So with Digium presence, the estimate for number of presence resources 
> drops to ~60 resources at 64K.

I'd say this approach makes sense.

I can see eventually wanting to break lists up into 64k chunks, each in their 
own NOTIFY request - although I'm not sure that's allowed, since you're no 
longer sending the full state in a single NOTIFY request.


- Matt


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3977/#review13241
-----------------------------------------------------------


On Sept. 4, 2014, 3:11 p.m., Mark Michelson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3977/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2014, 3:11 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24181
>     https://issues.asterisk.org/jira/browse/ASTERISK-24181
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> When testing RLS with large lists, it was found that attempting to send a 
> full state NOTIFY request would result in an error from PJSIP of 
> PJSIP_EMSGTOOLONG. I've written in detail about the problem on the following 
> wiki page: https://wiki.asterisk.org/wiki/display/AST/PJSIP+Large+Messages
> 
> On that page, I propose several solutions to the problem. The one presented 
> in this review is based on the edit at the bottom of the wiki page. We get 
> around the max message size of PJSIP by pre-allocating the transmission data 
> buffer to be large enough to hold whatever message we need to send. This way, 
> PJSIP happily writes the message to the buffer and sends it on.
> 
> There are a couple of questionable bits in this review:
> 1) Even though we are working around PJSIP's maximum message size limit, this 
> patch imposes its own limit of 64000 bytes for the message. Should we perhaps 
> make this limit smaller? Larger? Transport-dependent?
> 2) If we detect that the message is too large to be sent, we return an error 
> when attempting to send the NOTIFY. However, I wonder if we should also just 
> terminate the subscription as well.
> 
> 
> Diffs
> -----
> 
>   /branches/13/res/res_pjsip_pubsub.c 422576 
> 
> Diff: https://reviewboard.asterisk.org/r/3977/diff/
> 
> 
> Testing
> -------
> 
> See /r/3978 for a testsuite test that exercises this.
> 
> 
> Thanks,
> 
> Mark Michelson
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to