Author: chirino Date: Wed Oct 28 22:43:03 2009 New Revision: 830785 URL: http://svn.apache.org/viewvc?rev=830785&view=rev Log: some diagrams to help think about the hawtdb module. Added: activemq/sandbox/activemq-apollo/webgen/diagrams/ activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.graffle (with props) activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.sdx Added: activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.graffle URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.graffle?rev=830785&view=auto ============================================================================== Binary file - no diff available. Propchange: activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.graffle ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.sdx URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.sdx?rev=830785&view=auto ============================================================================== --- activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.sdx (added) +++ activemq/sandbox/activemq-apollo/webgen/diagrams/hawtdb.sdx Wed Oct 28 22:43:03 2009 @@ -0,0 +1,106 @@ + + +> +#! Index/ Page file interactions: +#!<< + + +a:User +/a index:Index[a] +/a tx:HawtTransaction[a] +/a tx updates:Map[a] +pf:HawtPageFile[a] +/snap1:SnapshotHead[a] +/commit 3:Commit +commit 2:Commit +commit 1:Commit + +a:tx=a tx.new +a tx:updates=a tx updates.new + +*3 a tx updates +This map keeps +track of the redo +page translations +for the tx +*3 +a:index=a index.new + +[c: user performs multiple update operations] +a:a index.put + +[c: btree search for the btree node that needs to be updated ] +(1)a index:a tx.get(page) +*1 a index +To load a btree +node from a +stored page +*1 + +a tx:updated=a tx updates.get(page) +[c: if page was not updated yet in this transaction] +[c: if snapshot==null] +a tx:snapshot=pf.openSnapshot +pf:snap1.new +[/c] +a tx:updated=snap1.translate(page) +snap1:commit 2.get(page) +snap1:commit 1.get(page) +[/c] +[/c] + +(2)a index:a tx.put(page) +*2 a index +To store an +updated +btree node +*2 + +a tx:a tx updates.put(page, redoPage) +[/c] + + +a:a tx.commit +a tx:pf.commit(updates) +pf:snap1.destroy +pf:commit 3.new(udpates) +commit 3:commit 2.linkAfter]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +