Thread (44 messages) 44 messages, 4 authors, 2015-07-20

Re: [PATCH V4 00/13] MD: a caching layer for raid5/6

From: Shaohua Li <hidden>
Date: 2015-07-10 05:18:15

On Fri, Jul 10, 2015 at 03:10:44PM +1000, NeilBrown wrote:
On Thu, 9 Jul 2015 21:52:43 -0700 Shaohua Li [off-list ref] wrote:
quoted
On Fri, Jul 10, 2015 at 02:36:56PM +1000, NeilBrown wrote:
quoted
On Thu, 9 Jul 2015 21:08:49 -0700 Shaohua Li [off-list ref] wrote:
quoted
quoted
There is also the issue of what action commits a previous transaction.
I'm not sure what you had.  I'm suggesting that each metadata block
commits previous transactions.  Is that a close-enough match to what
you had?
What did you mean about a transaction? In my implementation, metadata
block and followed stripe data/parity consist of an io unit. io units can
be finished out of order. but if io unit has flush request (the data has
flush/flush bio or metadata is a flush block), the io unit can only
start after all previous io units and disk cache flush finish. Such io
unit is strictly ordered. The log patch describes this behavior. Does it
match?
Yes, a "transaction" is an "io unit".  The flushing is the same.
I just couldn't remember how, when reading the log on restart, you
determined if a given "io unit" was reliably consistent, or whether it
should be ignored (having possibly only partially been written).
The metadata block has a checksum for data of the block. data/parity has
checksum stored in metadata block. This way we can know if metadata and
data is consistent.

Thanks,
Shaohua
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help