[prev in list] [next in list] [prev in thread] [next in thread]
List: fuse-devel
Subject: Re: [fuse-devel] FUSE_FORGET problem.
From: Terje Malmedal <terje.malmedal () usit ! uio ! no>
Date: 2010-12-17 16:10:57
Message-ID: s1wd3p0fkha.fsf () cornavin ! uio ! no
[Download RAW message or body]
[Miklos Szeredi]
> On Tue, 07 Dec 2010, Goswin von Brederlow wrote:
>> Terje Malmedal <terje.malmedal@usit.uio.no> writes:
>>
>> > [Miklos Szeredi]
>> >> On Thu, 02 Dec 2010, Terje Malmedal wrote:
>> >>> [Terje Malmedal]
>> >>> > Thankyou very much, but unfortunately it does not seem to work, I still
>> >>>
>> >>> Oopsie, my fault. gcc found an old fuse.h in /usr/include instead of the
>> >>> one I wanted it to use.
>> >>>
>> >>> Now it seems that things are working correctly.
>> >
>> >> Thanks for testing.
>> >
>> >> The 30 minutes processing time for 32M FORGETs made me think about
>> >> what else could be slowing this down. One thing that I found is that
>> >> libfuse uses a rather small hash table for hashing inodes. At such a
>> >> large number of cached nodes, this could mean significant performance
>> >> degradation not just for FORGET but for all operations. This only
>> >> applies to the high level API in <fuse.h>, you are using that aren't
>> >> you?
>> >
>> > Yes, that's right.
>> >
>> >> If so you could try increasing the value of f->name_table_size and
>> > f-> id_table_size in lib/fuse.c to some larger prime value
>> >> (e.g. 1572869).
>> >
>> > OK, I am trying that number first. Is there any reason not to go any
>> > higher, find a nice prime around hundred milllion or so? There is lots
>> > of RAM on the machine.
>>
>> Try it first just to see if it works. A large number is bad for the
>> general case though.
>>
>> If you want to patch this nicely then a dynamic size would be
>> good. Generate an array of primes and track how full the table is. If it
>> is too empty then shrink the table (next smaller prime in the array). If
>> it is too full then grow the table (next bigger prime in the array).
>> Making each prime about twice as big as the last gives good results.
> Committed a dynamic hash table implementation. It uses linear
> hashing, which grows the hash table size gradually, without big rehash
> events (which is bad for latency).
Excellent.
> Testing is welcome.
I've been running it a little bit. Seems to work fine, no immediate
problems at least, I'll let you know if anything turns up later.
--
- Terje
malmedal@usit.uio.no
------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
fuse-devel mailing list
fuse-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fuse-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic