db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas J. Taylor" <Thomas.Tay...@Miami.edu>
Subject RE: How would you implement a record-level versioning system with Derby and Java?
Date Thu, 09 Jul 2009 15:05:12 GMT
Hi Alessandro,

We've implemented an approach similar to this for storing and tracking changes to XML documents
- because the values we are storing could be large (base 64-encoded binary objects), we decided
to have a 'attribute-value' table that would only allow inserts, plus an 'audit-record' table
that tracks when/where/who changed the value. 

This approach works reasonably well for moderate sized documents (1MB / 100,000 values/changes),
but it starts to slow down as the number of records/changes exceed 1,000,000. 

In Oracle and SQL Server, we implemented a VIEW on the attribute-value/audit-record table
to only show the most recent value -- makes it easier/faster to get the latest value. Value
history is easily retrieved by selecting all values from the attribute-value table with the
same unique attribute-id. We haven't optimized our code for Derby, so haven't tried a similar
approach here.

Best Regards,

Thomas Taylor

-----Original Message-----
From: Alessandro Bottoni [mailto:alexbottoni@yahoo.it] 
Sent: Thursday, July 09, 2009 10:48 AM
To: Derby Discussion
Subject: Re: How would you implement a record-level versioning system with Derby and Java?

Peter Ondruļæ½ka ha scritto:
> Actually I would store the history values outside the main table for
> performance and storage overhead reasons (history table may have
> additional columns, e.g. When-who-etc for auditing information). Peter

Yep... This has to be kept into account, actually, and it makes the
whole thing a little bit more complicated...

Thanks for this suggestion, Peter.


Alessandro Bottoni
Website: http://www.alessandrobottoni.it/

Who wants to remember that escape-x-alt-control-left shift-b puts you
into super-edit-debug-compile mode?
     -- (Discussion in comp.os.linux.misc on the intuitiveness of
commands, especially Emacs.)

View raw message