Hi, if you are regarding only changes to a file as transactions, then flock() and fsync() is sufficient to reach ACID level with ZFS.
To achieve transactions which change multiple files, you need flock(), fsync() and use snapshots for transaction commit or rollback for transaction abort. But the performance and grade of parallelity sucks. with zfs sync=always pool you will not get transactions, because you have no chance to commit or abort the transaction. The I in ACID needs isolated access to the data, but you cannot see, when the data is consistent (C). Therefore we would need a transaction interface to ZFS to gain ACID capability. It is not possible to get it with the current API to ZFS, without the use of a database. Regards, Ulrich ----- Original Message ----- From: mi...@task.gda.pl To: zfs-discuss@opensolaris.org Sent: Monday, July 19, 2010 2:26:37 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna Subject: Re: [zfs-discuss] Legality and the future of zfs... On 12/07/2010 16:32, Erik Trimble wrote: > > 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 > # zfs set sync=always pool will force all I/O (async or sync) to be written synchronously. ps. still, I'm not saying it would made ZFS ACID. -- Robert Milkowski http://milek.blogspot.com _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss