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

Manik Surtani msurtani at jboss.com
Sat Nov 11 12:50:05 EST 2006


  User: msurtani
  Date: 06/11/11 12:50:05

  Added:       docs/design  Tag: Branch_JBossCache_1_4_0 DataVersioning.txt
  Log:
  JBCACHE-843
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +21 -0     JBossCache/docs/design/Attic/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	11 Nov 2006 17:50:05 -0000	1.1.2.1
  @@ -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