mirror of
https://github.com/actiontech/dble.git
synced 2026-05-06 14:30:54 -05:00
fix bug that keep slow log on, dble may occur oom (#2640)
(cherry picked from commit c349b366a6)
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);
|
||||
|
||||
@@ -138,7 +138,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;
|
||||
|
||||
@@ -209,6 +209,7 @@ public final class ServerLoadDataInfileHandler implements LoadDataInfileHandler
|
||||
RouteResultset rrs = buildResultSet(routeResultMap);
|
||||
if (rrs != null) {
|
||||
flushDataToFile();
|
||||
service.getSession2().endParse();
|
||||
service.getSession2().execute(rrs);
|
||||
}
|
||||
}
|
||||
@@ -635,6 +636,7 @@ public final class ServerLoadDataInfileHandler implements LoadDataInfileHandler
|
||||
RouteResultset rrs = buildResultSet(routeResultMap);
|
||||
if (rrs != null) {
|
||||
flushDataToFile();
|
||||
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) {
|
||||
|
||||
@@ -159,7 +159,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