public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Martin Steigerwald <Martin@lichtvoll.de>
To: linux-xfs@oss.sgi.com
Subject: Question on the WriteCache / WriteBarrier FAQ entry
Date: Thu, 20 Jul 2006 12:05:34 +0200	[thread overview]
Message-ID: <200607201205.34750.Martin@lichtvoll.de> (raw)


Hello,

I try to fully understand this entry:

"Many drives use a write back cache in order to speed up the performance 
of writes. However, there are conditions such as power failure when the 
write cache memory is never flushed to the actual disk. This causes 
problems for XFS and journaled filesystems in general because they rely 
on knowing when a write has completed to the disk. They need to know that 
the log information has made it to disk before allowing metadata to go to 
disk. When the metadata makes it to disk then the tail of the log can 
move. So if the writes never make it to the physical disk, then the 
ordering is violated and the log and metadata can be lost, resulting in 
filesystem corruption."

I have problems with: "When the metadata makes it to disk then the tail of 
the log can move". What does that mean exactly?

What I imagine is this: XFS write transaction to its log and the log 
grows. When writing the meta data changes of a complete transaction XFS 
removes it from the log. Now when the metadata changes of a transaction 
has been written completely but the transaction itself has not, it may 
happen that a transaction is removed from the on disk log before it has 
been written. But even when this does not happen there are metadata 
changes on disk that the log doesn't know about.

So there are two situations where unordered writes can make a journalling 
filesystem corrupt:

1) Metadata make it to disk before the transaction that belongs to them => 
There are metadata changes that XFS doesn't know about.

2) A transaction might be deleted from the log before it has been written 
=> This leads to a corrupted log.

Is that correct and complete? Please give feedback. 

You may use any of my text here to update / clarify the FAQ ;-)

Regards,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

             reply	other threads:[~2006-07-20 10:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-20 10:05 Martin Steigerwald [this message]
2006-07-21  5:14 ` Question on the WriteCache / WriteBarrier FAQ entry Timothy Shimmin

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=200607201205.34750.Martin@lichtvoll.de \
    --to=martin@lichtvoll.de \
    --cc=linux-xfs@oss.sgi.com \
    /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