Hi!

*Short question: *
Is it save to span *ODatabaseDocumentTx* transaction across multiple 
threads under the guarantee that only one thread is running simultaneously?

*Long story:*
I'm using embedded OrientDb 2.1-SNAPSHOT server inside Akka 2.3.9 project. 
Each transaction is represented as a separate Session actor and all 
OrientDb interactions happen inside *scala.concurrent.Future*(because 
OrientDb API is blocking) so ODatabaseDocumentTx instance is not bound to 
any specific thread, but to specific actor. Moreover *ODatabaseDocumentTx* 
instance method calls(including *begin()* and *commit()*) can happen from 
any number of different threads(because of *scala.concurrent.Future*) but 
under the guarantee that no more than one *ODatabaseDocumentTx* instance 
method is executing at the same time. The documentation 
<http://www.orientechnologies.com/docs/last/Java-Multi-Threading.html> 
states that "OrientDB supports multi-threads access to the database. 
ODatabase* and OrientGraph* instances are not thread-safe, so you've to get *an 
instance per thread* and each database instance can be used *only in one 
thread per time*." but I'm not sure that this also applies to transactions 
because OrientDb uses ThreadLocals and all those interactions are not very 
clear to me yet. 

Any help would be greatly appreciated. Thanks in advance!

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to