diff --git a/server/src/assembly/resources/conf/iotdb-datanode.properties b/server/src/assembly/resources/conf/iotdb-datanode.properties
index 877bbfa..e9892da 100644
--- a/server/src/assembly/resources/conf/iotdb-datanode.properties
+++ b/server/src/assembly/resources/conf/iotdb-datanode.properties
@@ -99,6 +99,10 @@
 # Datatype: int
 # connection_timeout_ms=20000
 
+# max plan node size, note that thrift max frame size must be larger than max plan node size.
+# Datatype: int
+# max_plan_node_size=536870912
+
 # The maximum number of clients that can be idle for a node's InternalService.
 # When the number of idle clients on a node exceeds this number, newly returned clients will be released
 # Datatype: int
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 8409527..df25bd8 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -759,9 +759,6 @@
    */
   private long partitionInterval = 86400;
 
-  /** Max size of a {@link PlanNode}, mainly used to control memory of {@link LoadTsFileNode}. */
-  private long maxPlanNodeSize = 500 * 1048576L;
-
   /**
    * Level of TimeIndex, which records the start time and end time of TsFileResource. Currently,
    * DEVICE_TIME_INDEX and FILE_TIME_INDEX are supported, and could not be changed after first set.
@@ -813,6 +810,9 @@
   /** Unit: byte */
   private int thriftMaxFrameSize = 536870912;
 
+  /** Max size of a {@link PlanNode}, mainly used to control memory of {@link LoadTsFileNode}. */
+  private int maxPlanNodeSize = thriftMaxFrameSize;
+
   private int thriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
 
   /** time interval in minute for calculating query frequency. Unit: minute */
@@ -2445,6 +2445,10 @@
     RpcTransportFactory.setThriftMaxFrameSize(this.thriftMaxFrameSize);
   }
 
+  public void setMaxPlanNodeSize(int maxPlanNodeSize) {
+    this.maxPlanNodeSize = maxPlanNodeSize;
+  }
+
   public int getThriftDefaultBufferSize() {
     return thriftDefaultBufferSize;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 54a7d4b..1aae7bf 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -773,6 +773,21 @@
       conf.setThriftMaxFrameSize(IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2);
     }
 
+    conf.setMaxPlanNodeSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_plan_node_size", String.valueOf(conf.getThriftMaxFrameSize()))));
+
+    if (conf.getMaxPlanNodeSize() > conf.getThriftMaxFrameSize()) {
+      logger.warn(
+          String.format(
+              "MAX PLAN NODE SIZE %d can not be larger than THRIFT MAX FRAME SIZE %d, MAX PLAN NODE SIZE has been reset to %d",
+              conf.getMaxPlanNodeSize(),
+              conf.getThriftMaxFrameSize(),
+              conf.getThriftMaxFrameSize()));
+      conf.setMaxPlanNodeSize(conf.getThriftMaxFrameSize());
+    }
+
     conf.setThriftDefaultBufferSize(
         Integer.parseInt(
             properties.getProperty(
