[jboss-cvs] JBossCache/docs/design ...

Manik Surtani msurtani at jboss.com
Tue Jan 16 09:31:54 EST 2007


  User: msurtani
  Date: 07/01/16 09:31:53

  Added:       docs/design  DataVersioning.txt
  Log:
  wc
  
  Revision  Changes    Path
  1.2       +21 -0     JBossCache/docs/design/DataVersioning.txt
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DataVersioning.txt
  ===================================================================
  RCS file: DataVersioning.txt
  diff -N DataVersioning.txt
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ DataVersioning.txt	16 Jan 2007 14:31:53 -0000	1.2
  @@ -0,0 +1,21 @@
  +In the process of JBCACHE-843, it was discovered that Data Versions were not being replicated at all, except in the case of invalidations.
  +
  +This is a serious oversight in the optimistic locking design, and has led to many issues especially class cast exceptions and on occasion
  +illegal state exceptions on the remote node.
  +
  +The fix, while quite simple, has not explicitly designed in due to the oversight at the time.  For now (since 1.4.1) it is retro-fitted
  +but in future versions it may be redesigned to be better integrated.
  +
  +In a nutshell, here is the fix:
  +
  +* All TreeCache CRUD methods that are called by remote nodes (_put, _remove, etc.) will be overloaded to take a DataVersion param.
  +   * All these overloaded methods will simply pass the call back to the "real" method.
  +   * This mechanism is just used to pass the DataVersion to the remote node.
  +* TxInterceptor (in replayModifications()) will set the data version for each call replayed if a DV exists.
  +   * Remote calls will always be treated as explicitly versioned.
  +* The OptimisticReplicationInterceptor, before replicating, will translate all method calls to their overloaded counterparts.
  +  * DataVersions can be retrieved from the workspace nodes in memory.
  +  * If versioning is explicit, the new version is simply passed in.
  +  * If versioning is implicit, the version is cloned, incremented and passed in.
  +
  + 
  \ No newline at end of file
  
  
  



More information about the jboss-cvs-commits mailing list