[Pvfs2-developers] crdirent

Sam Lang slang at mcs.anl.gov
Wed Jun 14 14:42:44 EDT 2006


I went ahead and committed the changes I made (with the HANDLE_COUNT  
flag).

-sam

On Jun 13, 2006, at 10:43 AM, Sam Lang wrote:

>
> On Jun 13, 2006, at 9:14 AM, Rob Ross wrote:
>
>> Sam Lang wrote:
>>> On Jun 12, 2006, at 10:07 PM, Rob Ross wrote:
>>>> i know we're trying to keep the # of DBs down, but would it  
>>>> really hurt that much to just use a separate DB for this data  
>>>> rather than having to play funny games with the key strings?
>>> I don't have much preference either way.  I don't find the null  
>>> string to be that much of a hack, but I can see the advantages of  
>>> having a separate db for stuff like this.  One disadvantage of  
>>> separate dbs is that we can't just do one sync at the end of a  
>>> crdirent or rmdirent.
>>
>> that's a very good point.
>>
>>>> also, it seems a little wacky that we have to pass a flag to  
>>>> tell trove when to count and when not to count. is there a clean  
>>>> way to avoid that?
>>> This is the problem that dbpf doesn't know anything about the  
>>> common keys.  We could copy the common keys in the dbpf layer,  
>>> kind of an ugly hack though.  Also, the crdirent and rmdirent  
>>> calls just give a handle and the component name, so we really can  
>>> only tell the difference between common keys and everything else  
>>> (!is_this_a_common_key(key)).  In this case that will either be a  
>>> component name or an xattr.  So we'd only be able to do as good  
>>> as counting both xattrs and directory entries.
>>
>> so maybe xattrs belong in a separate DB? i dunno. i don't really  
>> mean to open up the DB organization discussion again, but it seems  
>> like we're just a little off...comments?
>
> Hmm..that would make the xattr code a bit tricky I think, since  
> right now the common keys are considered xattrs in some cases  
> (viewdist for example).  It might be possible to add checks to the  
> code and branch to different dbs, but I kind of like the idea of  
> common keys (and even components if you have the dirent handle)  
> just being xattrs from the client's perspective.
>
> It seems like we're looking for a clean way of identifying the  
> handle from within the dbpf layer, and storing metadata (metadata  
> on the metadata ;-)) on that handle (independent of the other  
> keyvals on the handle).  The only ways I can think of doing that is  
> by either changing the trove api or passing in a flag that  
> specifies the type of handle being operated on.  The  
> TROVE_KEYVAL_HANDLE_COUNT does that to some degree, although  
> perhaps just specifying the type of handle as a flag for each of  
> the trove_keyval calls we make instead of passing in a flag that  
> specifies the count to be modified makes more sense?  That would  
> let the dbpf layer figure out what it should do (increment count,  
> etc.) based on the handle type.
>
> -sam
>
>>
>>> We talked about just adding the count to every handle in the  
>>> keyval db.  That adds a bunch of unecessary keyval entries (for  
>>> each file and directory).  I was trying to avoid that, but maybe  
>>> the cost isn't worth the hastle.
>>
>> that makes good sense and helps motivate the use of those special  
>> flags.
>>
>>>> how do you read the count?
>>> There's an additional trove_keyval_get_handle_info function.
>>
>> ok. seems like we're really close here. i'm ok with the solution  
>> you proposed, but if there is some slight tweak to the storage  
>> organization that helps make things a little cleaner...
>>
>> rob
>>
>
> _______________________________________________
> Pvfs2-developers mailing list
> Pvfs2-developers at beowulf-underground.org
> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
>



More information about the Pvfs2-developers mailing list