[Twisted-Python] Large Transfers
Bernhard Herzog
bh at intevation.de
Sat May 10 11:50:54 MDT 2003
Andrew Bennetts <andrew-twisted at puzzling.org> writes:
> On Sat, May 10, 2003 at 06:01:40PM +0200, Bernhard Herzog wrote:
> >
> > The tests, AFAICT, simply check the length (as defined by the len
> > builtin) of lists, tuples and strings. So if the sender can't send e.g.
> > [0] * 1000000, it could just as well send [[0] * 1000 for i in range(1000)]
> > which would consume roughly the same amount of memory on the receiver's
> > side but would pass all the SIZE_LIMT tests. Using a large dictionary
> > seems to work too.
> >
> > A better solution for limiting the size seems to be a limit on the
> > number of bytes accepted by the receiver for a single PB call.
>
> You seem to be misunderstanding the difference between PB and Banana.
While I wouldn't claim to understand all of it, I am aware that PB !=
Banana. But PB uses Banana AFAIK, so any limit in Banana is also a limit
in PB.
> The limit is in the Banana layer, so that it can remain simple and
> fast.
But why hardwire it?
> A long list of small items breaks into small pieces at the Banana
> level already.
I'm not sure what's this supposed to mean. If I try to send [0] * 1000000
via PB I do get an error because of the size limit, while
[[0] * 1000 for i in range(1000)] works (at least with the Python
implementation, I didn't try cBanana). Is one of them handled completely
at the banana-level and the other isn't?
Bernhard
--
Intevation GmbH http://intevation.de/
Sketch http://sketch.sourceforge.net/
MapIt! http://www.mapit.de/
More information about the Twisted-Python
mailing list