This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 4168 - [UPD] Atomicity is a problem for a non-transacted implementation
Summary: [UPD] Atomicity is a problem for a non-transacted implementation
Status: CLOSED WONTFIX
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: Update Facility (show other bugs)
Version: Working drafts
Hardware: PC Linux
: P2 normal
Target Milestone: ---
Assignee: Andrew Eisenberg
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-09 15:54 UTC by John Snelson
Modified: 2007-01-30 13:01 UTC (History)
0 users

See Also:


Attachments

Description John Snelson 2007-01-09 15:54:10 UTC
In the description of upd:applyUpdates() in section 3.2.2.6 of the XQuery Update specification, it is specified that the updates are applied atomically - that is either all of them are applied, or none of them.

I understand that it is important to specify this for systems like databases which support ACID semantics. However, the implementation I have been working on is a stand alone C++ implementation that is not associated with a database. Modifications are written back to the file system, and all precautions are taken to check error cases before the updates are applied. It would be extremely complicated to write an atomicity framework for this implementation, and it simply isn't possible to check all error situations ahead of making the modifications.

Can I suggest that atomicity and other ACID semantics are specified as an optional feature of XQuery Update? This allows implementations not backed by an existing transactional store the flexibility to implement the specification without needing to implement atomicity as well.
Comment 1 Michael Kay 2007-01-09 21:05:34 UTC
Perhaps the spec needs to say somehow that atomicity is guaranteed in the event of application errors (errors that are defined in the language semantics) but not in the event of a failure of the technical infrastructure on which the processor is dependent?
Comment 2 Don Chamberlin 2007-01-29 22:42:26 UTC
John,
Thanks for your comment, which was discussed by the Query Working Group on January 29, 2007. The working group feels that it is important to define atomic semantics for updates to an XDM instance. However, it is not our intention to specify semantics for how these updates are propagated to an underlying persistent store. Furthermore, the atomic property of updates to an XDM instance are defined only for errors that are defined in the XQuery specification (for example, they do not apply to undefined circumstances such as power failures or running out of memory.) We will add text to the Update specification clarifying the circumstances in which atomicity is required, as suggested in Comment #1 by Michael Kay. However, since this resolution is not exactly what you suggested, we are marking this bug report as "Won't Fix." If you are satisfied with this resolution, please change its status to "Closed."

Regards,
Don Chamberlin (for the Query Working Group)