[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