[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dm-devel
Subject:    Re: [dm-devel] [RFC,
From:       Kevin Corry <kevcorry () us ! ibm ! com>
Date:       2006-03-28 22:58:36
Message-ID: 200603281658.36642.kevcorry () us ! ibm ! com
[Download RAW message or body]

On Tue March 28 2006 9:01 am, Alasdair G Kergon wrote:
> A couple of options:
>
>   Retain the existing on-disk format exactly, but adjust the offsets and
>   sizes used in the reads and writes to avoid the problems (pre-reading
>   other data if necessary to extend a write).

This method seems like it should be easy to implement. We could just extend 
the buffer for the disk-header and always read and write both the header and 
the log at the same time, and just point lc->clean_bits at the appropriate 
offset within that buffer. The log could then remain at offset 1k, and the 
version wouldn't have to change.

>   Add an option to create version 3 metadata storing the offset in the
>   on-disk header but continue to use version 2 by default.

I think this is a better overall solution - less kludgy and more flexible.

>   Update userspace code to request version 3 (via new log parameter) for
>   new mirror logs by default, but still permit version 2 for new logs.

Is there a situation where someone would still need to create a new version 2 
log? I would think it would be far simpler to switch all new logs to use 
version 3, and revert back to version 2 only when the log offset recorded in 
the on-disk header is blank.

Or were you thinking of using this new log parameter to allow user-space to 
specify the offset of the log?

On a related note, shouldn't log_header.nr_regions be a uint64_t instead of a 
sector_t? The header_to_disk() and header_from_disk() routines already treat 
it as 64-bit.

-- 
Kevin Corry
kevcorry@us.ibm.com
http://www.ibm.com/linux/
http://evms.sourceforge.net/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic