Re: reiser4: discard support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/30/2014 07:55 PM, Edward Shishkin wrote:
On 04/30/2014 05:04 PM, Ivan Shapovalov wrote:
[...]
>> There is a ready implementation of rb-trees in the kernel (see ./lib/rbtree.c,
>> ./lib/rbtree_test.c). Could you please take a look at this?
>
> I've checked it already. Well, in case of trees:
> - combined extent insertion+adjacent extent merge complexity is O(n*log(n))

Actually, this is:

1) Add n extents one-by-one to empty tree:
log(1) + log(2) + ... + log(n-1)

2) Merge 2 trees of n extents:


BTW, (2) is an excess component, since merging of 2 trees
looks like adding one-by-one extents to a tree, and the final
number of extents to discard is n.
So, when using trees, complexity is (1/2)log(n)+ nlog(n/e).


log(n) + log(n+1) + ... + log(2n-1)

Total: log(1*2*...*2n-1) = log((2n-1)!)

in accordance with Stirling's formula:

log((2n)!) = log(((2n)^(1/2))*(2n/e)^n) =
= (1/2)*log(2n) + n*log(2n/e) < n + n*log(n)

Since atoms can be merged in parallel, we have that
trees work better than lists. Also tree of extents has
better memory consumption because of merging extents.


>  against O(n+n*log(n)) in lists;
> - joining two trees is not less than O(log(n)) against O(1) in lists.
>
> So I can't see any benefit in using trees, and join performance is a downside of these. Am I missing something?
>
>>
>>>
[...]
> Why after reiser4_invalidate_list()? I thought that it should be called between reiser4_write_logs(), but before reiser4_invalidate_list().

OK, insert before. I think, it doesn't matter, since we don't look
at this list when issuing discard requests, no? :)

>
> And why not after all reiser4_invalidate_list() calls?
>
>>
>> Thanks,
>> Edward.
>> P.S.: You'll need to set up a debugging environment. Take a look at this:
>> http://bipinkunal.blogspot.cz/2012/05/kgdb-tutorial.html
>> Do you have a second machine with a serial port?
>
> No, I don't. Will a VM suffice?

Yes, if it works for you..

Thanks,
Edward.

--
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux File System Development]     [Linux BTRFS]     [Linux NFS]     [Linux Filesystems]     [Ext4 Filesystem]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Resources]

  Powered by Linux