提交 b82fd151 authored 作者: Evgenij Ryazanov's avatar Evgenij Ryazanov

Enable MULTI_THREADED by default for MVStore mode

上级 43c5aee7
......@@ -1583,9 +1583,9 @@ SET MODE HSQLDB
"Commands (Other)","SET MULTI_THREADED","
SET MULTI_THREADED { 0 | 1 }
","
Enabled (1) or disabled (0) multi-threading inside the database engine. By
default, this setting is disabled. Currently, enabling this is experimental
only.
Enabled (1) or disabled (0) multi-threading inside the database engine.
MULTI_THREADED is enabled by default with default MVStore storage engine.
MULTI_THREADED is disabled by default when using PageStore storage engine, enabling this with PageStore is experimental only.
This is a global setting, which means it is not possible to open multiple databases with different modes at the same time in the same virtual machine.
This setting is not persistent, however the value is kept until the virtual machine exits or it is changed.
......
......@@ -347,8 +347,11 @@ public class Set extends Prepared {
}
break;
case SetTypes.MULTI_THREADED: {
session.getUser().checkAdmin();
database.setMultiThreaded(getIntValue() == 1);
boolean v = getIntValue() == 1;
if (database.isMultiThreaded() != v) {
session.getUser().checkAdmin();
database.setMultiThreaded(v);
}
break;
}
case SetTypes.MVCC: {
......
......@@ -188,6 +188,7 @@ public class Database implements DataHandler {
/** ie. the MVCC setting */
private boolean multiVersion;
private Mode mode = Mode.getRegular();
/** ie. the MULTI_THREADED setting */
private boolean multiThreaded;
private int maxOperationMemory =
Constants.DEFAULT_MAX_OPERATION_MEMORY;
......@@ -290,7 +291,7 @@ public class Database implements DataHandler {
this.javaObjectSerializerName =
ci.getProperty("JAVA_OBJECT_SERIALIZER", null);
this.multiThreaded =
ci.getProperty("MULTI_THREADED", false);
ci.getProperty("MULTI_THREADED", dbSettings.mvStore);
this.allowBuiltinAliasOverride =
ci.getProperty("BUILTIN_ALIAS_OVERRIDE", false);
boolean closeAtVmShutdown =
......@@ -657,6 +658,7 @@ public class Database implements DataHandler {
// Need to re-init this because the first time we do it we don't
// know if we have an mvstore or a pagestore.
multiVersion = ci.getProperty("MVCC", false);
multiThreaded = ci.getProperty("MULTI_THREADED", false);
}
if (readOnly) {
if (traceLevelFile >= TraceSystem.DEBUG) {
......@@ -2461,7 +2463,7 @@ public class Database implements DataHandler {
// supported
throw DbException.get(
ErrorCode.UNSUPPORTED_SETTING_COMBINATION,
"MVCC & MULTI_THREADED");
"MVCC & MULTI_THREADED & !MV_STORE");
}
if (lockMode == 0) {
// currently the combination of LOCK_MODE=0 and MULTI_THREADED
......
......@@ -341,12 +341,6 @@ public class DbSettings extends SettingsBase {
*/
public final boolean compressData = get("COMPRESS", false);
/**
* Database setting <code>MULTI_THREADED</code>
* (default: false).<br />
*/
public final boolean multiThreaded = get("MULTI_THREADED", false);
/**
* Database setting <code>STANDARD_DROP_TABLE_RESTRICT</code> (default:
* false).<br />
......
......@@ -317,9 +317,7 @@ public abstract class TestBase {
if (config.mvcc) {
url = addOption(url, "MVCC", "TRUE");
}
if (config.multiThreaded) {
url = addOption(url, "MULTI_THREADED", "TRUE");
}
url = addOption(url, "MULTI_THREADED", config.multiThreaded ? "TRUE" : "FALSE");
if (config.lazy) {
url = addOption(url, "LAZY_QUERY_EXECUTION", "1");
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论