[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