You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oz...@apache.org on 2004/06/24 17:07:55 UTC
cvs commit: jakarta-commons-sandbox/transaction/xdocs/maps wrappers-comparision.xml index.xml
ozeigermann 2004/06/24 08:07:55
Modified: transaction/xdocs/maps wrappers-comparision.xml index.xml
Log:
Improved map description
Revision Changes Path
1.2 +101 -1 jakarta-commons-sandbox/transaction/xdocs/maps/wrappers-comparision.xml
Index: wrappers-comparision.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/transaction/xdocs/maps/wrappers-comparision.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- wrappers-comparision.xml 23 Jun 2004 10:19:04 -0000 1.1
+++ wrappers-comparision.xml 24 Jun 2004 15:07:55 -0000 1.2
@@ -28,7 +28,7 @@
<tr align="left" valign="top">
<td>
-<p>Dirty write / lost updates</p>
+<p>Lost update</p>
</td>
<td>
@@ -48,6 +48,26 @@
<tr align="left" valign="top">
<td>
+<p>Dirty write</p>
+
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+</tr>
+
+<tr align="left" valign="top">
+<td>
+
<p>Dirty read</p>
</td>
<td>
@@ -68,6 +88,26 @@
<tr align="left" valign="top">
<td>
+<p>Lost update</p>
+
+</td>
+<td>
+
+<p>Possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+</tr>
+
+<tr align="left" valign="top">
+<td>
+
<p>Nonrepeatable read</p>
</td>
<td>
@@ -109,6 +149,46 @@
<tr align="left" valign="top">
<td>
+<p>Read Skew</p>
+
+</td>
+<td>
+
+<p>Possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+</tr>
+
+<tr align="left" valign="top">
+<td>
+
+<p>Write Skew</p>
+
+</td>
+<td>
+
+<p>Possible</p>
+</td>
+<td>
+
+<p>Possible</p>
+</td>
+<td>
+
+<p>Not possible</p>
+</td>
+</tr>
+
+<tr align="left" valign="top">
+<td>
+
<p>Readers block writers</p>
</td>
@@ -206,6 +286,26 @@
<td>
<p>No</p>
+</td>
+</tr>
+
+<tr align="left" valign="top">
+<td>
+
+<p>Isolation Level</p>
+
+</td>
+<td>
+
+<p>Read Committed (with lost updates possible)</p>
+</td>
+<td>
+
+<p>Snapshot (Oracle would call it Serializable)</p>
+</td>
+<td>
+
+<p>Serializable</p>
</td>
</tr>
1.2 +23 -6 jakarta-commons-sandbox/transaction/xdocs/maps/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/transaction/xdocs/maps/index.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- index.xml 23 Jun 2004 10:19:04 -0000 1.1
+++ index.xml 24 Jun 2004 15:07:55 -0000 1.2
@@ -10,13 +10,30 @@
<body>
<section name="Transactional Map Wrappers">
-<p>One major part of the Transaction Component are a set of wrappers that allow to add transactional control
- to any kind of Map implemening the <code>java.util.Map</code> interface.</p>
+ <p>One major part of the Transaction Component are a set of wrappers that allow to add transactional control
+to any kind of map implemening the <code>java.util.Map</code> interface. Transactional control refers
+to the procedure that you start a transaction do a number of statements and finally decide to either
+commit the changes, i.e. make them permanent, or rather roll back the transaction by discarding all your changes.
+</p>
+
+<p>As an example imagine a Swing client application where you do complex stuff (maybe
+talking to one or more servers) and the user is allowed to cancel the
+whole operation. Or it might be needed to be canceled because of errors that occur in the middle of the whole request.
+Now image all the results have been stored in a transactional map and you
+simply do a rollback on errors and a commit upon success.
+</p>
+
+<p>The whole thing gets a bit more complicated when more than one transaction is executed on a map at the same time.
+ In this case these transactions are running <em>concurrently</em>.
+ Problems that might occur with concurrent transaction are diverse and implementations differ in how much
+ spurious phenomena can be observed. Here is a survey of the
+ <a href="http://www.schemamania.org/jkl/booksonline/SQLBOL70/html/8_con_7a_1.htm">
+ most common concurrency problems</a> described in the scenario of authors working on documents.
+ Which phenomenon can occur with which map wrapper implementation can be found in
+ <a href="wrappers-comparision.html">this chart</a>.
+</p>
-<p>
- You can find a comparison of its transaction features <a href="wrappers-comparision.html">here</a>.
- </p>
</section>
</body>
-</document>
+</document>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org