Hi Thomas,

Thanks for your answer.

Have a nice day,
Roland


On Thursday, February 9, 2017 at 12:34:50 PM UTC+1, Thomas Mueller Graf 
wrote:
>
> Hi,
>
> Using multiple threads against the same transaction is not supported or 
> tested, I'm sorry.
>
> Regards,
> Thomas
>
> On Wed, Feb 8, 2017 at 3:55 PM, Roland Lohner <[email protected] 
> <javascript:>> wrote:
>
>> Dear MVStore developers,
>>
>> I have a question regarding concurrent access of a TransactionMap in one 
>> transaction.
>>
>> I create a Transaction and a TransactionMap.
>>
>> transaction = transactionStore.begin();
>> map = transaction.openMap(name);
>>
>> When multiple threads access this map and do a put operation concurrently 
>> the following exception occurs:
>>
>> java.lang.IllegalStateException: An old transaction with the same id is 
>> still open: 1 [1.4.193/102]
>>     at 
>> org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:765)
>>     at org.h2.mvstore.db.TransactionStore.log(TransactionStore.java:275)
>>     at 
>> org.h2.mvstore.db.TransactionStore$Transaction.log(TransactionStore.java:706)
>>     at 
>> org.h2.mvstore.db.TransactionStore$TransactionMap.trySet(TransactionStore.java:1104)
>>     at 
>> org.h2.mvstore.db.TransactionStore$TransactionMap.set(TransactionStore.java:1027)
>>     at 
>> org.h2.mvstore.db.TransactionStore$TransactionMap.put(TransactionStore.java:1005)
>>
>> Synchronizing org.h2.mvstore.db.TransactionStore.TransactionMap.put(K, V) 
>> using the TransactionMap itself solves the problem.
>>   synchronized(map) {
>>       map.put(key, value);
>>   }
>>
>>
>> My question is whether this behavior is intentional as MVStore supports 
>> only 'one transaction - one thread model'?
>> Or did I find a bug around 
>> org.h2.mvstore.db.TransactionStore.Transaction.log(int, Object, Object)?
>> (As concurrent threads can log in same transaction with same logId=0)
>>
>> Thanks in advance, 
>> Roland
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "H2 Database" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/h2-database.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

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

Reply via email to