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