From: Chris Mason <chris.mason@fusionio.com>
To: Casper Bang <casper.bang@gmail.com>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: Experiences: Why BTRFS had to yield for ZFS
Date: Wed, 19 Sep 2012 11:25:50 -0400 [thread overview]
Message-ID: <20120919152550.GA15242@shiny.207.47.4.2> (raw)
In-Reply-To: <CALdWcbiW2ctG50ZCSzpTHA8t1CAhwTj66=GCoLcAFjGsjFBQJw@mail.gmail.com>
On Mon, Sep 17, 2012 at 02:45:08AM -0600, Casper Bang wrote:
> Abstract
> For database testing purposes, a COW filesystem was needed in order to
> facilitate snapshotting and rollback, such as to provide mirrors of
> our production database at fixed intervals (every night and by
> demand).
Thanks for taking the time to write this up follow through the thread.
It's always interesting to hear situations where btrfs doesn't work
well.
There are three basic problems with the database workloads on btrfs.
First is that we have higher latencies on writes because we are feeding
everything through helper threads for crcs. Usually the extra latencies
don't show up because we have enough work in the pipeline to keep the
drive busy.
I don't believe the UEK kernels have the recent changes to do some of
the crc work inline (without handing off) for smaller synchronous IOs.
Second, on O_SYNC writes btrfs will write both the file metadata and
data into a special tree so we can be crash safe. For big files this
tends to spend a lot of time looking for the extents in the file that
have changed.
Josef fixed that up and it is queued for the next merge window.
The third problem is that lots of random writes tend to make lots of
metadata. If this doesn't fit in ram, we can end up doing many reads
that slow things down. We're working on this now as well, but recent
kernels change how we cache things and should improve the results.
-chris
next prev parent reply other threads:[~2012-09-19 15:25 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-17 8:45 Experiences: Why BTRFS had to yield for ZFS Casper Bang
2012-09-17 9:15 ` Ralf Hildebrandt
2012-09-17 9:55 ` Casper Bnag
2012-09-17 10:05 ` Avi Miller
2012-09-17 10:47 ` Casper Bnag
2012-09-17 10:58 ` Avi Miller
2012-09-18 16:48 ` Andrew McGlashan
2012-09-18 21:46 ` Avi Miller
2012-09-18 5:28 ` Anand Jain
2012-09-19 7:28 ` Casper Bang
2012-09-19 7:36 ` Fajar A. Nugraha
2012-09-19 8:09 ` Casper Bang
2012-09-18 23:08 ` Gregory Farnum
2012-09-19 15:25 ` Chris Mason [this message]
2012-09-19 19:43 ` Casper Bang
2012-10-08 14:38 ` Casper Bang
2012-10-08 20:59 ` Avi Miller
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=20120919152550.GA15242@shiny.207.47.4.2 \
--to=chris.mason@fusionio.com \
--cc=casper.bang@gmail.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 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).