[Twisted-Python] AmpList: length limitations

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Wed Mar 31 17:45:31 EDT 2010


On 03:54 pm, vlad.shevchenko at gmail.com wrote:
>Hi all!
>
>    Stuck with AmpList again :( Im trying to send/retrieve data much 
>larger
>then 64K and choose AmpList cause it "Convert a list of dictionaries 
>into a
>list of AMP boxes".
>
>My original data looks like a long list of dicts [ {1}, {2}, ..., {x} 
>].
>I convert it to [
>    {'data': 'json encoded 1,2 dicts'},
>    {'data': 'json encoded 3,4 dicts}',
>    ...
>] hoping EACH element in converted list will be converted to AmpBox and
>retriever on wire.
>
>However, still got TooLong exception on AmpBox.serialize(). AmpBox 
>trying to
>serialize all my converted list but not each dict in it separately.
>
>Does this behavior ok, or this is a bug?

When you use an AmpList, the value is still serialized as a single key's 
value string, so the 64k limit still applies, even if it has sub- 
structures of its own, none of which exceed the limit.

At the Twisted sprint hosted by Flumotion last weekend, some people were 
working on adding real streaming support to AMP.  I think most of the 
progress made was in understanding how the implementation should work, 
though.

The associated ticket is #2529.
>
>--
>WBR, Vlad



More information about the Twisted-Python mailing list