All of lore.kernel.org
 help / color / mirror / Atom feed
* ANNOUNCE: consolidated patches for shared snapshots
@ 2008-12-08  3:41 Mikulas Patocka
  2008-12-08  6:19 ` FUJITA Tomonori
  0 siblings, 1 reply; 5+ messages in thread
From: Mikulas Patocka @ 2008-12-08  3:41 UTC (permalink / raw)
  To: Alasdair G Kergon; +Cc: device-mapper development, Milan Broz

Hi

I released new patches for shared snapshots. The functionality is the same 
as in previous releases, but the two snapshot exception stores, one 
created by Fujita Tomonori and one by me, are consolidated and common code 
is shared.

The patches are at:
http://people.redhat.com/mpatocka/patches/kernel/new-snapshots/

The patches don't alter existing snapshot implementation, they contain 
just new files (they alter only Kconfig and Makefile to make the new files 
compilable).

The new architecture is as follows:

The module dm-multisnapshot.ko contains common code for both exception 
stores. It has basically processing and queuing IOs and attaching 
snapshots and interfacing with device mapper.

This module loads the specific module for a given exception store:
dm-store-mikulas.ko for my store or dm-store-fujita-daniel.ko for Zumastor 
store. In the target constructor, there's an argument "mikulas" or 
"fujita-daniel" that tells which module to load.

The interface is what I designed --- the point is that Fujita's code can 
be converted to use my interface, but my code cannot be converted to use 
Fujita's interface --- so if we want to drive both exception stores with 
the same userspace code (we definitely want!), then there's no other 
option but to use my interface.

The difference from Fujita's old interface is that in my interface the 
kernel selects snapshot ID when creating a new snapshots and in old 
Fujita's interface the user selected it. For my snapshot store, it is a 
design requirement that the snapshot ID is seleted by the kernel driver.

There is really almost nothing to be shared with the old snapshot code. 
The data structures and the interface are have different logic --- for the 
old snapshots, there was one small structure for the origin and several 
big structures for the snapshots; for the new snapshots, there is one big 
structure for the origin and several small structures for the snapshots. 
So I wouldn't recommend to attempt to glue the new code on the old 
snapshots.

For Fujita:
You can take the file that I created and continue development on it.
I fixed some other bugs or non-portable constructs in the code, I marked 
them as comments so that you can review the fixes. I took the code from 
ftp://ftp.kernel.org/pub/linux/kernel/people/tomo/dm-snap/2008-11-26/ and 
ported it, so if you meanwhile made some other changes your the code, diff 
your changes against 2008-11-26 version and apply the diff by hand to the 
file that I release.

Mikulas

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-12-08 21:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-08  3:41 ANNOUNCE: consolidated patches for shared snapshots Mikulas Patocka
2008-12-08  6:19 ` FUJITA Tomonori
2008-12-08 14:02   ` Mikulas Patocka
2008-12-08 15:52     ` Heinz Mauelshagen
2008-12-08 21:31       ` Mikulas Patocka

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.