W3C home > Mailing lists > Public > public-sml@w3.org > October 2007

[Bug 4656] Restrict XPointer for SML implementations on top of relational databases?

From: <bugzilla@wiggum.w3.org>
Date: Wed, 03 Oct 2007 05:25:00 +0000
CC:
To: public-sml@w3.org
Message-Id: <E1IcwjE-0004WK-Hc@wiggum.w3.org>

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4656


kumarp@microsoft.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |hasProposal




------- Comment #4 from kumarp@microsoft.com  2007-10-03 05:25 -------
Proposal:
Support for references pointing to elements other than root elements should be
optional.

Reasons:
1.      In a large scale SML store, if references are allowed to point to
elements other than the root element of a document, the size of the ref table
becomes an order of magnitude larger than the size of the document table. This
introduces perf problems that are hard to overcome.
a.      Ref targets must be identified by their xpath. This can be a very long
string which makes it expensive/inefficient to index on it.
b.      If a document is updated, all incoming and outgoing references must be
rechecked to verify that the at-most-one-target rule is not violated. This is
expensive when there are a large number of documents in the store. It harms
insert performance.
c.      Checking target* constraints requires that the entire SML document be
indexed. This is very expensive.

2.      If references can only target the root of a document, the above
problems go away.
a.      Ref target can simply be a document-id which can be an int. Indexing on
this is a lot more efficient compared to indexing on an unlimited length
string.
b.      If document is updated, we do not need to check any ref to see if the
at-most-one-target rule is violated since there can only be 1 root element.
Thus, that rule is never violated.
c.      It is far more efficient to store the type/element info of a root
element of a document than it is to store that info for all elements in the
document. This means that we do not need to index the entire document for the
purpose of checking target* constraints. This provides a significant perf boost
on insert.
Received on Wednesday, 3 October 2007 05:25:07 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:56:06 UTC