[Mulgara-dev] CRITICAL: Bug fix to Backup operation (off-topic)
Alex Hall
alexhall at revelytix.com
Thu Mar 27 20:44:57 UTC 2008
This is a little bit off-topic, but related to the blank node discussion
that occurred on this list a few weeks ago.
Paul Gearon wrote:
> We have a design for a simpler, smaller, and MUCH FASTER
> string pool that doesn't have any of these issues at all. One of the big
> differences is that it won't support a delete operation - at least not
> in normal operation. It does have a compaction operation to use if it
> starts taking up too much space (we've also talked about running this in
> the background when the system isn't busy, but that isn't decided), but
> in most cases it will take up MUCH less space than the current system
> does, even when nothing ever gets deleted. Because objects don't get
> deleted and gNodes don't get reused, then it won't be possible for it to
> lose sync in any way.
As far as I can recall, the main difficulty in maintaining a reference
to a blank node across transactions lies in the fact that the underlying
gNode may have been released and reallocated in the meantime.
Therefore, even though I believe the Connection API allows for a blank
node to be used in a query constraint (and possibly other places), doing
so is not guaranteed to give the results you may have expected.
Certainly the TQL query grammar does not support a blank node in a query
constraint.
The news that gNodes won't be reused in the new string pool
implementation seems to suggest that the identity of a blank node
reference will remain intact across the lifetime of the database. If
this is indeed the case, then would we be able to explicitly support the
use of blank nodes in queries? That would be a most welcome enhancement.
Alex
More information about the Mulgara-dev
mailing list