Hello,

I read the documentation and didn't understand a part of it:

anonymous wrote : 
  | For example, if a transaction calls cache.getRoot().getChild( 
Fqn.fromString("/a/b/c") )  , nodes a, b and c are copied from the main data 
tree and into the workspace. The data is versioned and all calls in the 
transaction work on the copy of the data rather than the actual data. When the 
transaction commits, its workspace is merged back into the underlying tree by 
matching versions. If there is a version mismatch - such as when the actual 
data tree has a higher version than the workspace, perhaps if another 
transaction were to access the same data, change it and commit before the first 
transaction can finish - the transaction throws a RollbackException  when 
committing and the commit fails.
  | 

Is TreeCache going to follow this behaviour even during read calls? In the case 
of a thread that reads a value, while another one is modifying that same value, 
does the reader thread get an Exception?

The kind of bahaviour that I need is this:
- All reads can get the value immediately
- All writes must wait for another write to finish to get a lock
- A read call that happens while a writer thread locks the data recieves the 
data that was in the cache before the lock. In other words, the data is visible 
to other thread only once the writer thread has committed.

Would that be possible with Optimistic locking?

Thanks for your help :-)

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4111530#4111530

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4111530
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to