fix bug that keep slow log on, dble may occur oom (#2640)

This commit is contained in:
Collapsar
2021-05-12 15:58:46 +08:00
committed by GitHub
parent d82aae8133
commit c349b366a6
7 changed files with 7 additions and 12 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);

View File

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

View File

@@ -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);
}
}

View File

@@ -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) {

View File

@@ -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);