Sunday, November 25, 2007

The COW database now has branches

A busy weekend--I implemented branches. And at this point, everything works. Branches are like virtual copies. At any time, you can create a branch of either the trunk (the default branch) or any other branch. You can then apply transactions to either the original branch or the new branch. It is as if you made a copy of the whole database.



Creating branches is very quick--it does not depend on the size of the branch that you are creating. Deleting a branch is slower--it depends on the number of changes made to that branch since it was created or since the last branch (still in existance) was created from it.



Remember that this is also a crash-proof transactional database. It is also quite fast for an object oriented database, but then objects require specific serialization methods to achieve that speed. (Object serialization and XML data binding are avoided--it uses plain old DataInput and DataOutput.)



I would call this beta version 0.7, and it is the first version I would call beta. It consists of about 70 *.java files. The next step is to update the agile wiki web site. Yes, I've got reasonable javadocs, but I want something more. :-)



And no, I didn't get to implementing hashes yet.

0 Comments:

Post a Comment

<< Home