You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by to...@apache.org on 2023/04/28 15:49:23 UTC

[shardingsphere] branch master updated: Remove ExecuteProcessContext.proxyContext (#25408)

This is an automated email from the ASF dual-hosted git repository.

totalo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 36cf4c9f5c7 Remove ExecuteProcessContext.proxyContext (#25408)
36cf4c9f5c7 is described below

commit 36cf4c9f5c72ce0b3dad689ee3a3b14633cf0c33
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Apr 28 23:49:16 2023 +0800

    Remove ExecuteProcessContext.proxyContext (#25408)
---
 .../executor/sql/process/ExecuteProcessEngine.java |  7 ++---
 .../sql/process/ExecuteProcessReporter.java        | 36 +++++++++-------------
 ...nit.java => ExecuteProcessReporterCleaner.java} | 22 +++++++------
 .../sql/process/model/ExecuteProcessContext.java   |  9 ++----
 .../sql/process/ExecuteProcessReporterTest.java    |  7 ++---
 .../YamlAllExecuteProcessContextsSwapperTest.java  |  2 +-
 .../YamlExecuteProcessContextSwapperTest.java      |  2 +-
 .../DriverExecuteProcessReporterCleaner.java       | 20 ++++++------
 ...cutor.sql.process.ExecuteProcessReporterCleaner | 18 +++++++++++
 .../ProxyExecuteProcessReporterCleaner.java        | 19 ++++++------
 ...cutor.sql.process.ExecuteProcessReporterCleaner | 18 +++++++++++
 11 files changed, 93 insertions(+), 67 deletions(-)

diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
index 414ec0b6c9c..98d77535058 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessEngine.java
@@ -21,7 +21,6 @@ import org.apache.shardingsphere.infra.binder.QueryContext;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
 import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupReportContext;
 import org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutionUnit;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatus;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
@@ -46,7 +45,7 @@ public final class ExecuteProcessEngine {
      */
     public String initializeConnection(final Grantee grantee, final String databaseName) {
         ExecutionGroupContext<SQLExecutionUnit> executionGroupContext = createExecutionGroupContext(grantee, databaseName);
-        reporter.report(executionGroupContext);
+        reporter.reportConnect(executionGroupContext);
         return executionGroupContext.getReportContext().getExecutionID();
     }
     
@@ -72,7 +71,7 @@ public final class ExecuteProcessEngine {
     public void initializeExecution(final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext, final QueryContext queryContext) {
         if (isMySQLDDLOrDMLStatement(queryContext.getSqlStatementContext().getSqlStatement())) {
             ExecuteIDContext.set(executionGroupContext.getReportContext().getExecutionID());
-            reporter.report(queryContext, executionGroupContext, ExecuteProcessStatus.START);
+            reporter.reportExecute(queryContext, executionGroupContext);
         }
     }
     
@@ -85,7 +84,7 @@ public final class ExecuteProcessEngine {
         if (ExecuteIDContext.isEmpty()) {
             return;
         }
-        reporter.report(ExecuteIDContext.get(), executionUnit, ExecuteProcessStatus.DONE);
+        reporter.reportComplete(ExecuteIDContext.get(), executionUnit);
     }
     
     /**
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporter.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporter.java
index 6ce5d1f2f28..6d66d076fbb 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporter.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporter.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutionU
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatus;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessUnit;
+import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
 
 import java.util.Optional;
 
@@ -32,42 +33,37 @@ import java.util.Optional;
 public final class ExecuteProcessReporter {
     
     /**
-     * Report this connection for proxy.
+     * Report connect.
      *
      * @param executionGroupContext execution group context
      */
-    public void report(final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext) {
-        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext("", executionGroupContext, ExecuteProcessStatus.SLEEP, true);
+    public void reportConnect(final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext) {
+        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext("", executionGroupContext, ExecuteProcessStatus.SLEEP);
         ShowProcessListManager.getInstance().putProcessContext(executeProcessContext.getExecutionID(), executeProcessContext);
     }
     
     /**
-     * Report the summary of this task.
+     * Report execute.
      *
      * @param queryContext query context
      * @param executionGroupContext execution group context
-     * @param processStatus process status
      */
-    public void report(final QueryContext queryContext, final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext,
-                       final ExecuteProcessStatus processStatus) {
-        ExecuteProcessContext originExecuteProcessContext = ShowProcessListManager.getInstance().getProcessContext(executionGroupContext.getReportContext().getExecutionID());
-        boolean isProxyContext = null != originExecuteProcessContext && originExecuteProcessContext.isProxyContext();
-        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext(queryContext.getSql(), executionGroupContext, processStatus, isProxyContext);
+    public void reportExecute(final QueryContext queryContext, final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext) {
+        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext(queryContext.getSql(), executionGroupContext, ExecuteProcessStatus.START);
         ShowProcessListManager.getInstance().putProcessContext(executeProcessContext.getExecutionID(), executeProcessContext);
         ShowProcessListManager.getInstance().putProcessStatement(executeProcessContext.getExecutionID(), executeProcessContext.getProcessStatements());
     }
     
     /**
-     * Report a unit of this task.
+     * Report complete execution unit.
      *
      * @param executionID execution ID
      * @param executionUnit execution unit
-     * @param processStatus process status
      */
-    public void report(final String executionID, final SQLExecutionUnit executionUnit, final ExecuteProcessStatus processStatus) {
-        ExecuteProcessUnit executeProcessUnit = new ExecuteProcessUnit(executionUnit.getExecutionUnit(), processStatus);
+    public void reportComplete(final String executionID, final SQLExecutionUnit executionUnit) {
+        ExecuteProcessUnit executeProcessUnit = new ExecuteProcessUnit(executionUnit.getExecutionUnit(), ExecuteProcessStatus.DONE);
         ExecuteProcessContext executeProcessContext = ShowProcessListManager.getInstance().getProcessContext(executionID);
-        Optional.ofNullable(executeProcessContext.getProcessUnits().get(executeProcessUnit.getUnitID())).ifPresent(optional -> optional.setStatus(executeProcessUnit.getStatus()));
+        Optional.ofNullable(executeProcessContext.getProcessUnits().get(executeProcessUnit.getUnitID())).ifPresent(optional -> optional.setStatus(ExecuteProcessStatus.DONE));
     }
     
     /**
@@ -77,14 +73,12 @@ public final class ExecuteProcessReporter {
      */
     public void reset(final String executionID) {
         ShowProcessListManager.getInstance().removeProcessStatement(executionID);
-        ExecuteProcessContext executeProcessContext = ShowProcessListManager.getInstance().getProcessContext(executionID);
-        if (null == executeProcessContext) {
+        ExecuteProcessContext context = ShowProcessListManager.getInstance().getProcessContext(executionID);
+        if (null == context) {
             return;
         }
-        if (executeProcessContext.isProxyContext()) {
-            executeProcessContext.reset();
-        } else {
-            ShowProcessListManager.getInstance().removeProcessContext(executionID);
+        for (ExecuteProcessReporterCleaner each : ShardingSphereServiceLoader.getServiceInstances(ExecuteProcessReporterCleaner.class)) {
+            each.reset(context);
         }
     }
     
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterCleaner.java
similarity index 68%
copy from infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java
copy to infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterCleaner.java
index 4648d611310..19ae387e5e4 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterCleaner.java
@@ -15,19 +15,21 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.process.yaml;
+package org.apache.shardingsphere.infra.executor.sql.process;
 
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatus;
-import org.apache.shardingsphere.infra.util.yaml.YamlConfiguration;
+import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
+import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
 
 /**
- * Execute process unit for YAML.
+ * Execute process reporter cleaner.
  */
-@Getter
-@Setter
-public final class YamlExecuteProcessUnit implements YamlConfiguration {
+@SingletonSPI
+public interface ExecuteProcessReporterCleaner {
     
-    private ExecuteProcessStatus processStatus;
+    /**
+     * Reset reporter.
+     * 
+     * @param context execute process context
+     */
+    void reset(ExecuteProcessContext context);
 }
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/ExecuteProcessContext.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/ExecuteProcessContext.java
index 91d5aa8e476..ebbc32d577f 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/ExecuteProcessContext.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/model/ExecuteProcessContext.java
@@ -44,25 +44,22 @@ public final class ExecuteProcessContext {
     
     private final String hostname;
     
-    private final boolean proxyContext;
-    
     private final Map<String, ExecuteProcessUnit> processUnits = new HashMap<>();
     
     private final Collection<Statement> processStatements = new LinkedList<>();
     
     private String sql;
     
-    private ExecuteProcessStatus status;
-    
     private long startMillis;
     
-    public ExecuteProcessContext(final String sql, final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext, final ExecuteProcessStatus status, final boolean isProxyContext) {
+    private ExecuteProcessStatus status;
+    
+    public ExecuteProcessContext(final String sql, final ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext, final ExecuteProcessStatus status) {
         executionID = executionGroupContext.getReportContext().getExecutionID();
         databaseName = executionGroupContext.getReportContext().getDatabaseName();
         Grantee grantee = executionGroupContext.getReportContext().getGrantee();
         username = null == grantee ? null : grantee.getUsername();
         hostname = null == grantee ? null : grantee.getHostname();
-        proxyContext = isProxyContext;
         this.sql = sql;
         this.status = status;
         startMillis = System.currentTimeMillis();
diff --git a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java
index 4fc55e0e654..369811e0b27 100644
--- a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java
+++ b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/ExecuteProcessReporterTest.java
@@ -23,7 +23,6 @@ import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupRepor
 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
 import org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutionUnit;
 import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatus;
 import org.apache.shardingsphere.test.mock.AutoMockExtension;
 import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.BeforeEach;
@@ -52,9 +51,9 @@ class ExecuteProcessReporterTest {
     }
     
     @Test
-    void assertReport() {
+    void assertReportExecute() {
         ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext = mockExecutionGroupContext();
-        new ExecuteProcessReporter().report(new QueryContext(null, null, null), executionGroupContext, ExecuteProcessStatus.START);
+        new ExecuteProcessReporter().reportExecute(new QueryContext(null, null, null), executionGroupContext);
         verify(showProcessListManager).putProcessContext(eq(executionGroupContext.getReportContext().getExecutionID()), any());
     }
     
@@ -72,7 +71,7 @@ class ExecuteProcessReporterTest {
         SQLExecutionUnit sqlExecutionUnit = mock(SQLExecutionUnit.class);
         when(sqlExecutionUnit.getExecutionUnit()).thenReturn(mock(ExecutionUnit.class));
         when(showProcessListManager.getProcessContext("foo_id")).thenReturn(mock(ExecuteProcessContext.class));
-        new ExecuteProcessReporter().report("foo_id", sqlExecutionUnit, ExecuteProcessStatus.DONE);
+        new ExecuteProcessReporter().reportComplete("foo_id", sqlExecutionUnit);
         verify(showProcessListManager).getProcessContext("foo_id");
     }
     
diff --git a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlAllExecuteProcessContextsSwapperTest.java b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlAllExecuteProcessContextsSwapperTest.java
index 8d211ceba5c..51fa0dfed37 100644
--- a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlAllExecuteProcessContextsSwapperTest.java
+++ b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlAllExecuteProcessContextsSwapperTest.java
@@ -41,7 +41,7 @@ class YamlAllExecuteProcessContextsSwapperTest {
     void assertSwapToYamlConfiguration() {
         ExecutionGroupReportContext reportContext = new ExecutionGroupReportContext("foo_db", new Grantee("root", "localhost"));
         ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext = new ExecutionGroupContext<>(Collections.emptyList(), reportContext);
-        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext("SELECT 1", executionGroupContext, ExecuteProcessStatus.START, true);
+        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext("SELECT 1", executionGroupContext, ExecuteProcessStatus.START);
         YamlAllExecuteProcessContexts actual = new YamlAllExecuteProcessContextsSwapper().swapToYamlConfiguration(Collections.singleton(executeProcessContext));
         assertThat(actual.getContexts().size(), is(1));
         assertYamlExecuteProcessContext(actual.getContexts().iterator().next());
diff --git a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlExecuteProcessContextSwapperTest.java b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlExecuteProcessContextSwapperTest.java
index 4183ce284e8..f0ede46a69f 100644
--- a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlExecuteProcessContextSwapperTest.java
+++ b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/swapper/YamlExecuteProcessContextSwapperTest.java
@@ -40,7 +40,7 @@ class YamlExecuteProcessContextSwapperTest {
     void assertSwapToYamlConfiguration() {
         ExecutionGroupReportContext reportContext = new ExecutionGroupReportContext("foo_db", new Grantee("root", "localhost"));
         ExecutionGroupContext<? extends SQLExecutionUnit> executionGroupContext = new ExecutionGroupContext<>(Collections.emptyList(), reportContext);
-        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext("SELECT 1", executionGroupContext, ExecuteProcessStatus.START, true);
+        ExecuteProcessContext executeProcessContext = new ExecuteProcessContext("SELECT 1", executionGroupContext, ExecuteProcessStatus.START);
         YamlExecuteProcessContext actual = new YamlExecuteProcessContextSwapper().swapToYamlConfiguration(executeProcessContext);
         assertNotNull(actual.getExecutionID());
         assertThat(actual.getDatabaseName(), is("foo_db"));
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/sql/process/DriverExecuteProcessReporterCleaner.java
similarity index 60%
copy from infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java
copy to jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/sql/process/DriverExecuteProcessReporterCleaner.java
index 4648d611310..a8f42677a81 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/executor/sql/process/DriverExecuteProcessReporterCleaner.java
@@ -15,19 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.process.yaml;
+package org.apache.shardingsphere.driver.executor.sql.process;
 
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatus;
-import org.apache.shardingsphere.infra.util.yaml.YamlConfiguration;
+import org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner;
+import org.apache.shardingsphere.infra.executor.sql.process.ShowProcessListManager;
+import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
 
 /**
- * Execute process unit for YAML.
+ * Execute process reporter cleaner for driver.
  */
-@Getter
-@Setter
-public final class YamlExecuteProcessUnit implements YamlConfiguration {
+public final class DriverExecuteProcessReporterCleaner implements ExecuteProcessReporterCleaner {
     
-    private ExecuteProcessStatus processStatus;
+    @Override
+    public void reset(final ExecuteProcessContext context) {
+        ShowProcessListManager.getInstance().removeProcessContext(context.getExecutionID());
+    }
 }
diff --git a/jdbc/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner b/jdbc/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner
new file mode 100644
index 00000000000..b9e2689a923
--- /dev/null
+++ b/jdbc/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner
@@ -0,0 +1,18 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.apache.shardingsphere.driver.executor.sql.process.DriverExecuteProcessReporterCleaner
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/executor/sql/process/ProxyExecuteProcessReporterCleaner.java
similarity index 67%
rename from infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java
rename to proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/executor/sql/process/ProxyExecuteProcessReporterCleaner.java
index 4648d611310..ade9fd7ef8a 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/process/yaml/YamlExecuteProcessUnit.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/executor/sql/process/ProxyExecuteProcessReporterCleaner.java
@@ -15,19 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.executor.sql.process.yaml;
+package org.apache.shardingsphere.proxy.executor.sql.process;
 
-import lombok.Getter;
-import lombok.Setter;
-import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessStatus;
-import org.apache.shardingsphere.infra.util.yaml.YamlConfiguration;
+import org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner;
+import org.apache.shardingsphere.infra.executor.sql.process.model.ExecuteProcessContext;
 
 /**
- * Execute process unit for YAML.
+ * Execute process reporter cleaner for proxy.
  */
-@Getter
-@Setter
-public final class YamlExecuteProcessUnit implements YamlConfiguration {
+public final class ProxyExecuteProcessReporterCleaner implements ExecuteProcessReporterCleaner {
     
-    private ExecuteProcessStatus processStatus;
+    @Override
+    public void reset(final ExecuteProcessContext context) {
+        context.reset();
+    }
 }
diff --git a/proxy/bootstrap/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner b/proxy/bootstrap/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner
new file mode 100644
index 00000000000..ba0c7f22624
--- /dev/null
+++ b/proxy/bootstrap/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessReporterCleaner
@@ -0,0 +1,18 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.apache.shardingsphere.proxy.executor.sql.process.ProxyExecuteProcessReporterCleaner