From: liubo <liubo2009@cn.fujitsu.com>
To: Chris Mason <chris.mason@oracle.com>
Cc: linux-btrfs <linux-btrfs@vger.kernel.org>, josef <josef@redhat.com>
Subject: Re: [PATCH 1/9] Btrfs: introduce sub transaction stuff
Date: Fri, 20 May 2011 08:53:06 +0800 [thread overview]
Message-ID: <4DD5BB72.5040602@cn.fujitsu.com> (raw)
In-Reply-To: <1305850961-sup-454@shiny>
On 05/20/2011 08:23 AM, Chris Mason wrote:
> Excerpts from Liu Bo's message of 2011-05-19 04:11:24 -0400:
>> Introduce a new concept "sub transaction",
>> the relation between transaction and sub transaction is
>>
>> transaction A ---> transid = x
>> sub trans a(1) ---> sub_transid = x+1
>> sub trans a(2) ---> sub_transid = x+2
>> ... ...
>> sub trans a(n-1) ---> sub_transid = x+n-1
>> sub trans a(n) ---> sub_transid = x+n
>> transaction B ---> transid = x+n+1
>> ... ...
>>
>> And the most important is
>> a) a trans handler's transid now gets value from sub transid instead of transid.
>> b) when a transaction commits, transid may not added by 1, but depend on the
>> biggest sub_transaction of the last neighbour transaction,
>> i.e.
>> B->transid = a(n)->transid + 1,
>> (B->transid - A->transid) >= 1
>> c) we start a new sub transaction after a fsync.
>>
>> We also ship some 'trans->transid' to 'trans->transaction->transid' to
>> ensure btrfs works well and to get rid of WARNings.
>>
>> These are used for the new log code.
>
> This is exactly what I had in mind. I need to read it harder and make
> sure it interacts well with the directory logging code, but I love it.
>
> Thanks!
>
It's so great that you like it. :)
But I must NOTE again:
Due to the bug which patch 8 fixed, the previous preformance statistics I posted sometime ago,
like (*SPEED* : 4.7+ Mb/sec), are valueless and cannot be used as a basis any more...
Hope that more people can get the patchset tested.
thanks,
liubo
> -chris
>
next prev parent reply other threads:[~2011-05-20 0:53 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-19 8:11 [PATCH 0/9] Btrfs: improve write ahead log with sub transaction Liu Bo
2011-05-19 8:11 ` [PATCH 1/9] Btrfs: introduce sub transaction stuff Liu Bo
2011-05-20 0:23 ` Chris Mason
2011-05-20 0:53 ` liubo [this message]
2011-05-23 14:40 ` Chris Mason
2011-05-25 3:56 ` liubo
2011-05-25 10:21 ` liubo
2011-05-24 11:34 ` Chris Mason
2011-05-26 2:48 ` liubo
2011-05-19 8:11 ` [PATCH 2/9] Btrfs: update block generation if should_cow_block fails Liu Bo
2011-05-19 8:11 ` [PATCH 3/9] Btrfs: modify btrfs_drop_extents API Liu Bo
2011-05-19 8:11 ` [PATCH 4/9] Btrfs: introduce first sub trans Liu Bo
2011-05-19 8:11 ` [PATCH 5/9] Btrfs: still update inode trans stuff when size remains unchanged Liu Bo
2011-05-19 8:11 ` [PATCH 6/9] Btrfs: improve log with sub transaction Liu Bo
2011-05-19 8:11 ` [PATCH 7/9] Btrfs: add checksum check for log Liu Bo
2011-05-19 8:11 ` [PATCH 8/9] Btrfs: fix a bug of log check Liu Bo
2011-05-19 8:11 ` [PATCH 9/9] Btrfs: kick off useless code Liu Bo
2011-05-19 8:14 ` [PATCH 0/9] Btrfs: improve write ahead log with sub transaction liubo
2011-05-23 16:43 ` Josef Bacik
2011-05-24 1:29 ` liubo
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=4DD5BB72.5040602@cn.fujitsu.com \
--to=liubo2009@cn.fujitsu.com \
--cc=chris.mason@oracle.com \
--cc=josef@redhat.com \
--cc=linux-btrfs@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.