You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2009/10/28 23:43:03 UTC

svn commit: r830785 - in /activemq/sandbox/activemq-apollo/webgen/diagrams: ./ hawtdb.graffle hawtdb.sdx

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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<diagram>
+<source><![CDATA[#!>>
+#! 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]]></source>
+<configuration>
+<property name="actorWidth" value="25"/>
+<property name="arrowSize" value="6"/>
+<property name="colorizeThreads" value="true"/>
+<property name="destructorWidth" value="30"/>
+<property family="Dialog" name="font" size="12" style="0"/>
+<property name="fragmentMargin" value="8"/>
+<property name="fragmentPadding" value="10"/>
+<property name="fragmentTextPadding" value="3"/>
+<property name="glue" value="10"/>
+<property name="headHeight" value="35"/>
+<property name="headLabelPadding" value="5"/>
+<property name="headWidth" value="100"/>
+<property name="initialSpace" value="10"/>
+<property name="leftMargin" value="5"/>
+<property name="lineWrap" value="false"/>
+<property name="lowerMargin" value="5"/>
+<property name="mainLifelineWidth" value="8"/>
+<property name="messageLabelSpace" value="3"/>
+<property name="messagePadding" value="6"/>
+<property name="noteMargin" value="6"/>
+<property name="notePadding" value="6"/>
+<property name="opaqueMessageText" value="false"/>
+<property name="returnArrowVisible" value="true"/>
+<property name="rightMargin" value="5"/>
+<property name="selfMessageHorizontalSpace" value="15"/>
+<property name="separatorBottomMargin" value="8"/>
+<property name="separatorTopMargin" value="15"/>
+<property name="spaceBeforeActivation" value="2"/>
+<property name="spaceBeforeAnswerToSelf" value="10"/>
+<property name="spaceBeforeConstruction" value="6"/>
+<property name="spaceBeforeSelfMessage" value="7"/>
+<property name="subLifelineWidth" value="6"/>
+<property name="threadNumbersVisible" value="false"/>
+<property name="threaded" value="true"/>
+<property name="upperMargin" value="5"/>
+<property name="verticallySplit" value="true"/>
+</configuration>
+</diagram>