mirror of
https://github.com/actiontech/dble.git
synced 2026-01-07 05:10:20 -06:00
fix bug that keep slow log on, dble may occur oom (#2640)
This commit is contained in:
@@ -10,7 +10,6 @@ import com.actiontech.dble.backend.datasource.ShardingNode;
|
||||
import com.actiontech.dble.config.model.sharding.SchemaConfig;
|
||||
import com.actiontech.dble.route.RouteResultset;
|
||||
import com.actiontech.dble.route.util.RouterUtil;
|
||||
|
||||
import com.actiontech.dble.server.parser.ServerParse;
|
||||
import com.actiontech.dble.services.mysqlsharding.ShardingService;
|
||||
import org.slf4j.Logger;
|
||||
@@ -33,7 +32,7 @@ public class HintShardingNodeHandler implements HintHandler {
|
||||
String hintSQLValue, int hintSqlType, Map hintMap)
|
||||
throws SQLNonTransientException {
|
||||
if (LOGGER.isDebugEnabled()) {
|
||||
LOGGER.debug("route shardingnode sql hint from " + realSQL);
|
||||
LOGGER.debug("route shardingNode sql hint from " + realSQL);
|
||||
}
|
||||
|
||||
RouteResultset rrs = new RouteResultset(realSQL, sqlType);
|
||||
@@ -49,6 +48,7 @@ public class HintShardingNodeHandler implements HintHandler {
|
||||
throw new SQLNonTransientException(msg);
|
||||
}
|
||||
|
||||
service.getSession2().endParse();
|
||||
return rrs;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.actiontech.dble.config.model.sharding.SchemaConfig;
|
||||
import com.actiontech.dble.route.RouteResultset;
|
||||
import com.actiontech.dble.route.RouteStrategy;
|
||||
import com.actiontech.dble.route.util.RouterUtil;
|
||||
|
||||
import com.actiontech.dble.server.parser.ServerParse;
|
||||
import com.actiontech.dble.services.mysqlsharding.ShardingService;
|
||||
import com.actiontech.dble.sqlengine.mpp.LoadData;
|
||||
@@ -51,6 +50,7 @@ public abstract class AbstractRouteStrategy implements RouteStrategy {
|
||||
}
|
||||
}
|
||||
|
||||
service.getSession2().endParse();
|
||||
return rrs;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ import com.actiontech.dble.route.parser.druid.DruidParser;
|
||||
import com.actiontech.dble.route.parser.druid.DruidParserFactory;
|
||||
import com.actiontech.dble.route.parser.druid.ServerSchemaStatVisitor;
|
||||
import com.actiontech.dble.route.util.RouterUtil;
|
||||
|
||||
import com.actiontech.dble.services.mysqlsharding.ShardingService;
|
||||
import com.actiontech.dble.singleton.TraceManager;
|
||||
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||
@@ -89,7 +88,6 @@ public class DefaultRouteStrategy extends AbstractRouteStrategy {
|
||||
rrs.setStatement(originSql);
|
||||
rrs.setSrcStatement(originSql);
|
||||
}
|
||||
service.getSession2().endParse();
|
||||
DruidParser druidParser = DruidParserFactory.create(statement, rrs.getSqlType());
|
||||
TraceManager.TraceObject traceObject = TraceManager.serviceTrace(service, "simple-route-detail");
|
||||
TraceManager.log(ImmutableMap.of("druidParser", druidParser.getClass().toString()), traceObject);
|
||||
|
||||
@@ -142,7 +142,6 @@ public class NonBlockingSession extends Session {
|
||||
if (traceEnable || SlowQueryLog.getInstance().isEnableSlowLog()) {
|
||||
requestTime = System.nanoTime();
|
||||
traceResult.setVeryStartPrepare(requestTime);
|
||||
traceResult.setRequestStartPrepare(new TraceRecord(requestTime));
|
||||
}
|
||||
if (SystemConfig.getInstance().getUseCostTimeStat() == 0) {
|
||||
return;
|
||||
|
||||
@@ -8,8 +8,8 @@ package com.actiontech.dble.server.handler;
|
||||
import com.actiontech.dble.DbleServer;
|
||||
import com.actiontech.dble.backend.mysql.CharsetUtil;
|
||||
import com.actiontech.dble.backend.mysql.proto.handler.Impl.MySQLProtoHandlerImpl;
|
||||
import com.actiontech.dble.backend.mysql.store.fs.FileUtils;
|
||||
import com.actiontech.dble.backend.mysql.proto.handler.ProtoHandler;
|
||||
import com.actiontech.dble.backend.mysql.store.fs.FileUtils;
|
||||
import com.actiontech.dble.btrace.provider.ClusterDelayProvider;
|
||||
import com.actiontech.dble.config.ErrorCode;
|
||||
import com.actiontech.dble.config.model.SystemConfig;
|
||||
@@ -230,6 +230,7 @@ public final class ServerLoadDataInfileHandler implements LoadDataInfileHandler
|
||||
flushDataToFile();
|
||||
}
|
||||
ClusterDelayProvider.delayBeforeLoadData();
|
||||
service.getSession2().endParse();
|
||||
service.getSession2().execute(rrs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,10 +57,7 @@ public class TraceResult implements Cloneable {
|
||||
public void setVeryStartPrepare(long veryStartPrepare) {
|
||||
prepareFinished = false;
|
||||
this.veryStartPrepare = veryStartPrepare;
|
||||
}
|
||||
|
||||
public void setRequestStartPrepare(TraceRecord requestStartPrepare) {
|
||||
this.requestStartPrepare = requestStartPrepare;
|
||||
this.requestStartPrepare = new TraceRecord(veryStartPrepare);
|
||||
}
|
||||
|
||||
public void setRouteStart(TraceRecord routeStart) {
|
||||
|
||||
@@ -161,7 +161,7 @@ public final class RouteService {
|
||||
Map hintMap = null;
|
||||
String hintType = null;
|
||||
if (hint.indexOf("=") >= 0) {
|
||||
//sql/sharddingNode/db_type/db_instance_url=*****
|
||||
//sql/shardingNode/db_type/db_instance_url=*****
|
||||
hintMap = parseKeyValue(hint, '=');
|
||||
hintType = (String) hintMap.get(HINT_TYPE);
|
||||
hintSql = (String) hintMap.get(hintType);
|
||||
|
||||
Reference in New Issue
Block a user