Hi:

I'd appreciate a point of clarification as to when to set the 
MULTI_THREADED vs MVCC parameters. My read is that that using 
MULTI_THREADED is using table and row locks and MVCC is using finer grain 
locks. Therefore, using MVCC should be fine for most multi-threaded use 
cases, and there should not be a need to set MULTI_THREADED (which does not 
work with MVCC and is not enabled by default).

Am I reading this correctly?

We have a JPA EntityManager per-thread, and plan to use mixed-mode 
connections (embedded + TCP) and are hoping to achieve multi-threaded 
insert and merge operations. Blocking deletes are fine.

ref: http://www.h2database.com/html/advanced.html#mvcc

> The MVCC feature allows higher concurrency than using (table level or row 
> level) locks. When using MVCC in this database, delete, insert and update 
> operations will only issue a shared lock on the table. 
>
 
ref: http://www.h2database.com/html/features.html#multiple_connections

> By default, requests to the same database are synchronized. That means an 
> application can use multiple threads that access the same database at the 
> same time, however if one thread executes a long running query, the other 
> threads need to wait. To enable concurrent database usage, see the setting 
> MULTI_THREADED
>

Thanks,
Matt

-- 
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