<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3314" name=GENERATOR></HEAD>
<BODY
style="WORD-WRAP: break-word; webkit-nbsp-mode: space; webkit-line-break: after-white-space">
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>Hey XQuery transaction debaters:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>A recommended read on this topic: <A
href="http://www-db.cs.wisc.edu/cidr/cidr2007/papers/cidr07p15.pdf">http://www-db.cs.wisc.edu/cidr/cidr2007/papers/cidr07p15.pdf</A></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>The author, Pat Helland, is a old-time transaction and
messaging expert.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>I'm an old fan of transactions, but I agree with Dana
- in practice distributed transactions are not popular;</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>Pat's view (which is consistent with what I've heard and
seen) is that folks who build scalable apps tend</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>to (and need to!) base their apps on </FONT></SPAN><SPAN
class=921003804-26042008><FONT face=Arial color=#0000ff size=2>business
practices designed to handle non-transactionality rather</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>than paying the (performance and hardware) costs that
having distributed ACIDity would lead to. Hence</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>business transaction models that involve compensation,
middleware that provides reliable messaging,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>etc. (And this is even within enterprises, as opposed
to across the web.)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>Cheers,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2>Mike</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921003804-26042008><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> talk-bounces@x-query.com
[mailto:talk-bounces@x-query.com] <B>On Behalf Of </B>Daniela
Florescu<BR><B>Sent:</B> Friday, April 25, 2008 9:16 PM<BR><B>To:</B>
talk@x-query.com<BR><B>Subject:</B> Re: XQuery as a general data processing
language WAS:[xquery-talk]XQuery and Web 2.0<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>
<BLOCKQUOTE type="cite"><SPAN class=Apple-style-span
style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">
<DIV>
<DIV
style="FONT-SIZE: 12pt; MARGIN: 0px; FONT-FAMILY: tahoma, 'new york', times, serif">
<DIV
style="FONT-SIZE: 12pt; MARGIN: 0px; FONT-FAMILY: tahoma, 'new york', times, serif">
<DIV
style="FONT-SIZE: 12pt; MARGIN: 0px; FONT-FAMILY: 'times new roman', 'new york', times, serif">Concepts
such as commit, rollback, and two-phase commit are still in
play. </DIV></DIV></DIV></DIV></SPAN></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>Ken,</DIV>
<DIV><BR></DIV>No, two phase commit isn't in play anymore, and hasn't been for a
long time (if it has ever been</DIV>
<DIV>more then a research toy).</DIV>
<DIV><BR></DIV>
<DIV>( It's nick name is the "unavailability protocol", given by the same people
who actually</DIV>
<DIV>created and who worked on it for many, many years :-)</DIV>
<DIV><BR></DIV>
<DIV>I can only wish good luck to the people who try to build scalable solutions
based on WS-Transactions.</DIV>
<DIV><BR></DIV>
<DIV>Distributed transaction across the Web don't scale, or they are too
expensive to implement.</DIV>
<DIV>My guess is that all those new and fancy semi-structured Web databases
that we will see from Google,</DIV>
<DIV> Amazon, etc, will never have ACID transactions in the
traditional sense, simply because they cannot make</DIV>
<DIV> it scale at the level of the Web. </DIV>
<DIV><BR></DIV>
<DIV>Who wants locks on data (XML or not) distributed and replicated the Web
!!????</DIV>
<DIV><BR></DIV>
<DIV>Hence the "almost consistency" of Amazon.</DIV>
<DIV><BR></DIV>
<DIV>I don't claim we have an answer yet. I just said that we should try to look
for one,</DIV>
<DIV>and that importing the good old traditional transactions as such (without
thinking) doesn't sound smart to me.</DIV>
<DIV><BR></DIV>
<DIV>The problem of data (in)consistency models is relatively orthogonal to the
data model</DIV>
<DIV>(Java objects, SQL tuples or XML nodes). I simply think that, unlike the
SQL community, the XML community is free</DIV>
<DIV>to rethink those issues properly for the new Web context, because we don't
have the legacy. </DIV>
<DIV><BR></DIV>
<DIV>Best regards</DIV>
<DIV>Dana</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR>
<BLOCKQUOTE type="cite"><SPAN class=Apple-style-span
style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0">
<DIV>
<DIV
style="FONT-SIZE: 12pt; MARGIN: 0px; FONT-FAMILY: tahoma, 'new york', times, serif">
<DIV
style="FONT-SIZE: 12pt; MARGIN: 0px; FONT-FAMILY: tahoma, 'new york', times, serif">
<DIV
style="FONT-SIZE: 12pt; MARGIN: 0px; FONT-FAMILY: 'times new roman', 'new york', times, serif"><BR><BR><BR><BR><BR><BR><BR>On
Apr 25, 2008, at 2:21 PM, Ken North wrote:<BR><BR>> Dana Florescu
wrote:<BR>>>> I don't think XQuery should be a general programming
language, <SPAN class=Apple-converted-space> </SPAN><BR>>>>
like in<BR>>>> implementing a network protocol in for
example.<BR>>>><BR>>>> But I think it is a great language
for general data processing. It<BR>>>> does the job very
well.<BR>>>><BR>>>> If your program involves primarily data
extraction, filtering,<BR>>>> transformation, creation of new pieces
of information<BR>><BR>> There's a lot of innovation in developing
toolkits and frameworks <SPAN
class=Apple-converted-space> </SPAN><BR>> for building<BR>> rich
Internet applications and desktop applications. One <SPAN
class=Apple-converted-space> </SPAN><BR>> characteristic of
the<BR>> better frameworks is database support. Software such as Google
Gears <SPAN class=Apple-converted-space> </SPAN><BR>> and
Adobe<BR>> AIR include an SQL engine and APIs for SQL access. The 2.0
database <SPAN class=Apple-converted-space> </SPAN><BR>> API
for<BR>> Google Gears is following the HTML 5 Storage API
(SQL).<BR>><BR>> There are a number of web and mobile development
toolsets that embed <SPAN
class=Apple-converted-space> </SPAN><BR>> an SQL<BR>> engine, even
though over-the-wire exchanges might involve XML and/or <SPAN
class=Apple-converted-space> </SPAN><BR>> JSON. The<BR>>
obvious question is what about XQuery?<BR>><BR>> The answer lies in part
with CRUD operations and transaction <SPAN
class=Apple-converted-space> </SPAN><BR>> semantics. The SQL<BR>>
transaction model is based on standards and concepts, such as <SPAN
class=Apple-converted-space> </SPAN><BR>> isolation levels,<BR>>
that are well-understood. So there's nothing revolutionary if
you're <SPAN class=Apple-converted-space> </SPAN><BR>> an HTML
5<BR>> developer coding with an SQLTransaction object, or a Gears
developer <SPAN class=Apple-converted-space> </SPAN><BR>> looking
to<BR>> use a transaction queue.<BR>><BR>> But assume you want to use
an XML database engine and XQuery with <SPAN
class=Apple-converted-space> </SPAN><BR>> your favorite<BR>> Web
2.0 framework, instead of building on its SQL solution. You <SPAN
class=Apple-converted-space> </SPAN><BR>> don't have a<BR>> plug
replacement because:<BR>><BR>> 1. There's no standard for transactions
with native XML databases <SPAN
class=Apple-converted-space> </SPAN><BR>> (either<BR>> behavior or
syntax).<BR>><BR>> 2. Since XQuery Update became a candidate
recommendation only this <SPAN
class=Apple-converted-space> </SPAN><BR>> year, we've<BR>> had an
extended period of XML database and XQuery products <SPAN
class=Apple-converted-space> </SPAN><BR>> implementing their<BR>>
own extensions for CRUD operations.<BR>><BR>> 3. XQuery and transactions
are rarely discussed in the same <SPAN
class=Apple-converted-space> </SPAN><BR>> sentence, except in<BR>>
the 2005 XQuery Update Requirements
doc.<BR>><BR>><BR>><BR>><BR>><BR>><BR>><BR>>
_______________________________________________<BR>><SPAN
class=Apple-converted-space> </SPAN><A href="mailto:talk@x-query.com"
ymailto="mailto:talk@x-query.com">talk@x-query.com</A><BR>><SPAN
class=Apple-converted-space> </SPAN><A
href="http://x-query.com/mailman/listinfo/talk"
target=_blank>http://x-query.com/mailman/listinfo/talk</A><BR><BR>_______________________________________________<BR><A
href="mailto:talk@x-query.com"
ymailto="mailto:talk@x-query.com">talk@x-query.com</A><BR><A
href="http://x-query.com/mailman/listinfo/talk"
target=_blank>http://x-query.com/mailman/listinfo/talk</A><BR></DIV><BR></DIV></DIV></DIV></SPAN><BR
class=Apple-interchange-newline></BLOCKQUOTE></DIV><BR></BODY></HTML>