[Pvfs2-developers] concurrent ls and rm

Sam Lang slang at mcs.anl.gov
Thu Sep 6 15:45:19 EDT 2007


On Sep 6, 2007, at 3:00 PM, Phil Carns wrote:

>
>>> 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.
>
> I just stumbled on to something while trying to clean up my  
> previous tests.  If I have the pcache disabled, then rm -rf of a  
> large directory never works right, even if all of the other clients  
> are idle.  It is possible that we have the opposite problem?  That  
> actually the pcache works fine it but it is the pcache miss case  
> that is broken?
>
> I'll switch back and forth a couple more times to confirm, but I'm  
> pretty sure this is consistent.

Yeah possibly.  It would make sense that ls while rm -rf would cause  
that too.  The pcache is FIFO, so the pos->name entries might be  
getting FIFO-ed out of the cache by the entries that ls is adding.   
When the pcache misses, it uses the step_to function based on the  
value of the position (walks through all the entries).  It could just  
be a bug in that code, but honestly the readdir with removes always  
confuses me when the index is meant to keep track of the position.   
How did it work in the previous impl when we had a db per directory?

-sam

>
> -Phil
>



More information about the Pvfs2-developers mailing list