[Pvfs2-developers] concurrent ls and rm
Sam Lang
slang at mcs.anl.gov
Thu Sep 6 15:17:50 EDT 2007
On Sep 6, 2007, at 2:09 PM, Phil Carns wrote:
>
>> Hi Phil,
>> The trove layer caches the position -> name mapping for positions
>> it returns back to the client on a readdir. The problem is
>> probably related to caching those entries, where the readdir for
>> the rm is iterating over the directory, and so inserting position
>> -> name entries into the cache, and then ls is coming along and
>> replacing those entries with its own, where the position is the
>> same but the name is further down in the directory (because rm
>> has removed some of them). That's just a guess though. You
>> could see if disabling that position cache helps fix the problem,
>> disabling it will cause the berkeley db iterate to walk through
>> all the entries up to the position though, so its going to be
>> much slower. The position cache is in dbpf-keyval-pcache.c.
>> Probably the right long term solution is to return the name as
>> the position, instead of an int.
>
> I just replicated this using just 1000 files (each about 200 bytes)
> in a single directory, again with one client doing an rm -rf and
> another client doing an ls in the same directory.
>
> Unfortunately, it doesn't look like disabling the pcache made any
> difference. I first tried disabling it by adding a "return 0" at
> the top of the PINT_dbpf_keyval_pcache_insert() function. I also
> tried modifying the dbpf_keyval_iterate_skip_to_position() function
> to not call PINT_dbpf_keyval_pcache_lookup().
>
> Is there anything else I could do to make sure the pcache isn't
> being used, or does this indicate that the problem is elsewhere?
Yeah, must be somewhere else. Sorry for the red herring. Hmm. Is
the file that's not getting deleted regular? i.e. Every file with
positions in multiples of 32 or something. If we had support for *
in pvfs2-rm you could verify that its not the kernel module -- the
position stuffing with iget4/5 in there has always seemed a bit
crufty. Otherwise, I would add gossip messages to the iterate code
to see what positions were being given and returned.
-sam
>
> -Phil
>
More information about the Pvfs2-developers
mailing list