Re: multiget reports Re: Thoughts on relation to WebDAV

On 28.05.2008, at 09:32, Julian Reschke wrote:
> Helge Hess wrote:
>> ...
>> Probably this was discussed before? Was the conclusion that  
>> pipelining is a sufficient replacement?
>> ...
> Any kind of a batched GET defeats caching.

Could you elaborate? An MGET capable cache could still disassemble the  
MGET and serve the individual resources from its cache (which is in  
fact why I would prefer a real MGET instead of a REPORT). It would  
really just be a nested request.

> So far I haven't seen evidence that doing it will work better than  
> just issuing many GET requests.

The overhead in database based servers is magnitudes higher (at  
various points, record lookup, flushes, etc).
In theory they could coalesce pipelined requests and then perform them  
in bulk, but this is very hard to do and not viable in practice.  
Besides that few clients do pipelining.

There are many backends which can do set operations magnitudes faster  
than individual ones. (but I think everyone is aware of that :-)

> So, no, there's certainly no consensus for or against it, but it  
> would be really useful to have scenarios described and benchmarked...


Its not a really good example because its not a hugely compliant  
WebDAV server nor implemented that well, but the OpenGroupware.org  
ZideStore serves iCal and vCard files via GroupDAV.
An individual GET with all the authentication, authorization and vCard  
building takes ~50ms which hurts a lot when you retrieve 10.000  
records, its ~8mins in the initial sync! We do a lot of caching etc to  
speed things up, but still its pretty slow.
Now a multi-GET on moderatly sized batches takes almost the same time,  
eg for 100 records its still ~70ms.

I think thats the reason why CalDAV added those multiget REPORTs, on  
request of RDBMS based server vendors.

Thanks,
   Helge

PS: I'm not suggesting to do this in the core HTTP protocol for  
general usage! Just as a well defined replacement for the REPORTs so  
that CalDAV, CardDAV, etc don't invent their own.

PS2: Are there servers which actually do pipelining properly? W/o it  
MGET is also pretty much required to avoid latency on mobile networks.
-- 
Helge Hess
http://www.helgehess.eu/

Received on Wednesday, 28 May 2008 09:14:44 UTC