When MVCC is activated, all SQL actions are synchronized by database
(and not by session).
In case of intensive SQL access, all access are performed one after
the other and not parallelized.
See below, extract lines from Command.java:
public ResultInterface executeQuery(int maxrows, boolean
scrollable) {
startTime = System.currentTimeMillis();
Database database = session.getDatabase();
Object sync = database.isMultiThreaded() ? (Object) session :
(Object) database;
session.waitIfExclusiveModeEnabled();
synchronized (sync) {
try {
database.checkPowerOff();
session.setCurrentCommand(this, startTime);
return query(maxrows);
} catch (DbException e) {
e.addSQL(sql);
database.exceptionThrown(e.getSQLException(), sql);
throw e;
} finally {
stop();
}
}
}
Currently, it is not possible to activate MULTI_THREAD and MVCC at the
same time.
When it will it be possible? (it's a big performance problem in the
case of parallel access)
Is there a way to circumvent this issue?
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.