提交 b557fb3f authored 作者: Thomas Mueller's avatar Thomas Mueller

Call System.currentTimeMillis() less often.

上级 5b3b1050
......@@ -477,9 +477,6 @@ public class PageStore implements CacheWriter {
}
if (compact(full, free)) {
j++;
}
}
}
long now = System.currentTimeMillis();
if (now > start + maxCompactTime) {
j = maxMove;
......@@ -487,6 +484,9 @@ public class PageStore implements CacheWriter {
}
}
}
}
}
}
// TODO can most likely be simplified
checkpoint();
log.checkpoint();
......
......@@ -422,7 +422,8 @@ public class RegularTable extends TableBase {
private void doLock(Session session, int lockMode, boolean exclusive) {
traceLock(session, exclusive, "requesting for");
long max = System.currentTimeMillis() + session.getLockTimeout();
// don't get the current time unless necessary
long max = 0;
boolean checkDeadlock = false;
while (true) {
if (lockExclusive == session) {
......@@ -473,7 +474,10 @@ public class RegularTable extends TableBase {
checkDeadlock = true;
}
long now = System.currentTimeMillis();
if (now >= max) {
if (max == 0) {
// try at least one more time
max = now + session.getLockTimeout();
} else if (now >= max) {
traceLock(session, exclusive, "timeout after " + session.getLockTimeout());
throw DbException.get(ErrorCode.LOCK_TIMEOUT_1, getName());
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论