I've been thinking a little bit about how to optimize the PROPFIND
requests in ra_serf. The core issue we had with Ev1 was that we had
to delay setting any of the properties until we had the file handle
open - this is why, way back in 2006, I just coded it to have a
parallel HTTP request per entry and had to do tracking to ensure we
did the right thing about ordering of the HTTP requests/responses.
Will Ev2 offer some lightweight way to set properties on a bunch of
local WC paths? Do the textbases already need to be present? (I'm
thinking here about how we would handle EOL properties.) Will we need
to keep the WC file handle open once we set the properties? ISTR that
a Ev1 characteristic was that you can't re-open a file multiple times
in an editor drive. And, we couldn't keep too many file handles open
or we would exhaust ulimits and such. Hence, thinking back on it now,
the reason we ended up where we did with ra_serf wasn't as much about
HTTP or serf - but more about the original editor API.
I'm guessing that if Ev2 doesn't cleanly support allowing properties
to be set completely independently from the textbases, we may want to
consider modifying Ev2 to support this in order to allow ra_serf to
batch up properties in one go or at least batched per-directory.
I'm happy to hear suggestions and thoughts...especially if the time
machine has solved this one already. =) -- justin
Received on 2012-05-19 16:02:38 CEST