On 03.06.2011 10:52, Julian Foad wrote:
> Hi Stefan2 and others.
> This patch simplifies code in RA-svn/marshal.c by using a single code
> path to read both short and long strings efficiently. Using a single
> code path is beneficial for test coverage.
> It is an alternative to r1028352 which merged r985606 and r1028092 from
> the performance branch.
> I have run the test suite over RA-svn (with BDB) but haven't done any
> more testing than that. It's just something I noticed while looking at
> that code, it's not solving a problem I've noticed or anything like
> that. By inspection I believe it is more efficient than
> read_long_string() was, and unchanged for short strings, but if you're
> able to do any performance analysis on it, that would be great.
Thanks for the patch. Currently, I 'm in the process
of moving and won't find time for a detailed review
and test until sometime next week.
But maybe the right solution would be replacing
read_long_string() with a simple error return. That
is the only way to limit memory consumption on the
server side. If the protocol has been we implemented
correctly, no string should be longer than about 100k
(a svndiff window). So, rejecting everything above,
say, 16M should be fine.
Received on 2011-06-04 08:53:53 CEST