This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] watches not working from domU userspace

On 3 Jan 2006, at 18:12, Ewan Mellor wrote:

Could Xenstored not simply "save up" the EAGAIN until the commit? If a domain
migrated in the middle of a transaction, then Xenstored would see a
transaction handle that was invalid for that connection. In that case, it could simply ignore all writes until a commit, in which case it would return
EAGAIN, just as if the transaction had seen a conflicting write.

I think that forcing clients to handle EAGAIN for all messages, not just
commit, would be undesirable.

The alternative is to allow the restored client to see inconsistent data. Currently we ensure that a transaction sees a consistent snapshot of the store by copying the database file at the start of a transaction. If we do not copy that snapshot as part of save/restore (we don;t currently) then in-progress transactions in a restored guest cannot be guaranteed to see data consistent with their snapshot in later reads.

Seems to me that is likely to have more subtle issues than simply returning EAGAIN and requiring the client to just have to deal with it. If the client has to be robust against seeing weird inconsistent data then it is likely to have a bail-and-retry path for many transactional reads anyway. May as well make the issue explicit.

 -- Keir

Xen-devel mailing list