From: Edward Shishkin <edward.shishkin@gmail.com>
To: ReiserFS Development mailing list <reiserfs-devel@vger.kernel.org>
Subject: Re: reiser4: discard support
Date: Wed, 30 Apr 2014 19:55:06 +0200 [thread overview]
Message-ID: <536138FA.3070602@gmail.com> (raw)
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:
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.
next reply other threads:[~2014-04-30 17:55 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-30 17:55 Edward Shishkin [this message]
2014-04-30 18:53 ` reiser4: discard support Edward Shishkin
-- strict thread matches above, loose matches on Subject: below --
2014-04-30 7:43 Ivan Shapovalov
2014-04-30 14:11 ` Edward Shishkin
[not found] ` <1B07908E-B768-407D-ADFA-B3C539FABB49@gmail.com>
[not found] ` <53613807.7090605@gmail.com>
2014-05-01 23:51 ` Ivan Shapovalov
[not found] ` <CAJZSrNK4=o9vocDfSM=4W5ZgtqZ6RVpmU66sGCu6HFsdN47OHw@mail.gmail.com>
2014-05-02 11:06 ` Ivan Shapovalov
2014-05-02 11:48 ` Edward Shishkin
2014-05-02 12:44 ` Edward Shishkin
2014-05-02 13:47 ` Ivan Shapovalov
2014-05-02 13:36 ` Ivan Shapovalov
2014-05-02 14:07 ` Edward Shishkin
2014-05-02 14:32 ` Ivan Shapovalov
2014-05-02 18:10 ` Edward Shishkin
2014-05-03 18:48 ` Ivan Shapovalov
2014-05-03 20:21 ` Edward Shishkin
2014-05-03 20:32 ` Ivan Shapovalov
2014-05-06 8:58 ` Edward Shishkin
2014-05-07 7:35 ` Ivan Shapovalov
2014-05-07 21:04 ` Edward Shishkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=536138FA.3070602@gmail.com \
--to=edward.shishkin@gmail.com \
--cc=reiserfs-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).