On 7/12/2010 8:13 AM, David Magda wrote:
On Mon, July 12, 2010 10:03, Tim Cook wrote:
Everyone's SNAPSHOTS are copy on write BESIDES ZFS and WAFL's. The
filesystem itself is copy-on-write for NetApp/Oracle, which is why there
is no performance degradation when you take them.
Per Microsoft:
When a change to the original volume occurs, but before it is written to
disk, the block about to be modified is read and then written to a
“differences area”, which preserves a copy of the data block before it is
overwritten with the change.
That is exactly how pretty much everyone else takes snapshots in the
industry, and exactly why nobody can keep more than a handful on disk at
any one time, and sometimes not even that for data that has heavy change
rates.
The nice thing about VSS is that they can be requested by applications.
Though ZFS is ACID, and you can design an application to have ACID writes
to disk, linking the two can be tricky. And not all applications are ACID
(image editors, word processors, etc.).
ZFS is NOT automatically ACID. There is no guaranty of commits for async
write operations. You would have to use synchronous writes to guaranty
commits. And, furthermore, I think that there is a strong probability
that ZFS won't pass other aspects of ACID. Despite what certain folks
have been saying for awhile (*cough* Oracle *cough* Microsoft *cough*),
the filesystem is NOT a relational database. They have very distinctly
different design criteria.
You can also easily have applications request a ZFS snapshot, though not
specifically through an API right now.
It'd be handy to have a mechanism where applications could register for
snapshot notifications. When one is about to happen, they could be told
about it and do what they need to do. Once all the applications have
acknowledged the snapshot alert--and/or after a pre-set timeout--the file
system would create the snapshot, and then notify the applications that
it's done.
Why would an application need to be notified? I think you're under the
misconception that something happens when a ZFS snapshot is taken.
NOTHING happens when a snapshot is taken (OK, well, there is the
snapshot reference name created). Blocks aren't moved around, we don't
copy anything, etc. Applications have no need to "do anything" before a
snapshot it taken.
Given that snapshots will probably be more popular in the future (WAFL
NFS/LUNs, ZFS, Btrfs, VMware disk image snapshots, etc.), an agreed upon
consensus would be handy (D-Bus? POSIX?).
--
Erik Trimble
Java System Support
Mailstop: usca22-123
Phone: x17195
Santa Clara, CA
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss