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

qiaojialin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new b1f50d2  adjust the FAQ doc of V1.2、latest and master version (#176)
b1f50d2 is described below

commit b1f50d2da0995c0c4e53e57fae33c2bfaa1159c8
Author: wanghui42 <105700158+wanghu...@users.noreply.github.com>
AuthorDate: Wed Feb 7 10:18:48 2024 +0800

    adjust the FAQ doc of V1.2、latest and master version (#176)
---
 src/UserGuide/Master/API/RestServiceV1.md          |   2 +-
 .../Deployment-Guide_timecho.md                    |   4 +-
 .../Master/FAQ/Frequently-asked-questions.md       |  19 ++
 src/UserGuide/Master/SQL-Manual/SQL-Manual.md      | 309 ++++++---------------
 src/UserGuide/Master/User-Manual/AINode_timecho.md |   2 +-
 src/UserGuide/Master/User-Manual/Query-Data.md     |   4 +-
 .../Deployment-Guide_timecho.md                    |   6 +-
 .../V1.2.x/FAQ/Frequently-asked-questions.md       |  19 ++
 src/UserGuide/latest/API/RestServiceV1.md          |   2 +-
 .../Deployment-Guide_timecho.md                    |   4 +-
 .../latest/FAQ/Frequently-asked-questions.md       |  19 ++
 src/UserGuide/latest/SQL-Manual/SQL-Manual.md      | 305 ++++++--------------
 src/UserGuide/latest/User-Manual/AINode_timecho.md |   2 +-
 src/UserGuide/latest/User-Manual/Query-Data.md     |   4 +-
 .../Master/FAQ/Frequently-asked-questions.md       |  14 +-
 src/zh/UserGuide/Master/Tools-System/Benchmark.md  |  54 ++--
 .../V1.2.x/FAQ/Frequently-asked-questions.md       |  14 +-
 src/zh/UserGuide/V1.2.x/Tools-System/Benchmark.md  |   4 +-
 src/zh/UserGuide/latest/API/RestServiceV1.md       |   2 +-
 .../latest/FAQ/Frequently-asked-questions.md       |  29 +-
 src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md   |   3 +-
 src/zh/UserGuide/latest/Tools-System/Benchmark.md  |   2 +-
 22 files changed, 312 insertions(+), 511 deletions(-)

diff --git a/src/UserGuide/Master/API/RestServiceV1.md 
b/src/UserGuide/Master/API/RestServiceV1.md
index 34af056..b5fdd1c 100644
--- a/src/UserGuide/Master/API/RestServiceV1.md
+++ b/src/UserGuide/Master/API/RestServiceV1.md
@@ -32,7 +32,7 @@ RESTful services are disabled by default.
 
 * User
 
-  Find the `conf/iotdb.rest.properties` file under the IoTDB installation 
directory and set `enable_rest_service` to `true` to enable the module.
+  Find the `conf/iotdb-datanode.properties` file under the IoTDB installation 
directory and set `enable_rest_service` to `true` to enable the module.
 
   ```properties
   enable_rest_service=true
diff --git 
a/src/UserGuide/Master/Deployment-and-Maintenance/Deployment-Guide_timecho.md 
b/src/UserGuide/Master/Deployment-and-Maintenance/Deployment-Guide_timecho.md
index 40ff39a..7c4191f 100644
--- 
a/src/UserGuide/Master/Deployment-and-Maintenance/Deployment-Guide_timecho.md
+++ 
b/src/UserGuide/Master/Deployment-and-Maintenance/Deployment-Guide_timecho.md
@@ -160,10 +160,10 @@ IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -XX:MaxGCPauseMillis=200"
 | parameter name              | parameter describe                             
                                                                                
                                                   | required |
 
|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
 | name                        | Confignode name                                
                                                                                
                                                   | YES      |
-| deploy\_dir                 | IoTDB config node deployment directory         
                                                                                
                                                                   | YES|     |
+| deploy\_dir                 | IoTDB config node deployment directory         
                                                                                
                                                                   | YES     |
 | iotdb-confignode.properties | Corresponding to 
`iotdb/config/iotdb-confignode.properties`, please refer to the 
`iotdb-confignode.properties` file description for more details.                
                                                                             | 
NO       |
 | cn\_internal\_address       | Corresponds to iotdb/internal communication 
address, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                        | YES      |
-| cn_\internal\_address       | The cluster configuration address points to 
the surviving ConfigNode, and it points to confignode_x by default. When 
`global` and `confignode_servers` are configured at the same time, the value in 
`confignode_servers` is used first, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties` | YES      |
+| cn_internal_address       | The cluster configuration address points to the 
surviving ConfigNode, and it points to confignode_x by default. When `global` 
and `confignode_servers` are configured at the same time, the value in 
`confignode_servers` is used first, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties` | YES      |
 | cn\_internal\_port          | Internal communication port, corresponding to 
`cn_internal_port` in `iotdb/config/iotdb-confignode.properties`                
                                                                                
          | YES      |
 | cn\_consensus\_port         | Corresponds to `cn_consensus_port` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                                         | NO   
   |
 | cn\_data\_dir               | Corresponds to `cn_consensus_port` in 
`iotdb/config/iotdb-confignode.properties` Corresponds to `cn_data_dir` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                                                
 | YES      |
diff --git a/src/UserGuide/Master/FAQ/Frequently-asked-questions.md 
b/src/UserGuide/Master/FAQ/Frequently-asked-questions.md
index 8503ffe..c22d67e 100644
--- a/src/UserGuide/Master/FAQ/Frequently-asked-questions.md
+++ b/src/UserGuide/Master/FAQ/Frequently-asked-questions.md
@@ -154,6 +154,25 @@ The default IoTDB's Cli time display format is readable 
(e.g. ```1970-01-01T08:0
 
 ### 9. How to handle error `IndexOutOfBoundsException` from 
`org.apache.ratis.grpc.server.GrpcLogAppender`?
 
+### 10. How to deal with estimated out of memory errors?
+
+Report an error message:
+```
+301: There is not enough memory to execute current fragment instance, current 
remaining free memory is 86762854, estimated memory usage for current fragment 
instance is 270139392
+```
+Error analysis:
+The datanode_memory_proportion parameter controls the memory divided to the 
query, and the chunk_timeseriesmeta_free_memory_proportion parameter controls 
the memory available for query execution.
+By default the memory allocated to the query is 30% of the heap memory and the 
memory available for query execution is 20% of the query memory.
+The error report shows that the current remaining memory available for query 
execution is 86762854B = 82.74MB, and the query is estimated to use 270139392B 
= 257.6MB of execution memory.
+
+Some possible improvement items:
+
+- Without changing the default parameters, crank up the heap memory of IoTDB 
greater than 4.2G (4.2G * 1024MB = 4300MB), 4300M * 30% * 20% = 258M > 257.6M, 
which can fulfill the requirement.
+- Change parameters such as datanode_memory_proportion so that the available 
memory for query execution is >257.6MB.
+- Reduce the number of exported time series.
+- Add slimit limit to the query statement, which is also an option to reduce 
the query time series.
+- Add align by device, which will export in device order, and the memory usage 
will be reduced to single-device level.
+
 It is an internal error introduced by Ratis 2.4.1 dependency, and we can 
safely ignore this exception as it will
 not affect normal operations. We will fix this message in the incoming 
releases.
 
diff --git a/src/UserGuide/Master/SQL-Manual/SQL-Manual.md 
b/src/UserGuide/Master/SQL-Manual/SQL-Manual.md
index 4439e23..deb1170 100644
--- a/src/UserGuide/Master/SQL-Manual/SQL-Manual.md
+++ b/src/UserGuide/Master/SQL-Manual/SQL-Manual.md
@@ -106,7 +106,7 @@ IoTDB> SHOW ALL TTL
 IoTDB> SHOW TTL ON StorageGroupNames
 ```
 
-## SCHEMA TEMPLATE
+## DEVICE TEMPLATE
 
 For more details, see document 
[Operate-Metadata](../User-Manual/Operate-Metadata.md).
 
@@ -122,75 +122,71 @@ Create device root.sg.d1
 
 
![img](https://alioss.timecho.com/docs/img/%E6%A8%A1%E6%9D%BF%E6%B5%81%E7%A8%8B.png)
 
-### Create Schema Template
+### Create Device Template
 
 **Example 1:** Create a template containing two non-aligned timeseires
 
 ```shell
-IoTDB> create schema template t1 (temperature FLOAT encoding=RLE, status 
BOOLEAN encoding=PLAIN compression=SNAPPY)
+IoTDB> create device template t1 (temperature FLOAT encoding=RLE, status 
BOOLEAN encoding=PLAIN compression=SNAPPY)
 ```
 
 **Example 2:** Create a template containing a group of aligned timeseires
 
 ```shell
-IoTDB> create schema template t2 aligned (lat FLOAT encoding=Gorilla, lon 
FLOAT encoding=Gorilla)
+IoTDB> create device template t2 aligned (lat FLOAT encoding=Gorilla, lon 
FLOAT encoding=Gorilla)
 ```
 
 The` lat` and `lon` measurements are aligned.
 
-### Set Schema Template
+### Set Device Template
 
 ```sql
-IoTDB> set schema template t1 to root.sg1.d1
+IoTDB> set device template t1 to root.sg1.d1
 ```
 
-### Activate Schema Template
+### Activate Device Template
 
 ```sql
-IoTDB> set schema template t1 to root.sg1.d1
-IoTDB> set schema template t2 to root.sg1.d2
-IoTDB> create timeseries using schema template on root.sg1.d1
-IoTDB> create timeseries using schema template on root.sg1.d2
+IoTDB> set device template t1 to root.sg1.d1
+IoTDB> set device template t2 to root.sg1.d2
+IoTDB> create timeseries using device template on root.sg1.d1
+IoTDB> create timeseries using device template on root.sg1.d2
 ```
 
-### Show Schema Template
+### Show Device Template
 
 ```sql
-IoTDB> show schema templates
-IoTDB> show nodes in schema template t1
-IoTDB> show paths set schema template t1
-IoTDB> show paths using schema template t1
-IoTDB> show devices where template = 't1'
-IoTDB> show devices where template != 't1'
-IoTDB> show devices where template is null
-IoTDB> show devices where template is not null
+IoTDB> show device templates
+IoTDB> show nodes in device template t1
+IoTDB> show paths set device template t1
+IoTDB> show paths using device template t1
 ```
 
-### Deactivate Schema Template
+### Deactivate Device Template
 
 ```sql
-IoTDB> delete timeseries of schema template t1 from root.sg1.d1
-IoTDB> deactivate schema template t1 from root.sg1.d1
-IoTDB> delete timeseries of schema template t1 from root.sg1.*, root.sg2.*
-IoTDB> deactivate schema template t1 from root.sg1.*, root.sg2.*
+IoTDB> delete timeseries of device template t1 from root.sg1.d1
+IoTDB> deactivate device template t1 from root.sg1.d1
+IoTDB> delete timeseries of device template t1 from root.sg1.*, root.sg2.*
+IoTDB> deactivate device template t1 from root.sg1.*, root.sg2.*
 ```
 
-### Unset Schema Template
+### Unset Device Template
 
 ```sql
-IoTDB> unset schema template t1 from root.sg1.d1
+IoTDB> unset device template t1 from root.sg1.d1
 ```
 
-### Drop Schema Template
+### Drop Device Template
 
 ```sql
-IoTDB> drop schema template t1
+IoTDB> drop device template t1
 ```
 
-### Alter Schema Template
+### Alter Device Template
 
 ```sql
-IoTDB> alter schema template t1 add (speed FLOAT encoding=RLE, FLOAT TEXT 
encoding=PLAIN compression=SNAPPY)
+IoTDB> alter device template t1 add (speed FLOAT encoding=RLE, FLOAT TEXT 
encoding=PLAIN compression=SNAPPY)
 ```
 
 ## TIMESERIES MANAGEMENT
@@ -1589,226 +1585,116 @@ For more details, see document 
[Operator-and-Expression](../User-Manual/Operator
 
 ### SQL Statements
 
-* Create User
+- Create user (Requires MANAGE_USER permission)
 
-```
-CREATE USER <userName> <password>;  
-Eg: IoTDB > CREATE USER `thulab` 'pwd';
-```
-
-* Delete User
-
-```
-DROP USER <userName>;  
-Eg: IoTDB > DROP USER `xiaoming`;
-```
-
-* Create Role
-
-```
-CREATE ROLE <roleName>;  
-Eg: IoTDB > CREATE ROLE `admin`;
-```
-
-* Delete Role
-
-```
-DROP ROLE <roleName>;  
-Eg: IoTDB > DROP ROLE `admin`;
-```
-
-* Grant User Privileges
-
-```
-GRANT USER <userName> PRIVILEGES <privileges> ON <nodeNames>;  
-Eg: IoTDB > GRANT USER `tempuser` PRIVILEGES INSERT_TIMESERIES, 
DELETE_TIMESERIES on root.ln.**, root.sgcc.**;
-Eg: IoTDB > GRANT USER `tempuser` PRIVILEGES CREATE_ROLE;
-```
-
-- Grant User All Privileges
-
-```
-GRANT USER <userName> PRIVILEGES ALL; 
-Eg: IoTDB > GRANT USER `tempuser` PRIVILEGES ALL;
-```
-
-* Grant Role Privileges
-
-```
-GRANT ROLE <roleName> PRIVILEGES <privileges> ON <nodeNames>;  
-Eg: IoTDB > GRANT ROLE `temprole` PRIVILEGES INSERT_TIMESERIES, 
DELETE_TIMESERIES ON root.sgcc.**, root.ln.**;
-Eg: IoTDB > GRANT ROLE `temprole` PRIVILEGES CREATE_ROLE;
-```
-
-- Grant Role All Privileges
-
-```
-GRANT ROLE <roleName> PRIVILEGES ALL ON <nodeNames>;  
-Eg: IoTDB > GRANT ROLE `temprole` PRIVILEGES ALL;
-```
-
-* Grant User Role
-
-```
-GRANT <roleName> TO <userName>;  
-Eg: IoTDB > GRANT `temprole` TO tempuser;
+```SQL
+CREATE USER <userName> <password>
+eg: CREATE USER user1 'passwd'
 ```
 
-* Revoke User Privileges
+- Delete user (Requires MANAGE_USER permission)
 
-```
-REVOKE USER <userName> PRIVILEGES <privileges> ON <nodeNames>;   
-Eg: IoTDB > REVOKE USER `tempuser` PRIVILEGES DELETE_TIMESERIES on root.ln.**;
-Eg: IoTDB > REVOKE USER `tempuser` PRIVILEGES CREATE_ROLE;
+```sql
+DROP USER <userName>
+eg: DROP USER user1
 ```
 
-* Revoke User All Privileges
+- Create role (Requires MANAGE_ROLE permission)
 
-```
-REVOKE USER <userName> PRIVILEGES ALL; 
-Eg: IoTDB > REVOKE USER `tempuser` PRIVILEGES ALL;
+```sql
+CREATE ROLE <roleName>
+eg: CREATE ROLE role1
 ```
 
-* Revoke Role Privileges
+- Delete role (Requires MANAGE_ROLE permission)
 
-```
-REVOKE ROLE <roleName> PRIVILEGES <privileges> ON <nodeNames>;  
-Eg: IoTDB > REVOKE ROLE `temprole` PRIVILEGES DELETE_TIMESERIES ON root.ln.**;
-Eg: IoTDB > REVOKE ROLE `temprole` PRIVILEGES CREATE_ROLE;
+```sql
+DROP ROLE <roleName>
+eg: DROP ROLE role1  
 ```
 
-* Revoke All Role Privileges
+- Grant role to user (Requires MANAGE_ROLE permission)
 
-```
-REVOKE ROLE <roleName> PRIVILEGES ALL;  
-Eg: IoTDB > REVOKE ROLE `temprole` PRIVILEGES ALL;
+```sql
+GRANT ROLE <ROLENAME> TO <USERNAME>
+eg: GRANT ROLE admin TO user1
 ```
 
-* Revoke Role From User
+- Revoke role from user(Requires MANAGE_ROLE permission)
 
-```
-REVOKE <roleName> FROM <userName>;
-Eg: IoTDB > REVOKE `temprole` FROM tempuser;
+```sql
+REVOKE ROLE <ROLENAME> FROM <USER>
+eg: REVOKE ROLE admin FROM user1
 ```
 
-* List Users
+- List all user (Requires MANAGE_USER permission)
 
-```
+```sql
 LIST USER
-Eg: IoTDB > LIST USER
-```
-
-* List User of Specific Role
-
-```
-LIST USER OF ROLE <roleName>;
-Eg: IoTDB > LIST USER OF ROLE `roleuser`;
 ```
 
-* List Roles
+- List all role (Requires MANAGE_ROLE permission)
 
-```
+```sql
 LIST ROLE
-Eg: IoTDB > LIST ROLE
-```
-
-* List Roles of Specific User
-
-```
-LIST ROLE OF USER <username> ;  
-Eg: IoTDB > LIST ROLE OF USER `tempuser`;
 ```
 
-* List All Privileges of Users
+- List all users granted specific role.(Requires MANAGE_USER permission)
 
-```
-LIST PRIVILEGES USER <username> ;   
-Eg: IoTDB > LIST PRIVILEGES USER `tempuser`;
+```sql
+LIST USER OF ROLE <roleName>
+eg: LIST USER OF ROLE roleuser
 ```
 
-* List Related Privileges of Users(On Specific Paths)
+- List all role granted to specific user.
 
-```
-LIST PRIVILEGES USER <username> ON <paths>;
-Eg: IoTDB> LIST PRIVILEGES USER `tempuser` ON root.ln.**, root.ln.wf01.**;
-+--------+-----------------------------------+
-|    role|                          privilege|
-+--------+-----------------------------------+
-|        |      root.ln.** : ALTER_TIMESERIES|
-|temprole|root.ln.wf01.** : CREATE_TIMESERIES|
-+--------+-----------------------------------+
-Total line number = 2
-It costs 0.005s
-IoTDB> LIST PRIVILEGES USER `tempuser` ON root.ln.wf01.wt01.**;
-+--------+-----------------------------------+
-|    role|                          privilege|
-+--------+-----------------------------------+
-|        |      root.ln.** : ALTER_TIMESERIES|
-|temprole|root.ln.wf01.** : CREATE_TIMESERIES|
-+--------+-----------------------------------+
-Total line number = 2
-It costs 0.005s
+```sql
+LIST ROLE OF USER <username> 
+eg: LIST ROLE OF USER tempuser
 ```
 
-* List All Privileges of Roles
+- List all privileges of user
 
-```
-LIST PRIVILEGES ROLE <roleName>
-Eg: IoTDB > LIST PRIVILEGES ROLE `actor`;
+```sql
+LIST PRIVILEGES OF USER <username>;
+eg: LIST PRIVILEGES OF USER tempuser;
 ```
 
-* List Related Privileges of Roles(On Specific Paths)
+- List all privileges of role
 
-```
-LIST PRIVILEGES ROLE <roleName> ON <paths>;    
-Eg: IoTDB> LIST PRIVILEGES ROLE `temprole` ON root.ln.**, root.ln.wf01.wt01.**;
-+-----------------------------------+
-|                          privilege|
-+-----------------------------------+
-|root.ln.wf01.** : CREATE_TIMESERIES|
-+-----------------------------------+
-Total line number = 1
-It costs 0.005s
-IoTDB> LIST PRIVILEGES ROLE `temprole` ON root.ln.wf01.wt01.**;
-+-----------------------------------+
-|                          privilege|
-+-----------------------------------+
-|root.ln.wf01.** : CREATE_TIMESERIES|
-+-----------------------------------+
-Total line number = 1
-It costs 0.005s
+```sql
+LIST PRIVILEGES OF ROLE <roleName>;
+eg: LIST PRIVILEGES OF ROLE actor;
 ```
 
-* Alter Password
+- Update password
 
-```
+```sql
 ALTER USER <username> SET PASSWORD <password>;
-Eg: IoTDB > ALTER USER `tempuser` SET PASSWORD 'newpwd';
+eg: ALTER USER tempuser SET PASSWORD 'newpwd';
 ```
 
-### Operations restricted by non root users
+### Authorization and Deauthorization
 
-At present, the following SQL statements supported by iotdb can only be 
operated by the `root` user, and no corresponding permission can be given to 
the new user.
 
-#### TsFile Management
-
-- Load TsFiles
-
-```
-Eg: IoTDB > load '/Users/Desktop/data/1575028885956-101-0.tsfile'
+```sql
+GRANT <PRIVILEGES> ON <PATHS> TO ROLE/USER <NAME> [WITH GRANT OPTION];
+eg: GRANT READ ON root.** TO ROLE role1;
+eg: GRANT READ_DATA, WRITE_DATA ON root.t1.** TO USER user1;
+eg: GRANT READ_DATA, WRITE_DATA ON root.t1.**,root.t2.** TO USER user1;
+eg: GRANT MANAGE_ROLE ON root.** TO USER user1 WITH GRANT OPTION;
+eg: GRANT ALL ON root.** TO USER user1 WITH GRANT OPTION;
 ```
 
-- remove a tsfile
-
-```
-Eg: IoTDB > remove 
'/Users/Desktop/data/data/root.vehicle/0/0/1575028885956-101-0.tsfile'
+```sql
+REVOKE <PRIVILEGES> ON <PATHS> FROM ROLE/USER <NAME>;
+eg: REVOKE READ ON root.** FROM ROLE role1;
+eg: REVOKE READ_DATA, WRITE_DATA ON root.t1.** FROM USER user1;
+eg: REVOKE READ_DATA, WRITE_DATA ON root.t1.**, root.t2.** FROM USER user1;
+eg: REVOKE MANAGE_ROLE ON root.** FROM USER user1;
+eg: REVOKE ALL ON ROOT.** FROM USER user1;
 ```
 
-- unload a tsfile and move it to a target directory
-
-```
-Eg: IoTDB > unload 
'/Users/Desktop/data/data/root.vehicle/0/0/1575028885956-101-0.tsfile' 
'/data/data/tmp'
-```
 
 #### Delete Time Partition (experimental)
 
@@ -1853,19 +1739,4 @@ Eg: IoTDB > SET SYSTEM TO READONLY / WRITABLE
 
 ```
 Eg: IoTDB > KILL QUERY 1
-```
-
-#### Watermark Tool
-
-- Watermark new users
-
-```
-Eg: IoTDB > grant watermark_embedding to Alice
-```
-
-- Watermark Detection
-
-```
-Eg: IoTDB > revoke watermark_embedding from Alice
-```
-
+```
\ No newline at end of file
diff --git a/src/UserGuide/Master/User-Manual/AINode_timecho.md 
b/src/UserGuide/Master/User-Manual/AINode_timecho.md
index c193bf6..927369d 100644
--- a/src/UserGuide/Master/User-Manual/AINode_timecho.md
+++ b/src/UserGuide/Master/User-Manual/AINode_timecho.md
@@ -441,7 +441,7 @@ When using AINode related functions, the authentication of 
IoTDB itself can be u
 
 | Privilege Name | Privilege Scope | Administrator User (default ROOT) | 
Normal User | Path Related |
 | --------- | --------------------------------- | ---------------------- | 
-------- | -------- |
-| USE_MODEL | create modelshow modelsdrop model | √ | √ √ | x |
+| USE_MODEL | create model/show model/sdrop model | √ | √ √ | x |
 | | | call inference | | | | |
 
 ## 6. Practical Examples
diff --git a/src/UserGuide/Master/User-Manual/Query-Data.md 
b/src/UserGuide/Master/User-Manual/Query-Data.md
index 4d60a72..b9d443a 100644
--- a/src/UserGuide/Master/User-Manual/Query-Data.md
+++ b/src/UserGuide/Master/User-Manual/Query-Data.md
@@ -2877,8 +2877,8 @@ It costs 0.375s
 
 The user must have the following permissions to execute a query write-back 
statement:
 
-* All `READ_TIMESERIES` permissions for the source series in the `select` 
clause.
-* All `INSERT_TIMESERIES` permissions for the target series in the `into` 
clause.
+* All `WRITE_SCHEMA` permissions for the source series in the `select` clause.
+* All `WRITE_DATA` permissions for the target series in the `into` clause.
 
 For more user permissions related content, please refer to [Account Management 
Statements](./Authority-Management.md).
 
diff --git 
a/src/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md 
b/src/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
index 1f1b40a..cfd1a14 100644
--- 
a/src/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
+++ 
b/src/UserGuide/V1.2.x/Deployment-and-Maintenance/Deployment-Guide_timecho.md
@@ -163,11 +163,11 @@ IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -XX:MaxGCPauseMillis=200"
 | parameter name                 | parameter describe                          
                                                                                
                                                      | required |
 
|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
 | name                           | Confignode name                             
                                                                                
                                                      | YES      |
-| deploy\_dir                    | IoTDB config node deployment directory      
                                                                                
                                                                      | YES|    
 |
+| deploy\_dir                    | IoTDB config node deployment directory      
                                                                                
                                                                      | YES     
|
 | iotdb-confignode.properties    | Corresponding to 
`iotdb/config/iotdb-confignode.properties`, please refer to the 
`iotdb-confignode.properties` file description for more details.                
                                                                             | 
NO       |
-| cn\_internal\_address          | Corresponds to iotdb/internal communication 
address, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                        | YES      |
+| cn_internal_address          | Corresponds to iotdb/internal communication 
address, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                        | YES      |
 | cn\_target\_config\_node\_list | The cluster configuration address points to 
the surviving ConfigNode, and it points to confignode_x by default. When 
`global` and `confignode_servers` are configured at the same time, the value in 
`confignode_servers` is used first, corresponding to 
`cn_target_config_node_list` in `iotdb/config/iotdb-confignode.properties` | 
YES      |
-| cn\_internal\_port             | Internal communication port, corresponding 
to `cn_internal_port` in `iotdb/config/iotdb-confignode.properties`             
                                                                                
             | YES      |
+| cn_internal_port             | Internal communication port, corresponding to 
`cn_internal_port` in `iotdb/config/iotdb-confignode.properties`                
                                                                                
          | YES      |
 | cn\_consensus\_port            | Corresponds to `cn_consensus_port` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                                         | NO   
   |
 | cn\_data\_dir                  | Corresponds to `cn_consensus_port` in 
`iotdb/config/iotdb-confignode.properties` Corresponds to `cn_data_dir` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                                                
 | YES      |
 | iotdb-common.properties        | Corresponding to 
`iotdb/config/iotdb-common.properties`, when configuring values in `global` and 
`confignode_servers` at the same time, the value in confignode_servers will be 
used first.                                                                     
         | NO      |
diff --git a/src/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md 
b/src/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md
index 8503ffe..c22d67e 100644
--- a/src/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md
+++ b/src/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md
@@ -154,6 +154,25 @@ The default IoTDB's Cli time display format is readable 
(e.g. ```1970-01-01T08:0
 
 ### 9. How to handle error `IndexOutOfBoundsException` from 
`org.apache.ratis.grpc.server.GrpcLogAppender`?
 
+### 10. How to deal with estimated out of memory errors?
+
+Report an error message:
+```
+301: There is not enough memory to execute current fragment instance, current 
remaining free memory is 86762854, estimated memory usage for current fragment 
instance is 270139392
+```
+Error analysis:
+The datanode_memory_proportion parameter controls the memory divided to the 
query, and the chunk_timeseriesmeta_free_memory_proportion parameter controls 
the memory available for query execution.
+By default the memory allocated to the query is 30% of the heap memory and the 
memory available for query execution is 20% of the query memory.
+The error report shows that the current remaining memory available for query 
execution is 86762854B = 82.74MB, and the query is estimated to use 270139392B 
= 257.6MB of execution memory.
+
+Some possible improvement items:
+
+- Without changing the default parameters, crank up the heap memory of IoTDB 
greater than 4.2G (4.2G * 1024MB = 4300MB), 4300M * 30% * 20% = 258M > 257.6M, 
which can fulfill the requirement.
+- Change parameters such as datanode_memory_proportion so that the available 
memory for query execution is >257.6MB.
+- Reduce the number of exported time series.
+- Add slimit limit to the query statement, which is also an option to reduce 
the query time series.
+- Add align by device, which will export in device order, and the memory usage 
will be reduced to single-device level.
+
 It is an internal error introduced by Ratis 2.4.1 dependency, and we can 
safely ignore this exception as it will
 not affect normal operations. We will fix this message in the incoming 
releases.
 
diff --git a/src/UserGuide/latest/API/RestServiceV1.md 
b/src/UserGuide/latest/API/RestServiceV1.md
index 2048c3c..2489d2f 100644
--- a/src/UserGuide/latest/API/RestServiceV1.md
+++ b/src/UserGuide/latest/API/RestServiceV1.md
@@ -32,7 +32,7 @@ RESTful services are disabled by default.
 
 * User
 
-  Find the `conf/iotdb.rest.properties` file under the IoTDB installation 
directory and set `enable_rest_service` to `true` to enable the module.
+  Find the `conf/conf/iotdb-datanode.properties` file under the IoTDB 
installation directory and set `enable_rest_service` to `true` to enable the 
module.
 
   ```properties
   enable_rest_service=true
diff --git 
a/src/UserGuide/latest/Deployment-and-Maintenance/Deployment-Guide_timecho.md 
b/src/UserGuide/latest/Deployment-and-Maintenance/Deployment-Guide_timecho.md
index 40ff39a..7c4191f 100644
--- 
a/src/UserGuide/latest/Deployment-and-Maintenance/Deployment-Guide_timecho.md
+++ 
b/src/UserGuide/latest/Deployment-and-Maintenance/Deployment-Guide_timecho.md
@@ -160,10 +160,10 @@ IOTDB_JMX_OPTS="$IOTDB_JMX_OPTS -XX:MaxGCPauseMillis=200"
 | parameter name              | parameter describe                             
                                                                                
                                                   | required |
 
|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
 | name                        | Confignode name                                
                                                                                
                                                   | YES      |
-| deploy\_dir                 | IoTDB config node deployment directory         
                                                                                
                                                                   | YES|     |
+| deploy\_dir                 | IoTDB config node deployment directory         
                                                                                
                                                                   | YES     |
 | iotdb-confignode.properties | Corresponding to 
`iotdb/config/iotdb-confignode.properties`, please refer to the 
`iotdb-confignode.properties` file description for more details.                
                                                                             | 
NO       |
 | cn\_internal\_address       | Corresponds to iotdb/internal communication 
address, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                        | YES      |
-| cn_\internal\_address       | The cluster configuration address points to 
the surviving ConfigNode, and it points to confignode_x by default. When 
`global` and `confignode_servers` are configured at the same time, the value in 
`confignode_servers` is used first, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties` | YES      |
+| cn_internal_address       | The cluster configuration address points to the 
surviving ConfigNode, and it points to confignode_x by default. When `global` 
and `confignode_servers` are configured at the same time, the value in 
`confignode_servers` is used first, corresponding to `cn_internal_address` in 
`iotdb/config/iotdb-confignode.properties` | YES      |
 | cn\_internal\_port          | Internal communication port, corresponding to 
`cn_internal_port` in `iotdb/config/iotdb-confignode.properties`                
                                                                                
          | YES      |
 | cn\_consensus\_port         | Corresponds to `cn_consensus_port` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                                         | NO   
   |
 | cn\_data\_dir               | Corresponds to `cn_consensus_port` in 
`iotdb/config/iotdb-confignode.properties` Corresponds to `cn_data_dir` in 
`iotdb/config/iotdb-confignode.properties`                                      
                                                                                
 | YES      |
diff --git a/src/UserGuide/latest/FAQ/Frequently-asked-questions.md 
b/src/UserGuide/latest/FAQ/Frequently-asked-questions.md
index 8503ffe..c22d67e 100644
--- a/src/UserGuide/latest/FAQ/Frequently-asked-questions.md
+++ b/src/UserGuide/latest/FAQ/Frequently-asked-questions.md
@@ -154,6 +154,25 @@ The default IoTDB's Cli time display format is readable 
(e.g. ```1970-01-01T08:0
 
 ### 9. How to handle error `IndexOutOfBoundsException` from 
`org.apache.ratis.grpc.server.GrpcLogAppender`?
 
+### 10. How to deal with estimated out of memory errors?
+
+Report an error message:
+```
+301: There is not enough memory to execute current fragment instance, current 
remaining free memory is 86762854, estimated memory usage for current fragment 
instance is 270139392
+```
+Error analysis:
+The datanode_memory_proportion parameter controls the memory divided to the 
query, and the chunk_timeseriesmeta_free_memory_proportion parameter controls 
the memory available for query execution.
+By default the memory allocated to the query is 30% of the heap memory and the 
memory available for query execution is 20% of the query memory.
+The error report shows that the current remaining memory available for query 
execution is 86762854B = 82.74MB, and the query is estimated to use 270139392B 
= 257.6MB of execution memory.
+
+Some possible improvement items:
+
+- Without changing the default parameters, crank up the heap memory of IoTDB 
greater than 4.2G (4.2G * 1024MB = 4300MB), 4300M * 30% * 20% = 258M > 257.6M, 
which can fulfill the requirement.
+- Change parameters such as datanode_memory_proportion so that the available 
memory for query execution is >257.6MB.
+- Reduce the number of exported time series.
+- Add slimit limit to the query statement, which is also an option to reduce 
the query time series.
+- Add align by device, which will export in device order, and the memory usage 
will be reduced to single-device level.
+
 It is an internal error introduced by Ratis 2.4.1 dependency, and we can 
safely ignore this exception as it will
 not affect normal operations. We will fix this message in the incoming 
releases.
 
diff --git a/src/UserGuide/latest/SQL-Manual/SQL-Manual.md 
b/src/UserGuide/latest/SQL-Manual/SQL-Manual.md
index 9e1fc2f..deb1170 100644
--- a/src/UserGuide/latest/SQL-Manual/SQL-Manual.md
+++ b/src/UserGuide/latest/SQL-Manual/SQL-Manual.md
@@ -106,7 +106,7 @@ IoTDB> SHOW ALL TTL
 IoTDB> SHOW TTL ON StorageGroupNames
 ```
 
-## SCHEMA TEMPLATE
+## DEVICE TEMPLATE
 
 For more details, see document 
[Operate-Metadata](../User-Manual/Operate-Metadata.md).
 
@@ -122,71 +122,71 @@ Create device root.sg.d1
 
 
![img](https://alioss.timecho.com/docs/img/%E6%A8%A1%E6%9D%BF%E6%B5%81%E7%A8%8B.png)
 
-### Create Schema Template
+### Create Device Template
 
 **Example 1:** Create a template containing two non-aligned timeseires
 
 ```shell
-IoTDB> create schema template t1 (temperature FLOAT encoding=RLE, status 
BOOLEAN encoding=PLAIN compression=SNAPPY)
+IoTDB> create device template t1 (temperature FLOAT encoding=RLE, status 
BOOLEAN encoding=PLAIN compression=SNAPPY)
 ```
 
 **Example 2:** Create a template containing a group of aligned timeseires
 
 ```shell
-IoTDB> create schema template t2 aligned (lat FLOAT encoding=Gorilla, lon 
FLOAT encoding=Gorilla)
+IoTDB> create device template t2 aligned (lat FLOAT encoding=Gorilla, lon 
FLOAT encoding=Gorilla)
 ```
 
 The` lat` and `lon` measurements are aligned.
 
-### Set Schema Template
+### Set Device Template
 
 ```sql
-IoTDB> set schema template t1 to root.sg1.d1
+IoTDB> set device template t1 to root.sg1.d1
 ```
 
-### Activate Schema Template
+### Activate Device Template
 
 ```sql
-IoTDB> set schema template t1 to root.sg1.d1
-IoTDB> set schema template t2 to root.sg1.d2
-IoTDB> create timeseries using schema template on root.sg1.d1
-IoTDB> create timeseries using schema template on root.sg1.d2
+IoTDB> set device template t1 to root.sg1.d1
+IoTDB> set device template t2 to root.sg1.d2
+IoTDB> create timeseries using device template on root.sg1.d1
+IoTDB> create timeseries using device template on root.sg1.d2
 ```
 
-### Show Schema Template
+### Show Device Template
 
 ```sql
-IoTDB> show schema templates
-IoTDB> show nodes in schema template t1
-IoTDB> show paths set schema template t1
-IoTDB> show paths using schema template t1
+IoTDB> show device templates
+IoTDB> show nodes in device template t1
+IoTDB> show paths set device template t1
+IoTDB> show paths using device template t1
 ```
 
-### Deactivate Schema Template
+### Deactivate Device Template
 
 ```sql
-IoTDB> delete timeseries of schema template t1 from root.sg1.d1
-IoTDB> deactivate schema template t1 from root.sg1.d1
-IoTDB> delete timeseries of schema template t1 from root.sg1.*, root.sg2.*
-IoTDB> deactivate schema template t1 from root.sg1.*, root.sg2.*
+IoTDB> delete timeseries of device template t1 from root.sg1.d1
+IoTDB> deactivate device template t1 from root.sg1.d1
+IoTDB> delete timeseries of device template t1 from root.sg1.*, root.sg2.*
+IoTDB> deactivate device template t1 from root.sg1.*, root.sg2.*
 ```
 
-### Unset Schema Template
+### Unset Device Template
 
 ```sql
-IoTDB> unset schema template t1 from root.sg1.d1
+IoTDB> unset device template t1 from root.sg1.d1
 ```
 
-### Drop Schema Template
+### Drop Device Template
 
 ```sql
-IoTDB> drop schema template t1
+IoTDB> drop device template t1
 ```
 
-### Alter Schema Template
+### Alter Device Template
 
 ```sql
-IoTDB> alter schema template t1 add (speed FLOAT encoding=RLE, FLOAT TEXT 
encoding=PLAIN compression=SNAPPY)
+IoTDB> alter device template t1 add (speed FLOAT encoding=RLE, FLOAT TEXT 
encoding=PLAIN compression=SNAPPY)
 ```
 
 ## TIMESERIES MANAGEMENT
@@ -1585,226 +1585,116 @@ For more details, see document 
[Operator-and-Expression](../User-Manual/Operator
 
 ### SQL Statements
 
-* Create User
+- Create user (Requires MANAGE_USER permission)
 
-```
-CREATE USER <userName> <password>;  
-Eg: IoTDB > CREATE USER `thulab` 'pwd';
-```
-
-* Delete User
-
-```
-DROP USER <userName>;  
-Eg: IoTDB > DROP USER `xiaoming`;
-```
-
-* Create Role
-
-```
-CREATE ROLE <roleName>;  
-Eg: IoTDB > CREATE ROLE `admin`;
-```
-
-* Delete Role
-
-```
-DROP ROLE <roleName>;  
-Eg: IoTDB > DROP ROLE `admin`;
-```
-
-* Grant User Privileges
-
-```
-GRANT USER <userName> PRIVILEGES <privileges> ON <nodeNames>;  
-Eg: IoTDB > GRANT USER `tempuser` PRIVILEGES INSERT_TIMESERIES, 
DELETE_TIMESERIES on root.ln.**, root.sgcc.**;
-Eg: IoTDB > GRANT USER `tempuser` PRIVILEGES CREATE_ROLE;
-```
-
-- Grant User All Privileges
-
-```
-GRANT USER <userName> PRIVILEGES ALL; 
-Eg: IoTDB > GRANT USER `tempuser` PRIVILEGES ALL;
-```
-
-* Grant Role Privileges
-
-```
-GRANT ROLE <roleName> PRIVILEGES <privileges> ON <nodeNames>;  
-Eg: IoTDB > GRANT ROLE `temprole` PRIVILEGES INSERT_TIMESERIES, 
DELETE_TIMESERIES ON root.sgcc.**, root.ln.**;
-Eg: IoTDB > GRANT ROLE `temprole` PRIVILEGES CREATE_ROLE;
-```
-
-- Grant Role All Privileges
-
-```
-GRANT ROLE <roleName> PRIVILEGES ALL ON <nodeNames>;  
-Eg: IoTDB > GRANT ROLE `temprole` PRIVILEGES ALL;
-```
-
-* Grant User Role
-
-```
-GRANT <roleName> TO <userName>;  
-Eg: IoTDB > GRANT `temprole` TO tempuser;
+```SQL
+CREATE USER <userName> <password>
+eg: CREATE USER user1 'passwd'
 ```
 
-* Revoke User Privileges
+- Delete user (Requires MANAGE_USER permission)
 
-```
-REVOKE USER <userName> PRIVILEGES <privileges> ON <nodeNames>;   
-Eg: IoTDB > REVOKE USER `tempuser` PRIVILEGES DELETE_TIMESERIES on root.ln.**;
-Eg: IoTDB > REVOKE USER `tempuser` PRIVILEGES CREATE_ROLE;
+```sql
+DROP USER <userName>
+eg: DROP USER user1
 ```
 
-* Revoke User All Privileges
+- Create role (Requires MANAGE_ROLE permission)
 
-```
-REVOKE USER <userName> PRIVILEGES ALL; 
-Eg: IoTDB > REVOKE USER `tempuser` PRIVILEGES ALL;
+```sql
+CREATE ROLE <roleName>
+eg: CREATE ROLE role1
 ```
 
-* Revoke Role Privileges
+- Delete role (Requires MANAGE_ROLE permission)
 
-```
-REVOKE ROLE <roleName> PRIVILEGES <privileges> ON <nodeNames>;  
-Eg: IoTDB > REVOKE ROLE `temprole` PRIVILEGES DELETE_TIMESERIES ON root.ln.**;
-Eg: IoTDB > REVOKE ROLE `temprole` PRIVILEGES CREATE_ROLE;
+```sql
+DROP ROLE <roleName>
+eg: DROP ROLE role1  
 ```
 
-* Revoke All Role Privileges
+- Grant role to user (Requires MANAGE_ROLE permission)
 
-```
-REVOKE ROLE <roleName> PRIVILEGES ALL;  
-Eg: IoTDB > REVOKE ROLE `temprole` PRIVILEGES ALL;
+```sql
+GRANT ROLE <ROLENAME> TO <USERNAME>
+eg: GRANT ROLE admin TO user1
 ```
 
-* Revoke Role From User
+- Revoke role from user(Requires MANAGE_ROLE permission)
 
-```
-REVOKE <roleName> FROM <userName>;
-Eg: IoTDB > REVOKE `temprole` FROM tempuser;
+```sql
+REVOKE ROLE <ROLENAME> FROM <USER>
+eg: REVOKE ROLE admin FROM user1
 ```
 
-* List Users
+- List all user (Requires MANAGE_USER permission)
 
-```
+```sql
 LIST USER
-Eg: IoTDB > LIST USER
-```
-
-* List User of Specific Role
-
-```
-LIST USER OF ROLE <roleName>;
-Eg: IoTDB > LIST USER OF ROLE `roleuser`;
 ```
 
-* List Roles
+- List all role (Requires MANAGE_ROLE permission)
 
-```
+```sql
 LIST ROLE
-Eg: IoTDB > LIST ROLE
-```
-
-* List Roles of Specific User
-
-```
-LIST ROLE OF USER <username> ;  
-Eg: IoTDB > LIST ROLE OF USER `tempuser`;
 ```
 
-* List All Privileges of Users
+- List all users granted specific role.(Requires MANAGE_USER permission)
 
-```
-LIST PRIVILEGES USER <username> ;   
-Eg: IoTDB > LIST PRIVILEGES USER `tempuser`;
+```sql
+LIST USER OF ROLE <roleName>
+eg: LIST USER OF ROLE roleuser
 ```
 
-* List Related Privileges of Users(On Specific Paths)
+- List all role granted to specific user.
 
-```
-LIST PRIVILEGES USER <username> ON <paths>;
-Eg: IoTDB> LIST PRIVILEGES USER `tempuser` ON root.ln.**, root.ln.wf01.**;
-+--------+-----------------------------------+
-|    role|                          privilege|
-+--------+-----------------------------------+
-|        |      root.ln.** : ALTER_TIMESERIES|
-|temprole|root.ln.wf01.** : CREATE_TIMESERIES|
-+--------+-----------------------------------+
-Total line number = 2
-It costs 0.005s
-IoTDB> LIST PRIVILEGES USER `tempuser` ON root.ln.wf01.wt01.**;
-+--------+-----------------------------------+
-|    role|                          privilege|
-+--------+-----------------------------------+
-|        |      root.ln.** : ALTER_TIMESERIES|
-|temprole|root.ln.wf01.** : CREATE_TIMESERIES|
-+--------+-----------------------------------+
-Total line number = 2
-It costs 0.005s
+```sql
+LIST ROLE OF USER <username> 
+eg: LIST ROLE OF USER tempuser
 ```
 
-* List All Privileges of Roles
+- List all privileges of user
 
-```
-LIST PRIVILEGES ROLE <roleName>
-Eg: IoTDB > LIST PRIVILEGES ROLE `actor`;
+```sql
+LIST PRIVILEGES OF USER <username>;
+eg: LIST PRIVILEGES OF USER tempuser;
 ```
 
-* List Related Privileges of Roles(On Specific Paths)
+- List all privileges of role
 
-```
-LIST PRIVILEGES ROLE <roleName> ON <paths>;    
-Eg: IoTDB> LIST PRIVILEGES ROLE `temprole` ON root.ln.**, root.ln.wf01.wt01.**;
-+-----------------------------------+
-|                          privilege|
-+-----------------------------------+
-|root.ln.wf01.** : CREATE_TIMESERIES|
-+-----------------------------------+
-Total line number = 1
-It costs 0.005s
-IoTDB> LIST PRIVILEGES ROLE `temprole` ON root.ln.wf01.wt01.**;
-+-----------------------------------+
-|                          privilege|
-+-----------------------------------+
-|root.ln.wf01.** : CREATE_TIMESERIES|
-+-----------------------------------+
-Total line number = 1
-It costs 0.005s
+```sql
+LIST PRIVILEGES OF ROLE <roleName>;
+eg: LIST PRIVILEGES OF ROLE actor;
 ```
 
-* Alter Password
+- Update password
 
-```
+```sql
 ALTER USER <username> SET PASSWORD <password>;
-Eg: IoTDB > ALTER USER `tempuser` SET PASSWORD 'newpwd';
+eg: ALTER USER tempuser SET PASSWORD 'newpwd';
 ```
 
-### Operations restricted by non root users
+### Authorization and Deauthorization
 
-At present, the following SQL statements supported by iotdb can only be 
operated by the `root` user, and no corresponding permission can be given to 
the new user.
 
-#### TsFile Management
-
-- Load TsFiles
-
-```
-Eg: IoTDB > load '/Users/Desktop/data/1575028885956-101-0.tsfile'
+```sql
+GRANT <PRIVILEGES> ON <PATHS> TO ROLE/USER <NAME> [WITH GRANT OPTION];
+eg: GRANT READ ON root.** TO ROLE role1;
+eg: GRANT READ_DATA, WRITE_DATA ON root.t1.** TO USER user1;
+eg: GRANT READ_DATA, WRITE_DATA ON root.t1.**,root.t2.** TO USER user1;
+eg: GRANT MANAGE_ROLE ON root.** TO USER user1 WITH GRANT OPTION;
+eg: GRANT ALL ON root.** TO USER user1 WITH GRANT OPTION;
 ```
 
-- remove a tsfile
-
-```
-Eg: IoTDB > remove 
'/Users/Desktop/data/data/root.vehicle/0/0/1575028885956-101-0.tsfile'
+```sql
+REVOKE <PRIVILEGES> ON <PATHS> FROM ROLE/USER <NAME>;
+eg: REVOKE READ ON root.** FROM ROLE role1;
+eg: REVOKE READ_DATA, WRITE_DATA ON root.t1.** FROM USER user1;
+eg: REVOKE READ_DATA, WRITE_DATA ON root.t1.**, root.t2.** FROM USER user1;
+eg: REVOKE MANAGE_ROLE ON root.** FROM USER user1;
+eg: REVOKE ALL ON ROOT.** FROM USER user1;
 ```
 
-- unload a tsfile and move it to a target directory
-
-```
-Eg: IoTDB > unload 
'/Users/Desktop/data/data/root.vehicle/0/0/1575028885956-101-0.tsfile' 
'/data/data/tmp'
-```
 
 #### Delete Time Partition (experimental)
 
@@ -1849,19 +1739,4 @@ Eg: IoTDB > SET SYSTEM TO READONLY / WRITABLE
 
 ```
 Eg: IoTDB > KILL QUERY 1
-```
-
-#### Watermark Tool
-
-- Watermark new users
-
-```
-Eg: IoTDB > grant watermark_embedding to Alice
-```
-
-- Watermark Detection
-
-```
-Eg: IoTDB > revoke watermark_embedding from Alice
-```
-
+```
\ No newline at end of file
diff --git a/src/UserGuide/latest/User-Manual/AINode_timecho.md 
b/src/UserGuide/latest/User-Manual/AINode_timecho.md
index c193bf6..927369d 100644
--- a/src/UserGuide/latest/User-Manual/AINode_timecho.md
+++ b/src/UserGuide/latest/User-Manual/AINode_timecho.md
@@ -441,7 +441,7 @@ When using AINode related functions, the authentication of 
IoTDB itself can be u
 
 | Privilege Name | Privilege Scope | Administrator User (default ROOT) | 
Normal User | Path Related |
 | --------- | --------------------------------- | ---------------------- | 
-------- | -------- |
-| USE_MODEL | create modelshow modelsdrop model | √ | √ √ | x |
+| USE_MODEL | create model/show model/sdrop model | √ | √ √ | x |
 | | | call inference | | | | |
 
 ## 6. Practical Examples
diff --git a/src/UserGuide/latest/User-Manual/Query-Data.md 
b/src/UserGuide/latest/User-Manual/Query-Data.md
index 4d60a72..b9d443a 100644
--- a/src/UserGuide/latest/User-Manual/Query-Data.md
+++ b/src/UserGuide/latest/User-Manual/Query-Data.md
@@ -2877,8 +2877,8 @@ It costs 0.375s
 
 The user must have the following permissions to execute a query write-back 
statement:
 
-* All `READ_TIMESERIES` permissions for the source series in the `select` 
clause.
-* All `INSERT_TIMESERIES` permissions for the target series in the `into` 
clause.
+* All `WRITE_SCHEMA` permissions for the source series in the `select` clause.
+* All `WRITE_DATA` permissions for the target series in the `into` clause.
 
 For more user permissions related content, please refer to [Account Management 
Statements](./Authority-Management.md).
 
diff --git a/src/zh/UserGuide/Master/FAQ/Frequently-asked-questions.md 
b/src/zh/UserGuide/Master/FAQ/Frequently-asked-questions.md
index 4097f7c..daa593a 100644
--- a/src/zh/UserGuide/Master/FAQ/Frequently-asked-questions.md
+++ b/src/zh/UserGuide/Master/FAQ/Frequently-asked-questions.md
@@ -159,24 +159,24 @@ IoTDB 客户端默认显示的时间是人类可读的(比如:```1970-01-01T
 这是我们的依赖Ratis 2.4.1的一个内部错误日志,不会对数据写入和读取造成任何影响。
 已经报告给Ratis社区,并会在未来的版本中修复。
 
-### 10. 内存不足报错如何处理?
+### 10. 预估内存不足报错如何处理?
 
 报错信息:
 ```
 301: There is not enough memory to execute current fragment instance, current 
remaining free memory is 86762854, estimated memory usage for current fragment 
instance is 270139392
 ```
-处理方式:
+报错分析:
 
datanode_memory_proportion参数控制分给查询的内存,chunk_timeseriesmeta_free_memory_proportion参数控制查询执行可用的内存。
 默认情况下分给查询的内存为堆内存*30%,查询执行可用的内存为查询内存的20%。
 报错显示当前剩余查询执行可用内存为86762854B=82.74MB,该查询预估使用执行内存270139392B=257.6MB。
 
 一些可能的改进项:
 
-在不改变默认参数的前提下,调大IoTDB的堆内存大于 4.2G(4.2G * 
1024MB=4300MB),4300M*30%*20%=258M>257.6M,可以满足要求。
-或者更改 datanode_memory_proportion 等参数,使查询执行可用内存>257.6MB。
-或者减少导出的时间序列数量。
-或者给查询语句添加 slimit 限制,也是减少查询时间序列的一种方案。
-或者添加 align by device,会按照device顺序进行输出,内存占用会降低至单device级别。
+- 在不改变默认参数的前提下,调大IoTDB的堆内存大于 4.2G(4.2G * 
1024MB=4300MB),4300M*30%*20%=258M>257.6M,可以满足要求。
+- 更改 datanode_memory_proportion 等参数,使查询执行可用内存>257.6MB。
+- 减少导出的时间序列数量。
+- 给查询语句添加 slimit 限制,也是减少查询时间序列的一种方案。
+- 添加 align by device,会按照device顺序进行输出,内存占用会降低至单device级别。
 
 
 ## 分布式部署 FAQ
diff --git a/src/zh/UserGuide/Master/Tools-System/Benchmark.md 
b/src/zh/UserGuide/Master/Tools-System/Benchmark.md
index 940aced..52d094c 100644
--- a/src/zh/UserGuide/Master/Tools-System/Benchmark.md
+++ b/src/zh/UserGuide/Master/Tools-System/Benchmark.md
@@ -27,13 +27,13 @@ IoT-benchmark 是基于 Java 和大数据环境开发的时序数据库基准测
 
 下图1-1囊括了测试基准流程及其他扩展功能。这些流程可以由IoT-benchmark 统一来完成。IoT Benchmark 
支持多种工作负载,包括**纯写入、纯查询、写入查询混合**等,支持**软硬件系统监控、测试指标度量**等监控功能,还实现了**初始化数据库自动化、测试数据分析及系统参数优化**等功能。
 
-![img](https://alioss.timecho.com/docs/img/1.PNG)
+![img](https://alioss.timecho.com/docs/img/bm1.PNG)
 
 图1-1
 
 借鉴 YCSB 测试工具将工作负载生成、性能指标测量和数据库接口三个组件分离的设计思想,IoT-benchmark 的模块化设计如图1-2所示。与基于 
YCSB 的测试工具系统不同的是,IoT-benchmark 
增加了系统监控模块,支持测试数据和系统指标监控数据的持久化。此外也增加了一些特别针对时序数据场景的特殊负载测试功能,如支持物联网场景的批量写入和多种乱序数据写入模式。
 
-![img](https://alioss.timecho.com/docs/img/2.PNG)
+![img](https://alioss.timecho.com/docs/img/bm2.PNG)
 
 图1-2
 
@@ -41,18 +41,16 @@ IoT-benchmark 是基于 Java 和大数据环境开发的时序数据库基准测
 
 目前 IoT-benchmark 支持如下时间序列数据库、版本和连接方式:
 
-| 数据库          | DB-Engines排名 | 版本    | 连接方式                                   
              |
-| --------------- | -------------- | ------- | 
-------------------------------------------------------- |
-| InfluxDB        | 1              | v1.x    | SDK                             
                         |
-| v2.0            |                |         |                                 
                         |
-| TimescaleDB     | 5              | --      | jdbc                            
                         |
-| OpenTSDB        | 8              | --      | Http Request                    
                         |
-| QuestDB         | 10             | v6.0.7  | jdbc                            
                         |
-| TDengine        | 13             | 2.2.0.2 | jdbc                            
                         |
-| VictoriaMetrics | 16             | v1.64.0 | Http Request                    
                         |
-| KairosDB        | 17             | --      | Http Request                    
                         |
-| IoTDB           | 19             | v1.0    | 
jdbc、sessionByTablet、sessionByRecord、sessionByRecords |
-| v0.13           |                |         |                                 
                         |
+| 数据库          | 版本    | 连接方式                                                 |
+| --------------- | ------- | 
-------------------------------------------------------- |
+| InfluxDB        | v1.x <br> v2.0     | SDK                                   
                   |                                               |
+| TimescaleDB     |  --      | jdbc                                            
         |
+| OpenTSDB        | --      | Http Request                                     
        |
+| QuestDB         |  v6.0.7  | jdbc                                            
         |
+| TDengine        |  v2.2.0.2 | jdbc                                           
          |
+| VictoriaMetrics | v1.64.0 | Http Request                                     
        |
+| KairosDB        |  --      | Http Request                                    
         |
+| IoTDB           |  v1.x <br> v0.13   | 
jdbc、sessionByTablet、sessionByRecord、sessionByRecords |
 
 表1-1大数据测试基准对比
 
@@ -79,7 +77,7 @@ IoT-benchmark 是基于 Java 和大数据环境开发的时序数据库基准测
 
 测试包的目录结构如下图1-3所示。其中测试配置文件为conf/config.properties,测试启动脚本为benchmark.sh (Linux & 
MacOS) 和 benchmark.bat (Windows),详细文件用途见表1-2所示。
 
-![img](https://alioss.timecho.com/docs/img/3.png)
+![img](https://alioss.timecho.com/docs/img/bm3.png)
 
 图1-3文件和文件夹列表
 
@@ -107,7 +105,7 @@ IoT-benchmark 是基于 Java 和大数据环境开发的时序数据库基准测
 
 测试的所有日志文件被存放于 logs 文件夹下,测试的结果在测试完成后被存放到 data/csvOutput 文件夹下,例如测试后我们得到了如下的结果矩阵:
 
-![img](https://alioss.timecho.com/docs/img/4.png)
+![img](https://alioss.timecho.com/docs/img/bm4.png)
 
 - Result Matrix
   - OkOperation:成功的对应操作次数
@@ -269,24 +267,24 @@ IoT-benchmark目前支持通过配置参数“TEST_DATA_PERSISTENCE”将测试
 
 
首先在172.21.4.3和172.21.4.4上分别启动被测时间序列数据库Apache-IoTDB和KairosDB,之后在172.21.4.2、172.21.4.3和172.21.4.4上通过ser-benchamrk.sh脚本启动服务器资源监控(图2-1)。然后按照表2-3在172.21.4.2分别修改iotdb-0.13-0.0.1和kairosdb-0.0.1文件夹内的conf/config.properties文件满足测试需求。先后使用benchmark.sh启动对Apache-IoTDB和KairosDB的写入测试。
 
-![img](https://alioss.timecho.com/docs/img/5.png)
+![img](https://alioss.timecho.com/docs/img/bm5.png)
 
 图2-1服务器监控任务
 
 ​    
例如我们首先启动对KairosDB的测试,IoT-benchmark会在MySQL数据库中创建CONFIG数据表存放本次测试配置信息(图2-2),测试执行中会有日志输出当前测试进度(图2-3)。测试完成时会输出本次测试结果(图2-3),同时将结果写入FINAL_RESULT数据表中(图2-4)。
 
-![img](https://alioss.timecho.com/docs/img/6.png)
+![img](https://alioss.timecho.com/docs/img/bm6.png)
 
 图2-2测试配置信息表
 
-![img](https://alioss.timecho.com/docs/img/7.png)
-![img](https://alioss.timecho.com/docs/img/8.png)
-![img](https://alioss.timecho.com/docs/img/9.png)
-![img](https://alioss.timecho.com/docs/img/10.png)
+![img](https://alioss.timecho.com/docs/img/bm7.png)
+![img](https://alioss.timecho.com/docs/img/bm8.png)
+![img](https://alioss.timecho.com/docs/img/bm9.png)
+![img](https://alioss.timecho.com/docs/img/bm10.png)
 
 图2-3测试进度和结果
 
-![img](https://alioss.timecho.com/docs/img/11.png)
+![img](https://alioss.timecho.com/docs/img/bm11.png)
 
 图2-4测试结果表
 
@@ -294,14 +292,14 @@ IoT-benchmark目前支持通过配置参数“TEST_DATA_PERSISTENCE”将测试
 
 
依照测试结果信息我们知道同样的配置写入Apache-IoTDB和KairosDB写入延时时间分别为:55.98ms和1324.45ms;写入吞吐分别为:5,125,600.86点/秒和224,819.01点/秒;测试分别执行了585.30秒和11777.99秒。并且KairosDB有写入失败出现,排查后发现是数据磁盘使用率已达到100%,无磁盘空间继续接收数据。而Apache-IoTDB无写入失败现象,全部数据写入完毕后占用磁盘空间仅为4.7G(如图2-5所示);从写入吞吐和磁盘占用情况上看Apache-IoTDB均优于KairosDB。当然后续还有其他测试来从多方面观察和对比,比如查询性能、文件压缩比、数据安全性等。
 
-![img](https://alioss.timecho.com/docs/img/12.png)
+![img](https://alioss.timecho.com/docs/img/bm12.png)
 
 图2-5磁盘使用情况
 
 
那么测试过程中各个服务器资源使用情况如何呢?每个写操作具体的表现如何呢?这个时候我们就可以通过安装和使用Tableau来可视化服务器监控表和测试过程记录表内的数据了。Tableau的使用本文不展开介绍,通过它连接测试数据持久化的数据表后具体结果下如图(以Apache-IoTDB为例):
 
-![img](https://alioss.timecho.com/docs/img/13.png)
-![img](https://alioss.timecho.com/docs/img/14.png)
+![img](https://alioss.timecho.com/docs/img/bm13.png)
+![img](https://alioss.timecho.com/docs/img/bm14.png)
 
 图2-6Tableau可视化测试过程
 
@@ -328,7 +326,7 @@ IoT-benchmark目前支持通过配置参数“TEST_DATA_PERSISTENCE”将测试
 
 执行结果:
 
-![img](https://alioss.timecho.com/docs/img/15.png)
+![img](https://alioss.timecho.com/docs/img/bm15.png)
 
 图2-7查询测试结果
 
@@ -351,4 +349,4 @@ IoT-benchmark目前支持通过配置参数“TEST_DATA_PERSISTENCE”将测试
 | STRING_LENGTH                                                | 10            
             | 字符串长度                                                   |        
                           |
 | DOUBLE_LENGTH                                                | 2             
             | 小数位数                                                     |       
                            |
 | 三台机器模拟300台设备数据写入                                | BENCHMARK_CLUSTER          
| true                                                         | 开启多benchmark模式 
              |
-| BENCHMARK_INDEX                                              | 0、1、3         
           | 
以2.3章节写入参数为例:0号负责设备编号0~99数据写入;1号负责设备编号100~199数据写入;2号负责设备点好200~299数据写入; |        
                           |
\ No newline at end of file
+| BENCHMARK_INDEX                                              | 0、1、3         
           | 
以2.3章节写入参数为例:0号负责设备编号0-99数据写入;1号负责设备编号100-199数据写入;2号负责设备编号200-299数据写入; |        
                           |
\ No newline at end of file
diff --git a/src/zh/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md 
b/src/zh/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md
index 4097f7c..daa593a 100644
--- a/src/zh/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md
+++ b/src/zh/UserGuide/V1.2.x/FAQ/Frequently-asked-questions.md
@@ -159,24 +159,24 @@ IoTDB 客户端默认显示的时间是人类可读的(比如:```1970-01-01T
 这是我们的依赖Ratis 2.4.1的一个内部错误日志,不会对数据写入和读取造成任何影响。
 已经报告给Ratis社区,并会在未来的版本中修复。
 
-### 10. 内存不足报错如何处理?
+### 10. 预估内存不足报错如何处理?
 
 报错信息:
 ```
 301: There is not enough memory to execute current fragment instance, current 
remaining free memory is 86762854, estimated memory usage for current fragment 
instance is 270139392
 ```
-处理方式:
+报错分析:
 
datanode_memory_proportion参数控制分给查询的内存,chunk_timeseriesmeta_free_memory_proportion参数控制查询执行可用的内存。
 默认情况下分给查询的内存为堆内存*30%,查询执行可用的内存为查询内存的20%。
 报错显示当前剩余查询执行可用内存为86762854B=82.74MB,该查询预估使用执行内存270139392B=257.6MB。
 
 一些可能的改进项:
 
-在不改变默认参数的前提下,调大IoTDB的堆内存大于 4.2G(4.2G * 
1024MB=4300MB),4300M*30%*20%=258M>257.6M,可以满足要求。
-或者更改 datanode_memory_proportion 等参数,使查询执行可用内存>257.6MB。
-或者减少导出的时间序列数量。
-或者给查询语句添加 slimit 限制,也是减少查询时间序列的一种方案。
-或者添加 align by device,会按照device顺序进行输出,内存占用会降低至单device级别。
+- 在不改变默认参数的前提下,调大IoTDB的堆内存大于 4.2G(4.2G * 
1024MB=4300MB),4300M*30%*20%=258M>257.6M,可以满足要求。
+- 更改 datanode_memory_proportion 等参数,使查询执行可用内存>257.6MB。
+- 减少导出的时间序列数量。
+- 给查询语句添加 slimit 限制,也是减少查询时间序列的一种方案。
+- 添加 align by device,会按照device顺序进行输出,内存占用会降低至单device级别。
 
 
 ## 分布式部署 FAQ
diff --git a/src/zh/UserGuide/V1.2.x/Tools-System/Benchmark.md 
b/src/zh/UserGuide/V1.2.x/Tools-System/Benchmark.md
index 3fc43de..52d094c 100644
--- a/src/zh/UserGuide/V1.2.x/Tools-System/Benchmark.md
+++ b/src/zh/UserGuide/V1.2.x/Tools-System/Benchmark.md
@@ -147,7 +147,7 @@ IoT-benchmark 是基于 Java 和大数据环境开发的时序数据库基准测
 | 参数名称                   | 类型   | 示例                      | 系统描述               
                                      |
 | -------------------------- | ------ | ------------------------- | 
------------------------------------------------------------ |
 | CLIENT_NUMBER              | 整数   | 100                       | 客户端总数        
                                           |
-| GROUP_NUMBER               | 整数   | 20                        | 
存储组的数量;仅针对IoTDB。                                  |
+| GROUP_NUMBER               | 整数   | 20                        | 
数据库的数量;仅针对IoTDB。                                  |
 | DEVICE_NUMBER              | 整数   | 100                       | 设备总数         
                                            |
 | SENSOR_NUMBER              | 整数   | 300                       | 每个设备的传感器总数   
                                      |
 | INSERT_DATATYPE_PROPORTION | 字符串 | 1:1:1:1:1:1               | 
设备的数据类型比例,BOOLEAN:INT32:INT64:FLOAT:DOUBLE:TEXT    |
@@ -349,4 +349,4 @@ IoT-benchmark目前支持通过配置参数“TEST_DATA_PERSISTENCE”将测试
 | STRING_LENGTH                                                | 10            
             | 字符串长度                                                   |        
                           |
 | DOUBLE_LENGTH                                                | 2             
             | 小数位数                                                     |       
                            |
 | 三台机器模拟300台设备数据写入                                | BENCHMARK_CLUSTER          
| true                                                         | 开启多benchmark模式 
              |
-| BENCHMARK_INDEX                                              | 0、1、3         
           | 
以2.3章节写入参数为例:0号负责设备编号0~99数据写入;1号负责设备编号100~199数据写入;2号负责设备点好200~299数据写入; |        
                           |
\ No newline at end of file
+| BENCHMARK_INDEX                                              | 0、1、3         
           | 
以2.3章节写入参数为例:0号负责设备编号0-99数据写入;1号负责设备编号100-199数据写入;2号负责设备编号200-299数据写入; |        
                           |
\ No newline at end of file
diff --git a/src/zh/UserGuide/latest/API/RestServiceV1.md 
b/src/zh/UserGuide/latest/API/RestServiceV1.md
index 06339cb..62d767f 100644
--- a/src/zh/UserGuide/latest/API/RestServiceV1.md
+++ b/src/zh/UserGuide/latest/API/RestServiceV1.md
@@ -30,7 +30,7 @@ RESTful 服务默认情况是关闭的
 
  * 使用者  
    
-   找到IoTDB安装目录下面的`conf/iotdb-common.properties`文件,将 `enable_rest_service` 设置为 
`true` 以启用该模块。
+   找到IoTDB安装目录下面的`conf/iotdb-datanode.properties`文件,将 `enable_rest_service` 
设置为 `true` 以启用该模块。
    
    ```properties
     enable_rest_service=true
diff --git a/src/zh/UserGuide/latest/FAQ/Frequently-asked-questions.md 
b/src/zh/UserGuide/latest/FAQ/Frequently-asked-questions.md
index fbabd8b..daa593a 100644
--- a/src/zh/UserGuide/latest/FAQ/Frequently-asked-questions.md
+++ b/src/zh/UserGuide/latest/FAQ/Frequently-asked-questions.md
@@ -159,24 +159,25 @@ IoTDB 客户端默认显示的时间是人类可读的(比如:```1970-01-01T
 这是我们的依赖Ratis 2.4.1的一个内部错误日志,不会对数据写入和读取造成任何影响。
 已经报告给Ratis社区,并会在未来的版本中修复。
 
-### 10. How do I handle an out of memory error?
+### 10. 预估内存不足报错如何处理?
 
-Report an error message:
+报错信息:
 ```
 301: There is not enough memory to execute current fragment instance, current 
remaining free memory is 86762854, estimated memory usage for current fragment 
instance is 270139392
 ```
-Handling:
-The datanode_memory_proportion parameter controls the memory divided to the 
query, and the chunk_timeseriesmeta_free_memory_proportion parameter controls 
the memory available for query execution.
-By default the memory allocated to the query is 30% of the heap memory* and 
the memory available for query execution is 20% of the query memory.
-The error report shows that the current remaining memory available for query 
execution is 86762854B = 82.74MB, and the query is estimated to use 270139392B 
= 257.6MB of execution memory.
-
-Some possible improvement items:
-
-Without changing the default parameters, crank up the heap memory of IoTDB 
greater than 4.2G (4.2G * 1024MB = 4300MB), 4300M * 30% * 20% = 258M > 257.6M, 
which can fulfill the requirement.
-Or change parameters such as datanode_memory_proportion so that the available 
memory for query execution is >257.6MB.
-Or reduce the number of exported time series.
-Or add slimit limit to the query statement, which is also an option to reduce 
the query time series.
-Or add align by device, which will export in device order, and the memory 
usage will be reduced to single-device level.
+报错分析:
+datanode_memory_proportion参数控制分给查询的内存,chunk_timeseriesmeta_free_memory_proportion参数控制查询执行可用的内存。
+默认情况下分给查询的内存为堆内存*30%,查询执行可用的内存为查询内存的20%。
+报错显示当前剩余查询执行可用内存为86762854B=82.74MB,该查询预估使用执行内存270139392B=257.6MB。
+
+一些可能的改进项:
+
+- 在不改变默认参数的前提下,调大IoTDB的堆内存大于 4.2G(4.2G * 
1024MB=4300MB),4300M*30%*20%=258M>257.6M,可以满足要求。
+- 更改 datanode_memory_proportion 等参数,使查询执行可用内存>257.6MB。
+- 减少导出的时间序列数量。
+- 给查询语句添加 slimit 限制,也是减少查询时间序列的一种方案。
+- 添加 align by device,会按照device顺序进行输出,内存占用会降低至单device级别。
+
 
 ## 分布式部署 FAQ
 
diff --git a/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md 
b/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md
index 4c0fbfd..6d2848a 100644
--- a/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md
+++ b/src/zh/UserGuide/latest/SQL-Manual/SQL-Manual.md
@@ -1187,8 +1187,7 @@ SELECT DIFF(s1, 'ignoreNull'='false'), DIFF(s2, 
'ignoreNull'='false') from root.
 更多见文档[Sample Functions](../Reference/Function-and-Expression.md#采样函数)。
 ### 时间序列处理函数
 
-| 函数名        | 输入序列类型                   | 参数 | 输出序列类型             | 功能描述       
            |
-| ---)
+更多见文档[Sample Functions](../Reference/Function-and-Expression.md#时间序列处理函数)。
 
 ```sql
 select equal_size_bucket_random_sample(temperature,'proportion'='0.1') as 
random_sample from root.ln.wf01.wt01;
diff --git a/src/zh/UserGuide/latest/Tools-System/Benchmark.md 
b/src/zh/UserGuide/latest/Tools-System/Benchmark.md
index 81fbb2d..52d094c 100644
--- a/src/zh/UserGuide/latest/Tools-System/Benchmark.md
+++ b/src/zh/UserGuide/latest/Tools-System/Benchmark.md
@@ -349,4 +349,4 @@ IoT-benchmark目前支持通过配置参数“TEST_DATA_PERSISTENCE”将测试
 | STRING_LENGTH                                                | 10            
             | 字符串长度                                                   |        
                           |
 | DOUBLE_LENGTH                                                | 2             
             | 小数位数                                                     |       
                            |
 | 三台机器模拟300台设备数据写入                                | BENCHMARK_CLUSTER          
| true                                                         | 开启多benchmark模式 
              |
-| BENCHMARK_INDEX                                              | 0、1、3         
           | 
以2.3章节写入参数为例:0号负责设备编号0~99数据写入;1号负责设备编号100~199数据写入;2号负责设备点好200~299数据写入; |        
                           |
\ No newline at end of file
+| BENCHMARK_INDEX                                              | 0、1、3         
           | 
以2.3章节写入参数为例:0号负责设备编号0-99数据写入;1号负责设备编号100-199数据写入;2号负责设备编号200-299数据写入; |        
                           |
\ No newline at end of file

Reply via email to