Thanks for the thoughts.
Note that we need to be able to iterate over all three trees. This
code just iterates over WORKING, so it won't even have to stat(). I'll
need to expand this now to be able to iterate over BASE (no stats) and
over ACTUAL (use readdir), so I can see what those look like.
Now that I think about it, the read_info() needs to be able to signal
an unversioned item when iterating over ACTUAL.
Cheers,
-g
On Thu, Sep 11, 2008 at 7:26 AM, Erik Huelsmann <ehuels_at_gmail.com> wrote:
> Hi Greg,
>
>> +svn_error_t *
>> +generic_walker(svn_wc__db_t *db,
>> + const char *path,
>> + walker_func_t walk_func,
>> + void *walk_baton,
>> + apr_pool_t *scratch_pool)
>...
>
> When I look at one of the current problems in the WC is that we use a
> database to determine what *should* be there, then using stat() to
> find out if it's actually there. This is one of our biggest
> performance problems.
>
> I have been thinking that we could try to shift that around: using
> readdir() to determine what's there and then using the database to
> find out if our administration agrees. This way, stat()s could be
> concentrated, probably even optimized by the OS, instead of requiring
> single stat() calls for everything we want to know.
>
> Not that there's anything wrong with the design above, even with what
> I describe there may still be use-cases for this API, I just wanted to
> point out that using a BASE or WORKING tree as the basis to operate
> from (instead of the ACTUAL tree) may perpetuate existing problems.
>
> It's just one of those mind-dumps. Sorry if this is completely out of
> context. :-)
>
>
> Bye,
>
> Erik.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-11 17:27:36 CEST