You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/03/25 08:09:43 UTC

[incubator-iotdb] branch master updated: modify doc's format to fit the website (#944)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 2938642  modify doc's format to fit the website (#944)
2938642 is described below

commit 29386422dcbd4f028dbb7b77dc88e3f8f2365655
Author: Sail <37...@users.noreply.github.com>
AuthorDate: Wed Mar 25 16:09:33 2020 +0800

    modify doc's format to fit the website (#944)
    
    * modify doc's format to fit website
---
 .../SystemDesign/0-Architecture/1-Architecture.md  |   4 +-
 .../SystemDesign/1-TsFile/3-Write.md               |   6 +-
 .../SystemDesign/2-QueryEngine/1-QueryEngine.md    |   8 +-
 .../4-StorageEngine/1-StorageEngine.md             |  21 ++-
 .../SystemDesign/4-StorageEngine/4-MergeManager.md |  16 +--
 .../4-StorageEngine/6-DataManipulation.md          |   6 +-
 .../SystemDesign/5-DataQuery/1-DataQuery.md        |  14 +-
 .../SystemDesign/5-DataQuery/3-RawDataQuery.md     |  56 +++++---
 .../SystemDesign/5-DataQuery/5-GroupByQuery.md     |  14 +-
 .../SystemDesign/7-Connector/2-Hive-TsFile.md      |  21 ++-
 .../UserGuide/0-Get Started/1-QuickStart.md        |  38 +++---
 .../0-Get Started/2-Frequently asked questions.md  |  23 ++--
 .../UserGuide/1-Overview/1-What is IoTDB.md        |   8 +-
 .../UserGuide/1-Overview/2-Architecture.md         |   8 +-
 .../UserGuide/1-Overview/3-Scenario.md             |  16 +--
 .../UserGuide/1-Overview/4-Features.md             |   8 +-
 .../2-Concept/1-Data Model and Terminology.md      |  24 ++--
 .../UserGuide/2-Concept/2-Data Type.md             |   9 +-
 .../UserGuide/2-Concept/3-Encoding.md              |   8 +-
 .../UserGuide/2-Concept/4-Compression.md           |  10 +-
 .../UserGuide/3-Server/1-Download.md               |  18 ++-
 .../UserGuide/3-Server/2-Single Node Setup.md      |   8 +-
 .../UserGuide/3-Server/3-Cluster Setup.md          |   3 +-
 .../UserGuide/3-Server/4-Config Manual.md          |  20 ++-
 .../UserGuide/3-Server/5-Docker Image.md           |   8 +-
 ...erface (CLI).md => 1-Command Line Interface.md} |  14 +-
 .../4-Client/2-Programming - Native API.md         |  36 ++++--
 .../UserGuide/4-Client/3-Programming - JDBC.md     |   8 +-
 .../4-Client/4-Programming - Other Languages.md    |   4 +-
 .../4-Client/5-Programming - TsFile API.md         | 144 +++++++++++----------
 .../UserGuide/4-Client/6-Status Codes.md           |   5 +-
 ...guage).md => 1-DDL Data Definition Language.md} |  42 +++---
 ...age).md => 2-DML Data Manipulation Language.md} |  23 ++--
 .../3-Account Management Statements.md             |  42 +++---
 .../5-Operation Manual/4-SQL Reference.md          |  28 ++--
 .../UserGuide/6-System Tools/1-Sync Tool.md        |   5 +-
 .../6-System Tools/2-Memory Estimation Tool.md     |   6 +-
 .../UserGuide/6-System Tools/3-JMX Tool.md         |   6 +-
 .../UserGuide/6-System Tools/4-Watermark Tool.md   |   1 -
 .../UserGuide/6-System Tools/5-Log Visualizer.md   |  15 +--
 .../6-Query History Visualization Tool.md          |   8 +-
 .../6-System Tools/7-Monitor and Log Tools.md      |  10 +-
 .../6-System Tools/8-Load External Tsfile.md       |   6 +-
 .../UserGuide/7-Ecosystem Integration/1-Grafana.md |  31 +++--
 .../7-Ecosystem Integration/2-MapReduce TsFile.md  |   7 +-
 .../7-Ecosystem Integration/3-Spark TsFile.md      |   7 +-
 .../7-Ecosystem Integration/4-Spark IoTDB.md       |   5 +-
 .../7-Ecosystem Integration/5-Hive TsFile.md       |  29 ++---
 .../UserGuide/8-Architecture/1-Files.md            |  24 ++--
 .../8-Architecture/2-Writing Data on HDFS.md       |   8 +-
 .../8-Architecture/3-Shared Nothing Cluster.md     |  10 +-
 .../SystemDesign/0-Architecture/1-Architecture.md  |  18 +--
 .../SystemDesign/1-TsFile/1-TsFile.md              |  10 +-
 .../Documentation/SystemDesign/1-TsFile/3-Write.md |  46 ++++++-
 .../SystemDesign/2-QueryEngine/1-QueryEngine.md    |   4 +-
 .../4-StorageEngine/1-StorageEngine.md             |   8 +-
 .../SystemDesign/4-StorageEngine/4-MergeManager.md |  83 +++++++++++-
 .../4-StorageEngine/6-DataManipulation.md          |   2 +-
 .../SystemDesign/5-DataQuery/1-DataQuery.md        |  10 +-
 .../SystemDesign/5-DataQuery/3-RawDataQuery.md     |   8 +-
 .../SystemDesign/5-DataQuery/6-LastQuery.md        |   4 +-
 .../5-DataQuery/7-AlignByDeviceQuery.md            |   4 +-
 .../SystemDesign/7-Connector/2-Hive-TsFile.md      |   8 +-
 docs/Documentation/UserGuide/0-Content.md          |  72 -----------
 .../UserGuide/0-Get Started/1-QuickStart.md        |  46 ++++---
 .../0-Get Started/2-Frequently asked questions.md  |  26 ++--
 .../UserGuide/1-Overview/1-What is IoTDB.md        |   8 +-
 .../UserGuide/1-Overview/2-Architecture.md         |   8 +-
 .../UserGuide/1-Overview/3-Scenario.md             |  16 +--
 .../UserGuide/1-Overview/4-Features.md             |   8 +-
 .../2-Concept/1-Data Model and Terminology.md      |  50 +++----
 .../UserGuide/2-Concept/2-Data Type.md             |   9 +-
 .../UserGuide/2-Concept/3-Encoding.md              |   9 +-
 .../UserGuide/2-Concept/4-Compression.md           |  10 +-
 .../Documentation/UserGuide/3-Server/1-Download.md |  21 ++-
 .../UserGuide/3-Server/2-Single Node Setup.md      |   8 +-
 .../UserGuide/3-Server/3-Cluster Setup.md          |   8 +-
 .../UserGuide/3-Server/4-Config Manual.md          |  22 ++--
 .../UserGuide/3-Server/5-Docker Image.md           |   7 +-
 ...erface (CLI).md => 1-Command Line Interface.md} |  18 +--
 .../4-Client/2-Programming - Native API.md         |  51 +++++---
 .../UserGuide/4-Client/3-Programming - JDBC.md     |   1 -
 .../4-Client/4-Programming - Other Languages.md    |   2 -
 .../4-Client/5-Programming - TsFile API.md         | 135 +++++++++----------
 .../UserGuide/4-Client/6-Status Codes.md           |   5 +-
 ...guage).md => 1-DDL Data Definition Language.md} |  38 +++---
 ...age).md => 2-DML Data Manipulation Language.md} |  31 ++---
 .../3-Account Management Statements.md             |  48 ++++---
 .../5-Operation Manual/4-SQL Reference.md          |  29 +++--
 .../UserGuide/6-System Tools/1-Sync Tool.md        |   8 +-
 .../6-System Tools/2-Memory Estimation Tool.md     |  14 +-
 .../UserGuide/6-System Tools/3-JMX Tool.md         |   6 +-
 .../UserGuide/6-System Tools/4-Watermark Tool.md   |   2 -
 .../UserGuide/6-System Tools/5-Log Visualizer.md   |  18 ++-
 .../6-Query History Visualization Tool.md          |   8 +-
 .../6-System Tools/7-Monitor and Log Tools.md      |  18 +--
 .../6-System Tools/8-Load External Tsfile.md       |   5 +-
 .../UserGuide/7-Ecosystem Integration/1-Grafana.md |   5 +-
 .../7-Ecosystem Integration/2-MapReduce TsFile.md  |   5 +-
 .../7-Ecosystem Integration/3-Spark TsFile.md      |  34 +++--
 .../7-Ecosystem Integration/4-Spark IoTDB.md       |  23 ++--
 .../7-Ecosystem Integration/5-Hive TsFile.md       |  10 +-
 .../UserGuide/8-Architecture/1-Files.md            |  24 ++--
 .../8-Architecture/2-Writing Data on HDFS.md       |   6 +-
 .../8-Architecture/3-Shared Nothing Cluster.md     |   8 +-
 105 files changed, 1021 insertions(+), 963 deletions(-)

diff --git a/docs/Documentation-CHN/SystemDesign/0-Architecture/1-Architecture.md b/docs/Documentation-CHN/SystemDesign/0-Architecture/1-Architecture.md
index 676b4e8..528df20 100644
--- a/docs/Documentation-CHN/SystemDesign/0-Architecture/1-Architecture.md
+++ b/docs/Documentation-CHN/SystemDesign/0-Architecture/1-Architecture.md
@@ -7,9 +7,9 @@
     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
diff --git a/docs/Documentation-CHN/SystemDesign/1-TsFile/3-Write.md b/docs/Documentation-CHN/SystemDesign/1-TsFile/3-Write.md
index c37e9ad..cb219e9 100644
--- a/docs/Documentation-CHN/SystemDesign/1-TsFile/3-Write.md
+++ b/docs/Documentation-CHN/SystemDesign/1-TsFile/3-Write.md
@@ -7,9 +7,9 @@
     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
@@ -62,4 +62,4 @@ TsFile 文件层的写入接口有两种
 
 * TsFileWriter.close()
 
-根据内存中缓存的元数据,生成 TsFileMetadata 追加到文件尾部,最后关闭文件。
+根据内存中缓存的元数据,生成 TsFileMetadata 追加到文件尾部,最后关闭文件。
\ No newline at end of file
diff --git a/docs/Documentation-CHN/SystemDesign/2-QueryEngine/1-QueryEngine.md b/docs/Documentation-CHN/SystemDesign/2-QueryEngine/1-QueryEngine.md
index ce9943e..890b72f 100644
--- a/docs/Documentation-CHN/SystemDesign/2-QueryEngine/1-QueryEngine.md
+++ b/docs/Documentation-CHN/SystemDesign/2-QueryEngine/1-QueryEngine.md
@@ -7,9 +7,9 @@
     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
@@ -60,5 +60,5 @@
 
 ## 相关文档
 
-* [查询计划生成器](/#/SystemDesign/progress/chap2/sec2)
-* [计划执行器](/#/SystemDesign/progress/chap2/sec3)
\ No newline at end of file
+* [查询计划生成器](/zh/document/master/SystemDesign/2-QueryEngine/2-Planner.html)
+* [计划执行器](/zh/document/master/SystemDesign/2-QueryEngine/3-PlanExecutor.html)
\ No newline at end of file
diff --git a/docs/Documentation-CHN/SystemDesign/4-StorageEngine/1-StorageEngine.md b/docs/Documentation-CHN/SystemDesign/4-StorageEngine/1-StorageEngine.md
index 94a5e72..4ae6e05 100644
--- a/docs/Documentation-CHN/SystemDesign/4-StorageEngine/1-StorageEngine.md
+++ b/docs/Documentation-CHN/SystemDesign/4-StorageEngine/1-StorageEngine.md
@@ -7,9 +7,9 @@
     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
@@ -45,24 +45,23 @@
 
 * org.apache.iotdb.db.engine.storagegroup.TsFileProcessor
 
-	负责一个 TsFile 文件的数据写入和访问。
-	
-	
+  负责一个 TsFile 文件的数据写入和访问。
+
 ## 数据写入
 详见:
-* [数据写入](/#/SystemDesign/progress/chap4/sec6)
+* [数据写入](/zh/document/master/SystemDesign/4-StorageEngine/6-DataManipulation.html)
 
 ## 数据访问
 
 * 总入口(StorageEngine): public QueryDataSource query(SingleSeriesExpression seriesExpression, QueryContext context,
-      QueryFileManager filePathsManager)
-      
+  ​    QueryFileManager filePathsManager)
+  ​    
 	* 找到所有包含这个时间序列的顺序和乱序的 TsFileResource 进行返回,供查询引擎使用。
 
 ## 相关文档
 
-* [写前日志 (WAL)](/#/SystemDesign/progress/chap4/sec2)
+* [写前日志 (WAL)](/zh/document/master/SystemDesign/4-StorageEngine/2-WAL.html)
 
-* [memtable 持久化](/#/SystemDesign/progress/chap4/sec3)
+* [memtable 持久化](/zh/document/master/SystemDesign/4-StorageEngine/3-FlushManager.html)
 
-* [文件合并机制](/#/SystemDesign/progress/chap4/sec4)
\ No newline at end of file
+* [文件合并机制](/zh/document/master/SystemDesign/4-StorageEngine/4-MergeManager.html)
\ No newline at end of file
diff --git a/docs/Documentation-CHN/SystemDesign/4-StorageEngine/4-MergeManager.md b/docs/Documentation-CHN/SystemDesign/4-StorageEngine/4-MergeManager.md
index d4ac06d..6f7cbd7 100644
--- a/docs/Documentation-CHN/SystemDesign/4-StorageEngine/4-MergeManager.md
+++ b/docs/Documentation-CHN/SystemDesign/4-StorageEngine/4-MergeManager.md
@@ -7,9 +7,9 @@
     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
@@ -36,7 +36,7 @@
 ## 合并的例子
 
 在 squeeze 合并策略下,当一系列的 seq 以及 unseq 文件进行合并,且并未超过时间及内存限制时,所有文件都将合并为一个命名为{时间戳}-{版本}-{merge次数+1}.tsfile.merge.squeeze的文件
-    
+​    
 当超出了时间或内存限制,文件选择过程将被中断,当前已被选中的 seq 以及 unseq 文件则会进行如上合并形成一个文件
 
 时间限制是指在选择文件过程中花费的时间不能超过一个给定值,而非对合并过程耗时的估计,目的是防止文件过多时选择文件花费太多时间
@@ -52,10 +52,10 @@
     文件选择过程的基类,规定了选择文件的基本框架,及在不同情况下计算文件内存消耗的方法,所有自定义的文件选择策略均需继承此类
     
 * org.apache.iotdb.db.engine.merge.IRecoverMergeTask
-    
-    recover 过程的接口类,规定了 recoverMerge 接口,所有自定义的merge恢复策略均需继承此类
   
-此外,每一个自定义的MergeTask均需继承Callable<void>接口,以保证可以被回调
+    recover 过程的接口类,规定了 recoverMerge 接口,所有自定义的merge恢复策略均需继承此类
+
+此外,每一个自定义的MergeTask均需继承Callable\<void\>接口,以保证可以被回调
 
 * org.apache.iotdb.db.engine.merge.manage.MergeContext
 
@@ -72,7 +72,7 @@
 ## inplace策略
 
 ### selector
-    
+
 在受限的内存和时间下,先依次选择 unseq 文件,每次直接根据 unseq 文件的时间范围选择与之重叠的 seq 文件
 
 ### merge
@@ -82,7 +82,7 @@
 ## squeeze策略
 
 ### selector
-    
+
 在受限的内存和时间下,先依次选择 unseq 文件,每次根据 unseq 文件的时间范围选择与之重叠的seq文件,然后按次序重试每一个 seq 文件,尽可能在内存和时间受限的情况下多取一些 seq 文件
 
 ### merge
diff --git a/docs/Documentation-CHN/SystemDesign/4-StorageEngine/6-DataManipulation.md b/docs/Documentation-CHN/SystemDesign/4-StorageEngine/6-DataManipulation.md
index eb689e7..f9db63b 100644
--- a/docs/Documentation-CHN/SystemDesign/4-StorageEngine/6-DataManipulation.md
+++ b/docs/Documentation-CHN/SystemDesign/4-StorageEngine/6-DataManipulation.md
@@ -7,9 +7,9 @@
     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
@@ -64,7 +64,7 @@
 目前不支持数据的原地更新操作,即update语句,但用户可以直接插入新的数据,在同一个时间点上的同一个时间序列以最新插入的数据为准
 旧数据会通过合并来自动删除,参见:
 
-* [文件合并机制](/#/SystemDesign/progress/chap4/sec4)
+* [文件合并机制](/zh/document/master/SystemDesign/4-StorageEngine/4-MergeManager.html)
 
 ## 数据删除
 
diff --git a/docs/Documentation-CHN/SystemDesign/5-DataQuery/1-DataQuery.md b/docs/Documentation-CHN/SystemDesign/5-DataQuery/1-DataQuery.md
index 36e2aa8..5377112 100644
--- a/docs/Documentation-CHN/SystemDesign/5-DataQuery/1-DataQuery.md
+++ b/docs/Documentation-CHN/SystemDesign/5-DataQuery/1-DataQuery.md
@@ -7,9 +7,9 @@
     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
@@ -33,8 +33,8 @@
 
 ## 相关文档
 
-* [基础查询组件](/#/SystemDesign/progress/chap5/sec2)
-* [原始数据查询](/#/SystemDesign/progress/chap5/sec3)
-* [聚合查询](/#/SystemDesign/progress/chap5/sec4)
-* [降采样查询](/#/SystemDesign/progress/chap5/sec5)
-* [最近时间戳查询](/#/SystemDesign/progress/chap5/sec6)
+* [基础查询组件](/zh/document/master/SystemDesign/5-DataQuery/2-SeriesReader.html)
+* [原始数据查询](/zh/document/master/SystemDesign/5-DataQuery/3-RawDataQuery.html)
+* [聚合查询](/zh/document/master/SystemDesign/5-DataQuery/4-AggregationQuery.html)
+* [降采样查询](/zh/document/master/SystemDesign/5-DataQuery/5-GroupByQuery.html)
+* [最近时间戳查询](/zh/document/master/SystemDesign/5-DataQuery/6-LastQuery.html)
diff --git a/docs/Documentation-CHN/SystemDesign/5-DataQuery/3-RawDataQuery.md b/docs/Documentation-CHN/SystemDesign/5-DataQuery/3-RawDataQuery.md
index 95c5a0d..68521ba 100644
--- a/docs/Documentation-CHN/SystemDesign/5-DataQuery/3-RawDataQuery.md
+++ b/docs/Documentation-CHN/SystemDesign/5-DataQuery/3-RawDataQuery.md
@@ -7,9 +7,9 @@
     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
@@ -47,8 +47,12 @@
 
 `ReadTask`中有两个字段
 
-* private final ManagedSeriesReader reader;
-* private BlockingQueue<BatchData> blockingQueue;
+```
+ private final ManagedSeriesReader reader;
+ private BlockingQueue<BatchData> blockingQueue;
+```
+
+
 
 `ManagedSeriesReader`接口继承了`IBatchReader`接口,主要用来读取单个时间序列的数据,并且新增了以下四个方法
 
@@ -120,22 +124,31 @@ public void run() {
 
 先介绍消费者任务的一些重要字段
 
-* TreeSet<Long> timeHeap
+* ```
+  TreeSet<Long> timeHeap
+  ```
 
   时间戳的最小堆,用以实现时间戳对齐操作
 
-* BlockingQueue<BatchData>[] blockingQueueArray;
+* ```
+  BlockingQueue<BatchData>[] blockingQueueArray;
+  ```
 
   阻塞队列的数组,用以存储每个时间序列对应的阻塞队列
 
-* boolean[] noMoreDataInQueueArray
+* ```
+  boolean[] noMoreDataInQueueArray
+  ```
 
   用以表征某个时间序列的阻塞队列里还有没有值,如果为false,则消费者不会再去调用`take()`方法,以防消费者线程被阻塞。
-  
-* BatchData[] cachedBatchDataArray
+
+* ```
+  BatchData[] cachedBatchDataArray
+  ```
 
   缓存从阻塞队列里取出的一个BatchData,因为阻塞队列里`take()`出的`BatchData`并不能一次性消费完,所以需要做缓存
-  
+
+
 在消费者`RawQueryDataSetWithoutValueFilter`的构造函数里首先调用了`init()`方法
 
 #### init()
@@ -247,22 +260,31 @@ for (int seriesIndex = 0; seriesIndex < seriesNum; seriesIndex++) {
 
 它的查询逻辑是,首先根据查询条件生成满足过滤条件的时间戳,通过满足条件的时间戳查询投影列的值,然后返回结果集。它有四个字段
 
-* private EngineTimeGenerator timeGenerator;
+* ```
+  private EngineTimeGenerator timeGenerator;
+  ```
 
   是用来生成满足过滤条件的时间戳的
-  
-* private List<IReaderByTimestamp> seriesReaderByTimestampList;
+
+* ```
+  private List<IReaderByTimestamp> seriesReaderByTimestampList;
+  ```
 
   每个时间序列对应的reader,用来根据时间戳获取数据
 
-* private boolean hasCachedRowRecord;
+* ```
+  private boolean hasCachedRowRecord;
+  ```
 
   当前是否缓存了数据行
-  
-* private RowRecord cachedRowRecord;
+
+* ```
+  private RowRecord cachedRowRecord;
+  ```
 
   当前缓存的数据行
-  
+
+
 它的主要查询逻辑封装在`cacheRowRecord()`方法中,具体分析见代码中的注释
 
 #### cacheRowRecord()
diff --git a/docs/Documentation-CHN/SystemDesign/5-DataQuery/5-GroupByQuery.md b/docs/Documentation-CHN/SystemDesign/5-DataQuery/5-GroupByQuery.md
index e7fc406..ea308c9 100644
--- a/docs/Documentation-CHN/SystemDesign/5-DataQuery/5-GroupByQuery.md
+++ b/docs/Documentation-CHN/SystemDesign/5-DataQuery/5-GroupByQuery.md
@@ -7,9 +7,9 @@
     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
@@ -70,6 +70,7 @@ protected boolean hasNextWithoutConstraint() {
 * private TimeRange timeRange 将每次计算的时间区间封装成对象,用于判断 `Statistics` 是否可以直接参与计算
 * private Filter timeFilter   将用户定义的查询区间生成为 `Filter` 对象,用来过滤可用的`文件`、`chunk`、`page`
   
+
 首先,在初始化 `initGroupBy()` 方法中,根据表达式计算出 `timeFilter`,并为每个 `path` 生成 `GroupByExecutor` 。
 
 `nextWithoutConstraint()` 方法通过调用 `GroupByExecutor.calcResult()` 方法计算出每个 `Path` 内的所有聚合方法的聚合值 `aggregateResults`。
@@ -214,11 +215,18 @@ if (batchData.getMaxTimestamp() >= curEndTime) {
 带值过滤条件的降采样查询逻辑主要在 `GroupByWithValueFilterDataSet` 类中,该类继承了 `GroupByEngineDataSet`。
 
 该类有如下关键字段:
-* private List<IReaderByTimestamp> allDataReaderList
+* ```
+  private List<IReaderByTimestamp> allDataReaderList
+  ```
+
 * private GroupByPlan groupByPlan
+
 * private TimeGenerator timestampGenerator
+
 * private long timestamp 用于为下一个 group by 分区缓存 timestamp
+
 * private boolean hasCachedTimestamp 用于判断是否有为下一个 group by 分区缓存 timestamp
+
 * private int timeStampFetchSize 是 group by 计算 batch 的大小
 
 首先,在初始化 `initGroupBy()` 方法中,根据表达式创建 `timestampGenerator`;然后为每一个时间序列创建一个 `SeriesReaderByTimestamp`,放到 `allDataReaderList`列表中
diff --git a/docs/Documentation-CHN/SystemDesign/7-Connector/2-Hive-TsFile.md b/docs/Documentation-CHN/SystemDesign/7-Connector/2-Hive-TsFile.md
index e8fbacd..0384de5 100644
--- a/docs/Documentation-CHN/SystemDesign/7-Connector/2-Hive-TsFile.md
+++ b/docs/Documentation-CHN/SystemDesign/7-Connector/2-Hive-TsFile.md
@@ -7,9 +7,9 @@
     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
@@ -69,20 +69,25 @@ public interface IReaderSet {
 
 下面先介绍一下这个类的一些重要字段
 
-* private List<QueryDataSet> dataSetList = new ArrayList<>();
+* ```
+  private List<QueryDataSet> dataSetList = new ArrayList<>();
+  ```
 
   这个分片所生成的所有的 QueryDataSet
 
-* private List<String> deviceIdList = new ArrayList<>();
+* ```
+  private List<String> deviceIdList = new ArrayList<>();
+  ```
 
   设备名列表,这个顺序与 dataSetList 的顺序一致,即 deviceIdList[i] 是 dataSetList[i] 的设备名.
 
 * private int currentIndex = 0;
 
   当前正在被处理的 QueryDataSet 的下标
-  
+
+
 这个类在构造函数里,调用了`TSFRecordReader`的`initialize(TSFInputSplit, Configuration, IReaderSet, List<QueryDataSet>, List<String>)`方法去初始化上面提到的一些类字段。它覆写了`RecordReader`的`next()`方法,用以返回从 TsFile 里读出的数据。
-  
+
 ##### next(NullWritable, MapWritable)
 
 我们注意到它从 TsFile 读取出来数据之后,是以`MapWritable`的形式返回的,这里的`MapWritable`其实就是一个`Map`,只不过它的 key 与 value 都做了序列化与反序列化的特殊适配,它的读取流程如下
@@ -105,7 +110,9 @@ public interface IReaderSet {
 
 这个类就是将数据反序列化为 Hive 的输出格式,仅有一个`deserialize()`方法。
 
-##### public Object deserialize(List<String>, List<TypeInfo>, Writable, String)
+```
+public Object deserialize(List<String>, List<TypeInfo>, Writable, String)
+```
 
 这个方法的`Writable`参数就是`TSFHiveRecordReader`的`next()`生成的`MapWritable`。
 
diff --git a/docs/Documentation-CHN/UserGuide/0-Get Started/1-QuickStart.md b/docs/Documentation-CHN/UserGuide/0-Get Started/1-QuickStart.md
index 9cc1f95..37f7e9d 100755
--- a/docs/Documentation-CHN/UserGuide/0-Get Started/1-QuickStart.md	
+++ b/docs/Documentation-CHN/UserGuide/0-Get Started/1-QuickStart.md	
@@ -21,27 +21,27 @@
 
 <!-- TOC -->
 
+# 快速入门
+
 ## 概览 
 
 - 快速入门
- - 安装环境
- - IoTDB安装
-	- 从源代码生成
-		- 配置文件	
- - IoTDB试用
-    - 启动IoTDB
-    - 操作IoTDB
-        - 使用Cli工具
-        - IoTDB的基本操作
-    - 停止IoTDB
- - 单独打包服务器
- - 单独打包客户端
+- 安装环境
+- IoTDB安装
+  - 从源代码生成
+    - 配置文件	
+- IoTDB试用
+  - 启动IoTDB
+  - 操作IoTDB
+    - 使用Cli工具
+    - IoTDB的基本操作
+  - 停止IoTDB
+- 单独打包服务器
+- 单独打包客户端
 
 <!-- /TOC -->
 
-# 快速入门
-
-本文将介绍关于IoTDB使用的基本流程,如果需要更多信息,请浏览我们官网的[指引](https://iotdb.apache.org/#/Documents/progress/chap1/sec1).
+本文将介绍关于IoTDB使用的基本流程,如果需要更多信息,请浏览我们官网的[指引](/zh/document/master/UserGuide/1-Overview/1-What%20is%20IoTDB.html).
 
 ## 安装环境
 
@@ -61,7 +61,7 @@ IoTDB支持多种安装途径。用户可以使用三种方式对IoTDB进行安
 
 ### IoTDB下载
 
-您可以从这里下载程序:[下载](https://iotdb.apache.org/#/Download)
+您可以从这里下载程序:[下载](/download/)
 
 ### 配置文件
 
@@ -71,7 +71,7 @@ IoTDB支持多种安装途径。用户可以使用三种方式对IoTDB进行安
   * 系统配置模块 (`tsfile-format.properties`, `iotdb-engine.properties`)
   * 日志配置模块 (`logback.xml`). 
 
-想要了解更多,请浏览[Chapter3: Server](https://iotdb.apache.org/#/Documents/progress/chap3/sec1)
+想要了解更多,请浏览[Chapter3: Server](/zh/document/master/UserGuide/3-Server/1-Download.html)
 ​	
 
 ## IoTDB试用
@@ -167,7 +167,7 @@ IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODIN
 IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE
 ```
 
-为了查看指定的时间序列,我们可以使用SHOW TIMESERIES <Path>语句,其中<Path>表示时间序列对应的路径,默认值为空,表示查看系统中所有的时间序列。下面是两个例子:
+为了查看指定的时间序列,我们可以使用SHOW TIMESERIES \<Path\>语句,其中\<Path\>表示时间序列对应的路径,默认值为空,表示查看系统中所有的时间序列。下面是两个例子:
 
 使用SHOW TIMESERIES语句查看系统中存在的所有时间序列,SQL语句如下:
 
@@ -264,7 +264,7 @@ IoTDB> quit
 IoTDB> exit
 ```
 
-想要浏览更多IoTDB数据库支持的命令,请浏览[SQL Reference](https://iotdb.apache.org/#/Documents/progress/chap5/sec4).
+想要浏览更多IoTDB数据库支持的命令,请浏览[SQL Reference](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html).
 
 ### 停止IoTDB
 
diff --git a/docs/Documentation-CHN/UserGuide/0-Get Started/2-Frequently asked questions.md b/docs/Documentation-CHN/UserGuide/0-Get Started/2-Frequently asked questions.md
index fce7d50..255cb9a 100644
--- a/docs/Documentation-CHN/UserGuide/0-Get Started/2-Frequently asked questions.md	
+++ b/docs/Documentation-CHN/UserGuide/0-Get Started/2-Frequently asked questions.md	
@@ -7,9 +7,9 @@
     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
@@ -21,20 +21,21 @@
 
 <!-- TOC -->
 
+# 常见问题
+
 ## 概览
 
 - 常见问题
-    - 如何查询我的 IoTDB 版本?
-    - 在哪里可以找到 IoTDB 的日志?
-    - 在哪里可以找到 IoTDB 的数据文件?
-    - 如何知道 IoTDB 中存储了多少时间序列?
-    - 可以使用 Hadoop 和 Spark 读取 IoTDB 中的 TsFile 吗?
-    - IoTDB 如何处理重复的数据点?
-    - 我如何知道具体的 timeseries 的类型?
-    - 如何更改 IoTDB 的客户端时间显示格式?
+  - 如何查询我的 IoTDB 版本?
+  - 在哪里可以找到 IoTDB 的日志?
+  - 在哪里可以找到 IoTDB 的数据文件?
+  - 如何知道 IoTDB 中存储了多少时间序列?
+  - 可以使用 Hadoop 和 Spark 读取 IoTDB 中的 TsFile 吗?
+  - IoTDB 如何处理重复的数据点?
+  - 我如何知道具体的 timeseries 的类型?
+  - 如何更改 IoTDB 的客户端时间显示格式?
 
 <!-- /TOC -->
-# 常见问题
 
 ## 如何查询我的 IoTDB 版本?
 
diff --git a/docs/Documentation-CHN/UserGuide/1-Overview/1-What is IoTDB.md b/docs/Documentation-CHN/UserGuide/1-Overview/1-What is IoTDB.md
index 1ac6efa..6bc52b9 100644
--- a/docs/Documentation-CHN/UserGuide/1-Overview/1-What is IoTDB.md	
+++ b/docs/Documentation-CHN/UserGuide/1-Overview/1-What is IoTDB.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# 第1章: IoTDB概述
-
-## 什么是IoTDB
+# 什么是IoTDB
 
 IoTDB是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。
\ No newline at end of file
diff --git a/docs/Documentation-CHN/UserGuide/1-Overview/2-Architecture.md b/docs/Documentation-CHN/UserGuide/1-Overview/2-Architecture.md
index 169370b..00b7868 100644
--- a/docs/Documentation-CHN/UserGuide/1-Overview/2-Architecture.md
+++ b/docs/Documentation-CHN/UserGuide/1-Overview/2-Architecture.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第1章: IoTDB概述
-
-## 架构
+# 架构
 
 IoTDB套件由若干个组件构成,共同形成“数据收集-数据写入-数据存储-数据查询-数据可视化-数据分析”等一系列功能。
 
diff --git a/docs/Documentation-CHN/UserGuide/1-Overview/3-Scenario.md b/docs/Documentation-CHN/UserGuide/1-Overview/3-Scenario.md
index 79fe86e..52bd644 100644
--- a/docs/Documentation-CHN/UserGuide/1-Overview/3-Scenario.md
+++ b/docs/Documentation-CHN/UserGuide/1-Overview/3-Scenario.md
@@ -7,9 +7,9 @@
     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
@@ -19,11 +19,9 @@
 
 -->
 
-# 第1章: IoTDB概述
-
-## 应用场景
+# 应用场景
 
-### 场景1
+## 场景1
 
 某公司采用表面贴装技术(SMT)生产芯片:需要首先在芯片上的焊接点处印刷(即涂抹)锡膏,然后将元器件放置在锡膏上,进而通过加热熔化锡膏并冷却,使得元器件被焊接在芯片上。上述流程采用自动化生产线。为了确保产品质量合格,在印刷锡膏后,需要通过光学设备对锡膏印刷的质量进行评估:采用三维锡膏印刷检测(SPI)设备对每个焊接点上的锡膏的体积(v)、高度(h)、面积(a)、水平偏移(px)、竖直偏移(py)进行度量。
 
@@ -37,7 +35,7 @@
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51579026-77ad1580-1efa-11e9-8345-564b22d70286.jpg">
 
-### 场景2
+## 场景2
 
 某公司拥有多座风力发电机,公司在每个发电机上安装了上百种传感器,分别采集该发电机的工作状态、工作环境中的风速等信息。
 
@@ -51,7 +49,7 @@
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51579064-8f849980-1efa-11e9-8cd6-a7339cd0540f.jpg">
 
-### 场景3
+## 场景3
 
 某工厂在厂区范围内拥有多种机械手设备,这些机械手设备的硬件配置有限,很难搭载复杂的应用程序。在每个机械手设备上工厂安装了很多种传感器,用以对机械手的工作状态、温度等信息进行监控。由于工厂的网络环境原因,在工厂内部的机械手均处于工厂内部局域网内,无法连接外部网络。同时,工厂中会有少量服务器能够直接连接外部公网。
 
@@ -65,7 +63,7 @@
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51579085-9dd2b580-1efa-11e9-97b9-f56bc8d342b0.jpg">
 
-### 场景4
+## 场景4
 
 某汽车公司在其下属的汽车上均安装了传感器采集车辆的行驶状态等监控信息。这些汽车设备的硬件配置有限,很难搭载复杂的应用程序。安装传感器的汽车可以通过窄带物联网相互连接,也可以通过窄带物联网将数据发送至外部网络。
 
diff --git a/docs/Documentation-CHN/UserGuide/1-Overview/4-Features.md b/docs/Documentation-CHN/UserGuide/1-Overview/4-Features.md
index 63bf407..07e44a5 100644
--- a/docs/Documentation-CHN/UserGuide/1-Overview/4-Features.md
+++ b/docs/Documentation-CHN/UserGuide/1-Overview/4-Features.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第1章: IoTDB概述
-
-## 主要功能与特点
+# 主要功能与特点
 
 IoTDB具有以下特点:
 * 灵活的部署方式
diff --git a/docs/Documentation-CHN/UserGuide/2-Concept/1-Data Model and Terminology.md b/docs/Documentation-CHN/UserGuide/2-Concept/1-Data Model and Terminology.md
index 00012ef..e111ae6 100644
--- a/docs/Documentation-CHN/UserGuide/2-Concept/1-Data Model and Terminology.md	
+++ b/docs/Documentation-CHN/UserGuide/2-Concept/1-Data Model and Terminology.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,7 @@
 
 -->
 
-# 第2章 IoTDB基本概念
-## 数据模型与技术
+# 数据模型与技术
 
 我们为您提供一份简化的[样例数据](https://github.com/apache/incubator-iotdb/blob/master/docs/Documentation/OtherMaterial-Sample%20Data.txt)。
 
@@ -28,9 +27,9 @@
 
 根据本文描述的[数据](https://github.com/apache/incubator-iotdb/blob/master/docs/Documentation/OtherMaterial-Sample%20Data.txt)属性层级,按照属性涵盖范围以及它们之间的从属关系,我们可将其表示为如下图2.1的属性层级组织结构,其层级关系为:集团层-电场层-设备层-传感器层。其中ROOT为根节点,传感器层的每一个节点称为叶子节点。在使用IoTDB的过程中,您可以直接将由ROOT节点到每一个叶子节点路径上的属性用“.”连接,将其作为一个IoTDB的时间序列的名称。图2.1中最左侧的路径可以生成一个名为`ROOT.ln.wf01.wt01.status`的时间序列。
 
-<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg">
+<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg"></center>
 
-**图2.1 属性层级组织结构**</center>
+**图2.1 属性层级组织结构**
 
 得到时间序列的名称之后,我们需要根据数据的实际场景和规模设置存储组。由于在本文所述场景中,每次到达的数据通常以集团为单位(即数据可能为跨电场、跨设备的),为了写入数据时避免频繁切换IO降低系统速度,且满足用户以集团为单位进行物理隔离数据的要求,我们将存储组设置在集团层。
 
@@ -183,17 +182,18 @@ IoTDB在显示时间戳时可以支持LONG类型以及DATETIME-DISPLAY类型,
 </center>
 
 * 相对时间戳
-  
+
   相对时间是指与服务器时间```now()```和```DATETIME```类型时间相差一定时间间隔的时间。
   形式化定义为:
+
   ```
   Duration = (Digit+ ('Y'|'MO'|'W'|'D'|'H'|'M'|'S'|'MS'|'US'|'NS'))+
   RelativeTime = (now() | DATETIME) ((+|-) Duration)+
         
   ```
-  
+
   <center>**The syntax of the duration unit**
-  
+
   |Symbol|Meaning|Presentation|Examples|
   |:---:|:---:|:---:|:---:|
   |y|year|1y=365 days|1y|
@@ -207,10 +207,10 @@ IoTDB在显示时间戳时可以支持LONG类型以及DATETIME-DISPLAY类型,
   |||||
   |ms|millisecond|1ms=1000_000 nanoseconds|1ms|
   |us|microsecond|1us=1000 nanoseconds|1us|
-  |ns|nanosecond|1ns=1 nanosecond|1ns|  
-  
+  |ns|nanosecond|1ns=1 nanosecond|1ns|
+
   </center>
-  
+
   例子:
   ```
   now() - 1d2h //比服务器时间早1天2小时的时间
diff --git a/docs/Documentation-CHN/UserGuide/2-Concept/2-Data Type.md b/docs/Documentation-CHN/UserGuide/2-Concept/2-Data Type.md
index b5acca4..77f61be 100644
--- a/docs/Documentation-CHN/UserGuide/2-Concept/2-Data Type.md	
+++ b/docs/Documentation-CHN/UserGuide/2-Concept/2-Data Type.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,8 @@
 
 -->
 
-# 第2章 IoTDB基本概念
+# 数据类型
 
-## 数据类型
 IoTDB支持:
 * BOOLEAN(布尔值)
 * INT32(整型)
@@ -32,7 +31,7 @@ IoTDB支持:
 
 一共六种数据类型。
 
-其中**FLOAT**与**DOUBLE**类型的序列,如果编码方式采用[RLE](/#/Documents/progress/chap2/sec3)或[TS_2DIFF](/#/Documents/progress/chap2/sec3)可以指定MAX_POINT_NUMBER,该项为浮点数的小数点后位数,具体指定方式请参见本文[第5.4节](/#/Documents/progress/chap5/sec4),若不指定则系统会根据配置文件`tsfile-format.properties`文件中的[float_precision项](/#/Documents/progress/chap3/sec4)配置。
+其中**FLOAT**与**DOUBLE**类型的序列,如果编码方式采用[RLE](/zh/document/master/UserGuide/2-Concept/3-Encoding.html)或[TS_2DIFF](/zh/document/master/UserGuide/2-Concept/3-Encoding.html)可以指定MAX_POINT_NUMBER,该项为浮点数的小数点后位数,具体指定方式请参见本文[第5.4节](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html),若不指定则系统会根据配置文件`tsfile-format.properties`文件中的[float_precision项](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html)配置。
 
 当系统中用户输入的数据类型与该时间序列的数据类型不对应时,系统会提醒类型错误,如下所示,二阶差分不支持布尔类型的编码:
 
diff --git a/docs/Documentation-CHN/UserGuide/2-Concept/3-Encoding.md b/docs/Documentation-CHN/UserGuide/2-Concept/3-Encoding.md
index 0fba5db..8af1ff6 100644
--- a/docs/Documentation-CHN/UserGuide/2-Concept/3-Encoding.md
+++ b/docs/Documentation-CHN/UserGuide/2-Concept/3-Encoding.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第2章 IoTDB基本概念
-
-## 编码方式
+# 编码方式
 
 为了提高数据的存储效率,需要在数据写入的过程中对数据进行编码,从而减少磁盘空间的使用量。在写数据以及读数据的过程中都能够减少I/O操作的数据量从而提高性能。IoTDB支持四种针对不同类型的数据的编码方法:
 
diff --git a/docs/Documentation-CHN/UserGuide/2-Concept/4-Compression.md b/docs/Documentation-CHN/UserGuide/2-Concept/4-Compression.md
index 448576b..2a96487 100644
--- a/docs/Documentation-CHN/UserGuide/2-Concept/4-Compression.md
+++ b/docs/Documentation-CHN/UserGuide/2-Concept/4-Compression.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第2章 IoTDB基本概念
-
-## 压缩方式
+# 压缩方式
 
 当时间序列写入并按照指定的类型编码为二进制数据后,IoTDB会使用压缩技术对该数据进行压缩,进一步提升空间存储效率。虽然编码和压缩都旨在提升存储效率,但编码技术通常只适合特定的数据类型(如二阶差分编码只适合与INT32或者INT64编码,存储浮点数需要先将他们乘以10m以转换为整数),然后将它们转换为二进制流。压缩方式(SNAPPY)针对二进制流进行压缩,因此压缩方式的使用不再受数据类型的限制。
 
@@ -30,4 +28,4 @@ IoTDB允许在创建一个时间序列的时候指定该列的压缩方式。现
 * UNCOMPRESSED(不压缩)
 * SNAPPY压缩
 
-压缩方式的指定语法详见本文[5.4节](/#/Documents/progress/chap5/sec4)。
+压缩方式的指定语法详见本文[5.4节](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html)。
diff --git a/docs/Documentation-CHN/UserGuide/3-Server/1-Download.md b/docs/Documentation-CHN/UserGuide/3-Server/1-Download.md
index c4a1e21..3608291 100644
--- a/docs/Documentation-CHN/UserGuide/3-Server/1-Download.md
+++ b/docs/Documentation-CHN/UserGuide/3-Server/1-Download.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第3章 服务器端
-
-## 下载
+# 下载
 
 IoTDB为您提供了两种安装方式,您可以参考下面的建议,任选其中一种:
 
@@ -29,7 +27,7 @@ IoTDB为您提供了两种安装方式,您可以参考下面的建议,任选
 
 第二种,使用源码编译。若您需要自行修改代码,可以使用该安装方式。
 
-### 安装环境要求
+## 安装环境要求
 
 安装前请保证您的电脑上配有JDK>=1.8的运行环境,并配置好JAVA_HOME环境变量。
 
@@ -39,7 +37,7 @@ IoTDB为您提供了两种安装方式,您可以参考下面的建议,任选
 
 > 注: 也可以选择不安装,使用我们提供的'mvnw.sh' 或 'mvnw.cmd' 工具。使用时请用'mvnw.sh' 或 'mvnw.cmd'命令代替下文的'mvn'命令。
 
-### 从官网下载二进制可执行文件
+## 从官网下载二进制可执行文件
 
 您可以从[http://iotdb.apache.org/#/Download](http://iotdb.apache.org/#/Download)上下载已经编译好的可执行程序iotdb-xxx.tar.gz或者iotdb-xxx.zip,该压缩包包含了IoTDB系统运行所需的所有必要组件。
 
@@ -77,7 +75,7 @@ server/     <-- root path
 +- LICENSE    <-- LICENSE
 ```
 
-### 使用源码编译
+## 使用源码编译
 
 您可以获取已发布的源码https://iotdb.apache.org/#/Download,或者从git仓库获取https://github.com/apache/incubator-iotdb/tree/master
 
@@ -117,6 +115,6 @@ $IOTDB_HOME/
 +- lib/       <-- project dependencies
 ```
 
-### 通过Docker安装 (Dockerfile)
+## 通过Docker安装 (Dockerfile)
 
-你可以通过[这份指南](/#/Documents/progress/chap3/sec3)编译并运行一个IoTDB docker image。
+你可以通过[这份指南](/zh/document/master/UserGuide/3-Server/5-Docker%20Image.html)编译并运行一个IoTDB docker image。
diff --git a/docs/Documentation-CHN/UserGuide/3-Server/2-Single Node Setup.md b/docs/Documentation-CHN/UserGuide/3-Server/2-Single Node Setup.md
index 28913ea..ad520fb 100644
--- a/docs/Documentation-CHN/UserGuide/3-Server/2-Single Node Setup.md	
+++ b/docs/Documentation-CHN/UserGuide/3-Server/2-Single Node Setup.md	
@@ -7,9 +7,9 @@
     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
@@ -18,8 +18,8 @@
     under the License.
 
 -->
-# 第3章: 服务器端
-## 单节点安装
+
+# 单节点安装
 
 用户可以使用 sbin 文件夹下 start-server 脚本启动 IoTDB.
 
diff --git a/docs/Documentation-CHN/UserGuide/3-Server/3-Cluster Setup.md b/docs/Documentation-CHN/UserGuide/3-Server/3-Cluster Setup.md
index 4ff45c0..9999ea1 100644
--- a/docs/Documentation-CHN/UserGuide/3-Server/3-Cluster Setup.md	
+++ b/docs/Documentation-CHN/UserGuide/3-Server/3-Cluster Setup.md	
@@ -18,8 +18,7 @@
     under the License.
 
 -->
-# 第3章: 服务器端
 
-## 集群设置
+# 集群设置
 
 Coming Soon.
\ No newline at end of file
diff --git a/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md b/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md
index 5100895..b04d573 100644
--- a/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md	
+++ b/docs/Documentation-CHN/UserGuide/3-Server/4-Config Manual.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第3章 服务器端
-
-## 配置手册
+# 配置手册
 
 为方便IoTDB Server的配置与管理,IoTDB Server为用户提供三种配置项,使得用户可以在启动服务器或服务器运行时对其进行配置。
 
@@ -33,14 +31,14 @@
 
 * `iotdb-engine.properties`:IoTDB引擎层系统配置项的默认配置文件。用户可以在文件中配置IoTDB引擎运行时的相关参数,如JDBC服务监听端口(`rpc_port`)、overflow数据文件存储目录(`overflow_data_dir`)等。此外,用户可以在文件中配置IoTDB存储时TsFile文件的相关信息,如每次将内存中的数据写入到磁盘时的数据大小(`group_size_in_byte`),内存中每个列打一次包的大小(`page_size_in_byte`)等。
 
-### 热修改配置项
+## 热修改配置项
 
 为方便用户使用,IoTDB Server为用户提供了热修改功能,即在系统运行过程中修改`iotdb-engine.properties`中部分配置参数并即时应用到系统中。下面介绍的参数中,改后
 生效方式为`触发生效`的均为支持热修改的配置参数。
 
 触发方式:客户端发送```load configuration```命令至IoTDB Server,客户端的使用方式详见第4章
 
-### 环境配置项
+## 环境配置项
 
 环境配置项主要用于对IoTDB Server运行的Java环境相关参数进行配置,如JVM相关配置。IoTDB Server启动时,此部分配置会被传给JVM。用户可以通过查看 `iotdb-env.sh`(或`iotdb-env.bat`)文件查看环境配置项内容。详细配置项说明如下:
 
@@ -81,11 +79,11 @@
 |默认值|取决于操作系统和机器配置。在Linux或MacOS系统下默认值为机器CPU核数乘以100M的值与MAX\_HEAP\_SIZE四分之一这二者的最小值。在Windows系统下,32位系统的默认值是512M,64位系统默认值是2G。。|
 |改后生效方式|重启服务器生效|
 
-### 系统配置项
+## 系统配置项
 
 系统配置项是IoTDB Server运行的核心配置,它主要用于设置IoTDB Server文件层和引擎层的参数,便于用户根据自身需求调整Server的相关配置,以达到较好的性能表现。系统配置项可分为两大模块:文件层配置项和引擎层配置项。用户可以通过查看`iotdb-engine.properties`,文件查看和修改两种配置项的内容。在0.7.0版本中字符串类型的配置项大小写敏感。
 
-#### 文件层配置
+### 文件层配置
 
 * compressor
 
@@ -159,7 +157,7 @@
 |默认值| 默认为2位。注意:32位浮点数的十进制精度为7位,64位浮点数的十进制精度为15位。如果设置超过机器精度将没有实际意义。|
 |改后生效方式|触发生效|
 
-#### 引擎层配置
+### 引擎层配置
 
 * back\_loop\_period\_in\_second
 
@@ -246,7 +244,7 @@
 
 |名字| multi\_dir\_strategy |
 |:---:|:---|
-|描述| IoTDB在tsfile\_dir中为TsFile选择目录时采用的策略。可使用简单类名或类名全称。系统提供以下三种策略:<br>1. SequenceStrategy:IoTDB按顺序从tsfile\_dir中选择目录,依次遍历tsfile\_dir中的所有目录,并不断轮循;<br>2. MaxDiskUsableSpaceFirstStrategy:IoTDB优先选择tsfile\_dir中对应磁盘空余空间最大的目录;<br>3. MinFolderOccupiedSpaceFirstStrategy:IoTDB优先选择tsfile\_dir中已使用空间最小的目录;<br>4. <UserDfineStrategyPackage>(用户自定义策略)<br>您可以通过以下方法完成用户自定义策略:<br>1. 继承cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy类并实现自身的Strategy方法;<br>2. 将实现的类的完整类名(包名加类名,UserDfineStrategyPa [...]
+|描述| IoTDB在tsfile\_dir中为TsFile选择目录时采用的策略。可使用简单类名或类名全称。系统提供以下三种策略:<br>1. SequenceStrategy:IoTDB按顺序从tsfile\_dir中选择目录,依次遍历tsfile\_dir中的所有目录,并不断轮循;<br>2. MaxDiskUsableSpaceFirstStrategy:IoTDB优先选择tsfile\_dir中对应磁盘空余空间最大的目录;<br>3. MinFolderOccupiedSpaceFirstStrategy:IoTDB优先选择tsfile\_dir中已使用空间最小的目录;<br>4. UserDfineStrategyPackage(用户自定义策略)<br>您可以通过以下方法完成用户自定义策略:<br>1. 继承cn.edu.tsinghua.iotdb.conf.directories.strategy.DirectoryStrategy类并实现自身的Strategy方法;<br>2. 将实现的类的完整类名(包名加类名,UserDfineStrategyPack [...]
 |类型|String|
 |默认值| MaxDiskUsableSpaceFirstStrategy |
 |改后生效方式|触发生效|
diff --git a/docs/Documentation-CHN/UserGuide/3-Server/5-Docker Image.md b/docs/Documentation-CHN/UserGuide/3-Server/5-Docker Image.md
index 790d4ff..24f074a 100644
--- a/docs/Documentation-CHN/UserGuide/3-Server/5-Docker Image.md	
+++ b/docs/Documentation-CHN/UserGuide/3-Server/5-Docker Image.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,8 @@
 
 -->
 
-# 第3章 服务器端
-## Docker Image
+# Docker Image
+
 Dockerfile 存放在的 docker 工程下的 src/main/Dockerfile 中.
 
 1. 您可以使用下面的命令构建 docker image: 
diff --git a/docs/Documentation-CHN/UserGuide/4-Client/1-Command Line Interface (CLI).md b/docs/Documentation-CHN/UserGuide/4-Client/1-Command Line Interface.md
similarity index 97%
rename from docs/Documentation-CHN/UserGuide/4-Client/1-Command Line Interface (CLI).md
rename to docs/Documentation-CHN/UserGuide/4-Client/1-Command Line Interface.md
index b1b41d5..0f664d7 100644
--- a/docs/Documentation-CHN/UserGuide/4-Client/1-Command Line Interface (CLI).md	
+++ b/docs/Documentation-CHN/UserGuide/4-Client/1-Command Line Interface.md	
@@ -20,17 +20,19 @@
 -->
 
 <!-- TOC -->
-# 第4章 客户端
+
+# 命令行接口(CLI)
+
 ## 概览
+
 - Cli / Shell工具
-    - Cli / Shell安装
-    - Cli / Shell运行方式
-    - Cli / Shell运行参数
-    - Cli / Shell的-e参数
+  - Cli / Shell安装
+  - Cli / Shell运行方式
+  - Cli / Shell运行参数
+  - Cli / Shell的-e参数
 
 <!-- /TOC -->
 
-# 命令行接口(CLI)
 IOTDB为用户提供Client/Shell工具用于启动客户端和服务端程序。下面介绍每个Client/Shell工具的运行方式和相关参数。
 > \$IOTDB\_HOME表示IoTDB的安装目录所在路径。
 
diff --git a/docs/Documentation-CHN/UserGuide/4-Client/2-Programming - Native API.md b/docs/Documentation-CHN/UserGuide/4-Client/2-Programming - Native API.md
index c434ba0..f52dafb 100644
--- a/docs/Documentation-CHN/UserGuide/4-Client/2-Programming - Native API.md	
+++ b/docs/Documentation-CHN/UserGuide/4-Client/2-Programming - Native API.md	
@@ -19,8 +19,6 @@
 
 -->
 
-# 第4章: 客户端
-
 # 编程 - 原生接口
 
 ## 使用
@@ -67,34 +65,48 @@
 
 * 设置存储组
 
-  ​	TSStatus setStorageGroup(String storageGroupId)
+  ```
+  TSStatus setStorageGroup(String storageGroupId)
+  ```
 
 * 删除单个或多个存储组
 
-  ​	TSStatus deleteStorageGroup(String storageGroup)
-  ​	TSStatus deleteStorageGroups(List<String> storageGroups)
+  ```
+  	TSStatus deleteStorageGroup(String storageGroup)
+  	TSStatus deleteStorageGroups(List<String> storageGroups)
+  ```
 
 * 创建单个时间序列
 
-  ​	TSStatus createTimeseries(String path, TSDataType dataType, TSEncoding encoding, CompressionType compressor)
+  ```
+  	TSStatus createTimeseries(String path, TSDataType dataType, TSEncoding encoding, CompressionType compressor)
+  ```
 
 * 删除一个或多个时间序列
 
-  ​	TSStatus deleteTimeseries(String path)
-  ​	TSStatus deleteTimeseries(List<String> paths)
+  ```
+  	TSStatus deleteTimeseries(String path)
+  	TSStatus deleteTimeseries(List<String> paths)
+  ```
 
 * 删除某一特定时间前的时间序列
 
-  ​	TSStatus deleteData(String path, long time)
-  ​	TSStatus deleteData(List<String> paths, long time)
+  ```
+  	TSStatus deleteData(String path, long time)
+  	TSStatus deleteData(List<String> paths, long time)
+  ```
 
 * 插入时序数据
 
-  ​	TSStatus insert(String deviceId, long time, List<String> measurements, List<String> values)
+  ```
+  TSStatus insert(String deviceId, long time, List<String> measurements, List<String> values)
+  ```
 
 * 批量插入时序数据
 
-  ​	TSExecuteBatchStatementResp insertBatch(RowBatch rowBatch)
+  ```
+  	TSExecuteBatchStatementResp insertBatch(RowBatch rowBatch)
+  ```
 
 ### 示例代码
 
diff --git a/docs/Documentation-CHN/UserGuide/4-Client/3-Programming - JDBC.md b/docs/Documentation-CHN/UserGuide/4-Client/3-Programming - JDBC.md
index 123e39e..00d7084 100644
--- a/docs/Documentation-CHN/UserGuide/4-Client/3-Programming - JDBC.md	
+++ b/docs/Documentation-CHN/UserGuide/4-Client/3-Programming - JDBC.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第4章: 客户端
-
-## 编程 - JDBC
+# 编程 - JDBC
 
 ## 使用
 
diff --git a/docs/Documentation-CHN/UserGuide/4-Client/4-Programming - Other Languages.md b/docs/Documentation-CHN/UserGuide/4-Client/4-Programming - Other Languages.md
index 094d278..735c8f4 100644
--- a/docs/Documentation-CHN/UserGuide/4-Client/4-Programming - Other Languages.md	
+++ b/docs/Documentation-CHN/UserGuide/4-Client/4-Programming - Other Languages.md	
@@ -18,8 +18,8 @@
     under the License.
 
 -->
-# 第4章: 客户端
-## 其他语言
+
+# 其他语言
 
 ## Python API
 
diff --git a/docs/Documentation-CHN/UserGuide/4-Client/5-Programming - TsFile API.md b/docs/Documentation-CHN/UserGuide/4-Client/5-Programming - TsFile API.md
index 8609380..440ddf7 100644
--- a/docs/Documentation-CHN/UserGuide/4-Client/5-Programming - TsFile API.md	
+++ b/docs/Documentation-CHN/UserGuide/4-Client/5-Programming - TsFile API.md	
@@ -19,8 +19,7 @@
 
 -->
 
-# 第4章: 客户端
-## TsFile API 
+# TsFile API 
 
 TsFile 是在 IoTDB 中使用的时间序列的文件格式。在这个章节中,我们将介绍这种文件格式的用法。 
 
@@ -41,35 +40,36 @@ TsFile 是在 IoTDB 中使用的时间序列的文件格式。在这个章节中
 	
 * 使用 Maven 依赖: 
 
-	编译源码并且部署到您的本地仓库中需要 3 步:
+  编译源码并且部署到您的本地仓库中需要 3 步:
 
-	* 下载源码
-	
-		```
-		git clone https://github.com/apache/incubator-iotdb.git
-		```
-	* 编译源码和部署到本地仓库
-		
-		```
-		cd tsfile/
-		mvn clean install -Dmaven.test.skip=true
-		```
-	* 在您自己的工程中增加依赖:
-	
-	  ```
-		 <dependency>
-		   <groupId>org.apache.iotdb</groupId>
-		   <artifactId>tsfile</artifactId>
-		   <version>0.10.0</version>
-		 </dependency>
-	  ```
-	  
-	或者,您可以直接使用官方的 Maven 仓库:
-	
-	* 首先,在`${username}\.m2\settings.xml`目录下的`settings.xml`文件中`<profiles>`
-	   节中增加`<profile>`,内容如下:
-	  ```
-	    <profile>
+  * 下载源码
+
+  	```
+  	git clone https://github.com/apache/incubator-iotdb.git
+  	```
+  * 编译源码和部署到本地仓库
+  	
+  	```
+  	cd tsfile/
+  	mvn clean install -Dmaven.test.skip=true
+  	```
+  * 在您自己的工程中增加依赖:
+
+    ```
+  	 <dependency>
+  	   <groupId>org.apache.iotdb</groupId>
+  	   <artifactId>tsfile</artifactId>
+  	   <version>0.10.0</version>
+  	 </dependency>
+    ```
+    
+
+  或者,您可以直接使用官方的 Maven 仓库:
+
+  * 首先,在`${username}\.m2\settings.xml`目录下的`settings.xml`文件中`<profiles>`
+     节中增加`<profile>`,内容如下:
+    ```
+      <profile>
            <id>allow-snapshots</id>
               <activation><activeByDefault>true</activeByDefault></activation>
            <repositories>
@@ -86,16 +86,16 @@ TsFile 是在 IoTDB 中使用的时间序列的文件格式。在这个章节中
               </repository>
            </repositories>
          </profile>
-	  ```
-	* 之后您可以在您的工程中增加如下依赖:
-	
-	  ```
-		 <dependency>
-		   <groupId>org.apache.iotdb</groupId>
-		   <artifactId>tsfile</artifactId>
-		   <version>0.10.0</version>
-		 </dependency>
-	  ```
+    ```
+  * 之后您可以在您的工程中增加如下依赖:
+
+    ```
+  	 <dependency>
+  	   <groupId>org.apache.iotdb</groupId>
+  	   <artifactId>tsfile</artifactId>
+  	   <version>0.10.0</version>
+  	 </dependency>
+    ```
 
 ## TSFile 的使用
 本章节演示TsFile的详细用法。
@@ -107,7 +107,7 @@ TsFile 是在 IoTDB 中使用的时间序列的文件格式。在这个章节中
 传统的传感器(如温度计)也采用单次测量(measurement)并产生时间序列,我们将在下面交替使用测量(measurement)和传感器。
 
 * **device**: 一个设备指的是一个正在进行多次测量(产生多个时间序列)的实体,例如,
-              一列正在运行的火车监控它的速度、油表、它已经运行的英里数,当前的乘客每个都被传送到一个时间序列。
+  ​    ​    ​    一列正在运行的火车监控它的速度、油表、它已经运行的英里数,当前的乘客每个都被传送到一个时间序列。
 
 表1描述了一组时间序列数据。下表中显示的集合包含一个名为 "device\_1" 的设备,它有三个测量值(measurement)分别是
 "sensor\_1", "sensor\_2" 和 "sensor\_3". 
@@ -116,7 +116,7 @@ TsFile 是在 IoTDB 中使用的时间序列的文件格式。在这个章节中
 <table style="text-align:center">
     <tr><th colspan="6">device_1</th></tr>
     <tr><th colspan="2">sensor_1</th><th colspan="2">sensor_2</th><th colspan="2">sensor_3</th></tr>
-    <tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</td>
+    <tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
     <tr><td>1</td><td>1.2</td><td>1</td><td>20</td><td>2</td><td>50</td></tr>
     <tr><td>3</td><td>1.4</td><td>2</td><td>20</td><td>4</td><td>51</td></tr>
     <tr><td>5</td><td>1.1</td><td>3</td><td>21</td><td>6</td><td>52</td></tr>
@@ -125,6 +125,7 @@ TsFile 是在 IoTDB 中使用的时间序列的文件格式。在这个章节中
 <span>一组时间序列数据</span>
 </center>
 
+
 **单行数据**: 在许多工业应用程序中,一个设备通常包含多个传感器,这些传感器可能同时具有多个值,这称为一行数据。
 
 在形式上,一行数据包含一个`device_id`,它是一个时间戳,表示从 1970年1月1日 00:00:00 开始的毫秒数,
@@ -149,7 +150,7 @@ device_1, 1490860659000, m1, 10, m2, 12.12
 TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile 示例"章节。
 
 * 首先,构造一个`TsFileWriter`实例。
-    
+  
     以下是可用的构造函数:
     
     * 没有预定义 schema
@@ -185,7 +186,7 @@ TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile
     * config : TsFile 的一些配置项
 
 * 第二部,添加测量值(measurement)
-    
+  
     你也可以先创建一个`Schema`类的实例然后把它传递给`TsFileWriter`类的构造函数
     
     `Schema`类保存的是一个映射关系,key 是一个 measurement 的名字,value 是 measurement schema.
@@ -206,7 +207,7 @@ TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile
     ```
   
     你可以在`TsFileWriter`类中使用以下接口来添加额外的测量(measurement):
-          
+    ​      
     ```
     public void addMeasurement(MeasurementSchema measurementSchema) throws WriteProcessException
     ```
@@ -220,12 +221,12 @@ TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile
     ```
     
     **参数:**
-        
+    ​    
     * measurementID: 测量的名称,通常是传感器的名称。
-        
+      
     * type: 数据类型,现在支持六种类型: `BOOLEAN`, `INT32`, `INT64`, `FLOAT`, `DOUBLE`, `TEXT`;
     
-    * encoding: 编码类型. 参见 [Chapter 2-3](/#/Documents/progress/chap2/sec3).
+    * encoding: 编码类型. 参见 [Chapter 2-3](/zh/document/master/UserGuide/2-Concept/3-Encoding.html).
     
     * compression: 压缩方式. 现在支持 `UNCOMPRESSED` 和 `SNAPPY`.
     
@@ -234,14 +235,14 @@ TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile
     
     > **注意:** 虽然一个测量(measurement)的名字可以被用在多个deltaObjects中, 但是它的参数是不允许被修改的。比如: 
         不允许多次为同一个测量(measurement)名添加不同类型的编码。下面是一个错误示例:
-        
+    
         // The measurement "sensor_1" is float type
         addMeasurement(new MeasurementSchema("sensor_1", TSDataType.FLOAT, TSEncoding.RLE));
         
         // This call will throw a WriteProcessException exception
         addMeasurement(new MeasurementSchema("sensor_1", TSDataType.INT32, TSEncoding.RLE));
 * 第三,插入和写入数据。
-    
+  
     使用这个接口创建一个新的`TSRecord`(时间戳和设备对)。
     
     ```
@@ -256,7 +257,7 @@ TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile
     ```
     
 * 最后,调用`close`方法来完成写入过程。
-    
+  
     ```
     public void close() throws IOException
     ```
@@ -265,7 +266,9 @@ TsFile可以通过以下三个步骤生成,完整的代码参见"写入 TsFile
 
 您需要安装 TsFile 到本地的 Maven 仓库中。
 
-详情参见: [Installation](./1-Installation.md)
+```
+mvn clean install -pl tsfile -am -DskipTests
+```
 
 如果存在**非对齐**的时序数据(比如:不是所有的传感器都有值),您可以通过构造**TSRecord**来写入。
 
@@ -423,7 +426,7 @@ public class TsFileWriteWithRowBatch {
 <table style="text-align:center">
     <tr><th colspan="6">device_1</th></tr>
     <tr><th colspan="2">sensor_1</th><th colspan="2">sensor_2</th><th colspan="2">sensor_3</th></tr>
-    <tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</td>
+    <tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
     <tr><td>1</td><td>1.2</td><td>1</td><td>20</td><td>2</td><td>50</td></tr>
     <tr><td>3</td><td>1.4</td><td>2</td><td>20</td><td>4</td><td>51</td></tr>
     <tr><td>5</td><td>1.1</td><td>3</td><td>21</td><td>6</td><td>52</td></tr>
@@ -432,6 +435,7 @@ public class TsFileWriteWithRowBatch {
 <span>一组时间序列数据</span>
 </center>
 
+
 #### 路径的定义
 
 路径是一个点(.)分隔的字符串,它唯一地标识 TsFile 中的时间序列,例如:"root.area_1.device_1.sensor_1"。
@@ -466,33 +470,33 @@ paths.add(new Path("device_1.sensor_3"));
 我们创建一个或多个筛选器表达式,并且可以使用`Binary Filter Operators`将它们连接形成最终表达式。
 
 * **创建一个Filter表达式**
-    
+  
     有两种类型的过滤器。
     
      * TimeFilter: 使用时序数据中的`time`过滤。
         ```
         IExpression timeFilterExpr = new GlobalTimeExpression(TimeFilter);
         ```
-       使用以下关系获得一个`TimeFilter`对象(值是一个 long 型变量)。
+          使用以下关系获得一个`TimeFilter`对象(值是一个 long 型变量)。
         <center>
         <table style="text-align:center">
-            <tr><th>Relationship</th><th>Description</td></tr>
-            <tr><td>TimeFilter.eq(value)</td><td>选择时间等于值的数据</td>
-            <tr><td>TimeFilter.lt(value)</td><td>选择时间小于值的数据</td>
-            <tr><td>TimeFilter.gt(value)</td><td>选择时间大于值的数据</td>
-            <tr><td>TimeFilter.ltEq(value)</td><td>选择时间小于等于值的数据</td>
-            <tr><td>TimeFilter.gtEq(value)</td><td>选择时间大于等于值的数据</td>
-            <tr><td>TimeFilter.notEq(value)</td><td>选择时间不等于值的数据</td>
-            <tr><td>TimeFilter.not(TimeFilter)</td><td>选择时间不满足另一个时间过滤器的数据</td>
+            <tr><th>Relationship</th><th>Description</th></tr>
+            <tr><td>TimeFilter.eq(value)</td><td>选择时间等于值的数据</td></tr>
+            <tr><td>TimeFilter.lt(value)</td><td>选择时间小于值的数据</td></tr>
+            <tr><td>TimeFilter.gt(value)</td><td>选择时间大于值的数据</td></tr>
+            <tr><td>TimeFilter.ltEq(value)</td><td>选择时间小于等于值的数据</td></tr>
+            <tr><td>TimeFilter.gtEq(value)</td><td>选择时间大于等于值的数据</td></tr>
+            <tr><td>TimeFilter.notEq(value)</td><td>选择时间不等于值的数据</td></tr>
+            <tr><td>TimeFilter.not(TimeFilter)</td><td>选择时间不满足另一个时间过滤器的数据</td></tr>
         </table>
         </center>
         
      * ValueFilter: 使用时序数据中的`value`过滤。
-        
+       
         ```
         IExpression valueFilterExpr = new SingleSeriesExpression(Path, ValueFilter);
         ```
-       `ValueFilter`的用法与`TimeFilter`相同,只是需要确保值的类型等于measurement(在路径中定义)的类型。
+          `ValueFilter`的用法与`TimeFilter`相同,只是需要确保值的类型等于measurement(在路径中定义)的类型。
 
 * **Binary Filter Operators**
 
@@ -500,7 +504,7 @@ paths.add(new Path("device_1.sensor_3"));
 
      * BinaryExpression.and(Expression, Expression): 选择同时满足两个表达式的数据。
      * BinaryExpression.or(Expression, Expression): 选择满足任意一个表达式值的数据。
-     
+    
 
 ##### Filter Expression 示例
 
@@ -567,7 +571,7 @@ ReadOnlyTsFile类有两个`query`方法来执行查询。
     * **参数** : 对于 method 2,添加了两个额外的参数来支持部分查询(Partial Query):
         *  ```partitionStartOffset```: TsFile 的开始偏移量
         *  ```partitionEndOffset```: TsFile 的结束偏移量
-                                     
+           ​                          
         > **什么是部分查询?**
         >
         > 在一些分布式文件系统中(比如:HDFS), 文件被分成几个部分,这些部分被称为"Blocks"并存储在不同的节点中。在涉及的每个节点上并行执行查询可以提高效率。因此需要部分查询(Partial Query)。部分查询(Partial Query)仅支持查询 TsFile 中被```QueryConstant.PARTITION_START_OFFSET```和```QueryConstant.PARTITION_END_OFFSET```分割的部分。
@@ -596,11 +600,11 @@ ReadOnlyTsFile类有两个`query`方法来执行查询。
        DOUBLE,
        TEXT;
  * `RowRecord next() throws IOException;`
- 
+
     获取下一条记录。
     
     `RowRecord`类包含一个`long`类型的时间戳和一个`List<Field>`,用于不同传感器中的数据,我们可以使用两个getter方法来获取它们。
-     
+    
     ```
     long getTimestamp();
     List<Field> getFields();
@@ -678,7 +682,7 @@ public class TsFileRead {
 ```
 
 ## 指定配置文件路径
-   
+
 默认的配置文件`tsfile-format.properties.template`存放在`/tsfile/src/main/resources`目录下。如果您想使用自定义的路径:
 ```
 System.setProperty(TsFileConstant.TSFILE_CONF, "your config file path");
diff --git a/docs/Documentation-CHN/UserGuide/4-Client/6-Status Codes.md b/docs/Documentation-CHN/UserGuide/4-Client/6-Status Codes.md
index 40d1e28..5816f88 100644
--- a/docs/Documentation-CHN/UserGuide/4-Client/6-Status Codes.md	
+++ b/docs/Documentation-CHN/UserGuide/4-Client/6-Status Codes.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,6 @@
 
 -->
 
-# Chapter 4: Client
 # Status codes
 
 对于每个SQL请求,都会返回一个结果码;
diff --git a/docs/Documentation-CHN/UserGuide/5-Operation Manual/1-DDL (Data Definition Language).md b/docs/Documentation-CHN/UserGuide/5-Operation Manual/1-DDL Data Definition Language.md
similarity index 94%
rename from docs/Documentation-CHN/UserGuide/5-Operation Manual/1-DDL (Data Definition Language).md
rename to docs/Documentation-CHN/UserGuide/5-Operation Manual/1-DDL Data Definition Language.md
index b0e7eaa..a575385 100644
--- a/docs/Documentation-CHN/UserGuide/5-Operation Manual/1-DDL (Data Definition Language).md	
+++ b/docs/Documentation-CHN/UserGuide/5-Operation Manual/1-DDL Data Definition Language.md	
@@ -7,9 +7,9 @@
     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
@@ -19,10 +19,9 @@
 
 -->
 
-# 第5章 IoTDB操作指南
-## DDL (数据定义语言)
+# DDL (数据定义语言)
 
-### 创建存储组
+## 创建存储组
 
 我们可以根据存储模型建立相应的存储组。创建存储组的SQL语句如下所示:
 
@@ -40,9 +39,9 @@ IoTDB> set storage group to root.ln.wf01
 Msg: org.apache.iotdb.exception.MetadataErrorException: org.apache.iotdb.exception.PathErrorException: The prefix of root.ln.wf01 has been set to the storage group.
 ```
 
-### 查看存储组
+## 查看存储组
 
-在存储组创建后,我们可以使用[SHOW STORAGE GROUP](/#/Documents/progress/chap5/sec4)语句来查看所有的存储组,SQL语句如下所示:
+在存储组创建后,我们可以使用[SHOW STORAGE GROUP](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html)语句来查看所有的存储组,SQL语句如下所示:
 
 ```
 IoTDB> show storage group
@@ -51,7 +50,7 @@ IoTDB> show storage group
 执行结果为:
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577338-84c70600-1ef4-11e9-9dab-605b32c02836.jpg"></center>
 
-### 创建时间序列
+## 创建时间序列
 
 根据建立的数据模型,我们可以分别在两个存储组中创建相应的时间序列。创建时间序列的SQL语句如下所示:
 
@@ -70,9 +69,9 @@ IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODIN
 error: encoding TS_2DIFF does not support BOOLEAN
 ```
 
-详细的数据类型与编码方式的对应列表请参见[编码方式](/#/Documents/progress/chap2/sec3)。
+详细的数据类型与编码方式的对应列表请参见[编码方式](/zh/document/master/UserGuide/2-Concept/3-Encoding.html)。
 
-### 查看时间序列
+## 查看时间序列
 
 目前,IoTDB支持两种查看时间序列的方式:
 
@@ -92,7 +91,7 @@ IoTDB> show timeseries root.ln
 
 需要注意的是,当查询路径不存在时,系统会返回0条时间序列。
 
-### 统计时间序列总数
+## 统计时间序列总数
 
 IoTDB支持使用`COUNT TIMESERIES<Path>`来统计一条路径中的时间序列个数。SQL语句如下所示:
 ```
@@ -107,11 +106,11 @@ IoTDB > COUNT TIMESERIES root.ln.wf01.wt01.status
 例如有如下时间序列(可以使用`show timeseries`展示所有时间序列):
 
 <center><img style="width:100%; max-width:800px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/19167280/69792072-cdc8a480-1200-11ea-8cec-321fef618a12.png"></center>
-   
+
 那么Metadata Tree如下所示:
 
 <center><img style="width:100%; max-width:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/19167280/69792176-1718f400-1201-11ea-861a-1a83c07ca144.jpg"></center>
-   
+
 可以看到,`root`被定义为`LEVEL=0`。那么当你输入如下语句时:
 
 ```
@@ -125,7 +124,8 @@ IoTDB > COUNT TIMESERIES root.ln.wf01 GROUP BY LEVEL=2
 
 > 注意:时间序列的路径只是过滤条件,与level的定义无关。
 
-### 统计节点数
+## 统计节点数
+
 IoTDB支持使用`COUNT NODES <Path> LEVEL=<INTEGER>`来统计当前Metadata树下指定层级的节点个数,这条语句可以用来统计设备数。例如:
 
 ```
@@ -139,7 +139,8 @@ IoTDB > COUNT NODES root.ln.wf01 LEVEL=3
 
 > 注意:时间序列的路径只是过滤条件,与level的定义无关。
 
-### 删除时间序列
+## 删除时间序列
+
 我们可以使用`DELETE TimeSeries <PrefixPath>`语句来删除我们之前创建的时间序列。SQL语句如下所示:
 ```
 IoTDB> delete timeseries root.ln.wf01.wt01.status
@@ -147,7 +148,7 @@ IoTDB> delete timeseries root.ln.wf01.wt01.temperature, root.ln.wf02.wt02.hardwa
 IoTDB> delete timeseries root.ln.wf02.*
 ```
 
-### 查看设备
+## 查看设备
 
 与 `Show Timeseries` 相似,IoTDB 目前也支持两种方式查看设备。
 * `SHOW DEVICES` 语句显示当前所有的设备信息,等价于 `SHOW DEVICES root`。
@@ -159,19 +160,22 @@ IoTDB> show devices
 IoTDB> show devices root.ln
 ```
 
-## TTL
+# TTL
+
 IoTDB支持对存储组级别设置数据存活时间(TTL),这使得IoTDB可以定期、自动地删除一定时间之前的数据。合理使用TTL
 可以帮助您控制IoTDB占用的总磁盘空间以避免出现磁盘写满等异常。并且,随着文件数量的增多,查询性能往往随之下降,
 内存占用也会有所提高。及时地删除一些较老的文件有助于使查询性能维持在一个较高的水平和减少内存资源的占用。
 
-### 设置 TTL
+## 设置 TTL
+
 设置TTL的SQL语句如下所示:
 ```
 IoTDB> set ttl to root.ln 3600000
 ```
 这个例子表示在`root.ln`存储组中,只有最近一个小时的数据将会保存,旧数据会被移除或不可见。
 
-### 取消 TTL
+## 取消 TTL
+
 取消TTL的SQL语句如下所示:
 ```
 IoTDB> unset ttl to root.ln
diff --git a/docs/Documentation-CHN/UserGuide/5-Operation Manual/2-DML (Data Manipulation Language).md b/docs/Documentation-CHN/UserGuide/5-Operation Manual/2-DML Data Manipulation Language.md
similarity index 94%
rename from docs/Documentation-CHN/UserGuide/5-Operation Manual/2-DML (Data Manipulation Language).md
rename to docs/Documentation-CHN/UserGuide/5-Operation Manual/2-DML Data Manipulation Language.md
index 6b1afd6..55bd13a 100644
--- a/docs/Documentation-CHN/UserGuide/5-Operation Manual/2-DML (Data Manipulation Language).md	
+++ b/docs/Documentation-CHN/UserGuide/5-Operation Manual/2-DML Data Manipulation Language.md	
@@ -19,15 +19,13 @@
 
 -->
 
-# 第5章 IoTDB操作指南
-
-## DML (数据操作语言)
+# DML (数据操作语言)
 
 ## 数据接入
 
-IoTDB为用户提供多种插入实时数据的方式,例如在[Cli/Shell工具](/#/Documents/progress/chap4/sec1)中直接输入插入数据的INSERT语句,或使用Java API(标准[Java JDBC](/#/Documents/progress/chap4/sec2)接口)单条或批量执行插入数据的INSERT语句。
+IoTDB为用户提供多种插入实时数据的方式,例如在[Cli/Shell工具](/zh/document/master/UserGuide/4-Client/1-Command%20Line%20Interface.html)中直接输入插入数据的INSERT语句,或使用Java API(标准[Java JDBC](/zh/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html)接口)单条或批量执行插入数据的INSERT语句。
 
-本节主要为您介绍实时数据接入的INSERT语句在场景中的实际使用示例,有关INSERT SQL语句的详细语法请参见本文[INSERT语句](/#/Documents/progress/chap5/sec4)节。
+本节主要为您介绍实时数据接入的INSERT语句在场景中的实际使用示例,有关INSERT SQL语句的详细语法请参见本文[INSERT语句](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html)节。
 
 ### 使用INSERT语句
 
@@ -91,7 +89,7 @@ error: The TEXT data type should be covered by " or '
 
 ### 时间切片查询
 
-本节主要介绍时间切片查询的相关示例,主要使用的是[IoTDB SELECT语句](/#/Documents/progress/chap5/sec4)。同时,您也可以使用[Java JDBC](/#/Documents/progress/chap4/sec2)标准接口来执行相关的查询语句。
+本节主要介绍时间切片查询的相关示例,主要使用的是[IoTDB SELECT语句](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html)。同时,您也可以使用[Java JDBC](/zh/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html)标准接口来执行相关的查询语句。
 
 #### 根据一个时间区间选择一列数据
 
@@ -103,7 +101,7 @@ select temperature from root.ln.wf01.wt01 where time < 2017-11-01T00:08:00.000
 
 其含义为:
 
-被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为温度传感器(temperature);该语句要求选择出该设备在“2017-11-01T00:08:00.000”(此处可以使用多种时间格式,详情可参看[2.1节](/#/Documents/progress/chap2/sec1))时间点以前的所有温度传感器的值。
+被选择的设备为ln集团wf01子站wt01设备;被选择的时间序列为温度传感器(temperature);该语句要求选择出该设备在“2017-11-01T00:08:00.000”(此处可以使用多种时间格式,详情可参看[2.1节](/zh/document/master/UserGuide/2-Concept/1-Data%20Model%20and%20Terminology.html))时间点以前的所有温度传感器的值。
 
 该SQL语句的执行结果如下:
 
@@ -176,7 +174,7 @@ select s1,s2 from root.sg1.* GROUP BY DEVICE
 ### 降频聚合查询
 
 本章节主要介绍降频聚合查询的相关示例,
-主要使用的是IoTDB SELECT语句的[GROUP BY子句](/#/Documents/progress/chap5/sec4),
+主要使用的是IoTDB SELECT语句的[GROUP BY子句](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html),
 该子句是IoTDB中用于根据用户给定划分条件对结果集进行划分,并对已划分的结果集进行聚合计算的语句。
 IoTDB支持根据时间间隔和自定义的滑动步长(默认值与时间间隔相同,自定义的值必须大于等于时间间隔)对结果集进行划分,默认结果按照时间升序排列。
 同时,您也可以使用Java JDBC标准接口来执行相关的查询语句。
@@ -196,7 +194,6 @@ GROUP BY语句为用户提供三类指定参数:
 带值过滤条件。
 
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/16079446/69109512-f808bc80-0ab2-11ea-9e4d-b2b2f58fb474.png">
-
 **图 5.2 三类参数的实际含义**</center>
 
 #### 未指定滑动步长的降频聚合查询
@@ -435,12 +432,12 @@ select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000
 
 ### 对查询结果的行和列控制
 
-IoTDB提供 [LIMIT/SLIMIT](/#/Documents/progress/chap5/sec4) 子句和 [OFFSET/SOFFSET](/#/Documents/progress/chap5/sec4) 子句,以使用户可以更好地控制查询结果。使用LIMIT和SLIMIT子句可让用户控制查询结果的行数和列数,
+IoTDB提供 [LIMIT/SLIMIT](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) 子句和 [OFFSET/SOFFSET](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) 子句,以使用户可以更好地控制查询结果。使用LIMIT和SLIMIT子句可让用户控制查询结果的行数和列数,
 并且使用OFFSET和SOFSET子句允许用户设置结果显示的起始位置。
 
 请注意,按组查询不支持LIMIT和OFFSET。
 
-本章主要介绍查询结果的行和列控制的相关示例。你还可以使用 [Java JDBC](/#/Documents/progress/chap4/sec2) 标准接口执行查询。
+本章主要介绍查询结果的行和列控制的相关示例。你还可以使用 [Java JDBC](/zh/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html) 标准接口执行查询。
 
 #### 查询结果的行控制
 
@@ -690,7 +687,7 @@ SQL语句将不会执行,并且相应的错误提示如下:
 
 ### 数据删除
 
-用户使用[DELETE语句](/#/Documents/progress/chap5/sec4)可以删除指定的时间序列中符合时间删除条件的数据。在删除数据时,用户可以选择需要删除的一个或多个时间序列、时间序列的前缀、时间序列带\*路径对某时间之前的数据进行删除(当前版本暂不支持删除某一闭时间区间范围内的数据)。
+用户使用[DELETE语句](/zh/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html)可以删除指定的时间序列中符合时间删除条件的数据。在删除数据时,用户可以选择需要删除的一个或多个时间序列、时间序列的前缀、时间序列带\*路径对某时间之前的数据进行删除(当前版本暂不支持删除某一闭时间区间范围内的数据)。
 
 在JAVA编程环境中,您可以使用JDBC API单条或批量执行DELETE语句。
 
@@ -706,7 +703,7 @@ delete from root.ln.wf02.wt02.status where time<=2017-11-01T16:26:00;
 
 #### 多传感器时间序列值删除    
 
-当ln集团wf02子站的wt02设备在2017-11-01 16:26:00之前的供电状态和设备硬件版本都需要删除,此时可以使用含义更广的[前缀路径或带`*`路径](/#/Documents/progress/chap2/sec1)进行删除操作,进行此操作的SQL语句为:
+当ln集团wf02子站的wt02设备在2017-11-01 16:26:00之前的供电状态和设备硬件版本都需要删除,此时可以使用含义更广的[前缀路径或带`*`路径](/zh/document/master/UserGuide/2-Concept/1-Data%20Model%20and%20Terminology.html)进行删除操作,进行此操作的SQL语句为:
 
 ```
 delete from root.ln.wf02.wt02 where time <= 2017-11-01T16:26:00;
diff --git a/docs/Documentation-CHN/UserGuide/5-Operation Manual/3-Account Management Statements.md b/docs/Documentation-CHN/UserGuide/5-Operation Manual/3-Account Management Statements.md
index 03833c9..d639244 100644
--- a/docs/Documentation-CHN/UserGuide/5-Operation Manual/3-Account Management Statements.md	
+++ b/docs/Documentation-CHN/UserGuide/5-Operation Manual/3-Account Management Statements.md	
@@ -7,9 +7,9 @@
     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
@@ -19,36 +19,35 @@
 
 -->
 
-# 第5章 IoTDB操作指南
-
-## 账户管理语句
+# 账户管理语句
 
 IoTDB为用户提供了权限管理操作,从而为用户提供对于数据的权限管理功能,保障数据的安全。
 
-我们将通过以下几个具体的例子为您示范基本的用户权限操作,详细的SQL语句及使用方式详情请参见本文[第5.4节](/#/Documents/progress/chap5/sec4)。同时,在JAVA编程环境中,您可以使用[JDBC API](/#/Documents/progress/chap4/sec2)单条或批量执行权限管理类语句。
+我们将通过以下几个具体的例子为您示范基本的用户权限操作,详细的SQL语句及使用方式详情请参见本文[第5.4节](/zh/document/master/UserGuide/2-Concept/1-Data%20Model%20and%20Terminology.html)。同时,在JAVA编程环境中,您可以使用[JDBC API](/zh/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html)单条或批量执行权限管理类语句。
 
-### 基本概念
-#### 用户
+## 基本概念
+
+### 用户
 
 用户即数据库的合法使用者。一个用户与一个唯一的用户名相对应,并且拥有密码作为身份验证的手段。一个人在使用数据库之前,必须先提供合法的(即存于数据库中的)用户名与密码,使得自己成为用户。
 
-#### 权限
+### 权限
 
 数据库提供多种操作,并不是所有的用户都能执行所有操作。如果一个用户可以执行某项操作,则称该用户有执行该操作的权限。权限可分为数据管理权限(如对数据进行增删改查)以及权限管理权限(用户、角色的创建与删除,权限的赋予与撤销等)。数据管理权限往往需要一个路径来限定其生效范围,它的生效范围是以该路径对应的节点为根的一颗子树(具体请参考IoTDB的数据组织)。
 
-#### 角色
+### 角色
 
 角色是若干权限的集合,并且有一个唯一的角色名作为标识符。用户通常和一个现实身份相对应(例如交通调度员),而一个现实身份可能对应着多个用户。这些具有相同现实身份的用户往往具有相同的一些权限。角色就是为了能对这样的权限进行统一的管理的抽象。
 
-#### 默认用户及其具有的角色
+### 默认用户及其具有的角色
 
 初始安装后的IoTDB中有一个默认用户:root,默认密码为root。该用户为管理员用户,固定拥有所有权限,无法被赋予、撤销权限,也无法被删除。
 
-### 权限操作示例 
+## 权限操作示例 
 
-根据本文中描述的[样例数据](/#/Documents/progress/chap5/sec1)内容,IoTDB的样例数据可能同时属于ln, sgcc等不同发电集团,不同的发电集团不希望其他发电集团获取自己的数据库数据,因此我们需要将不同的数据在集团层进行权限隔离。
+根据本文中描述的[样例数据](/zh/document/master/UserGuide/5-Operation%20Manual/1-DDL%20Data%20Definition%20Language.html)内容,IoTDB的样例数据可能同时属于ln, sgcc等不同发电集团,不同的发电集团不希望其他发电集团获取自己的数据库数据,因此我们需要将不同的数据在集团层进行权限隔离。
 
-#### 创建用户
+### 创建用户
 
 我们可以为ln和sgcc集团创建两个用户角色,名为ln_write_user, sgcc_write_user,密码均为write_pwd。SQL语句为:
 
@@ -65,7 +64,7 @@ LIST USER
 
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51578263-e2a91d00-1ef7-11e9-94e8-28819b6fea87.jpg"></center>
 
-#### 赋予用户权限
+### 赋予用户权限
 
 此时,虽然两个用户已经创建,但是他们不具有任何权限,因此他们并不能对数据库进行操作,例如我们使用ln_write_user用户对数据库中的数据进行写入,SQL语句为:
 
@@ -84,8 +83,9 @@ INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)
 执行状态如图所示:
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51578942-33ba1080-1efa-11e9-891c-09d69791aff1.jpg"></center>
 
-### 其他说明
-#### 用户、权限与角色的关系
+## 其他说明
+
+### 用户、权限与角色的关系
 
 角色是权限的集合,而权限和角色都是用户的一种属性。即一个角色可以拥有若干权限。一个用户可以拥有若干角色与权限(称为用户自身权限)。
 
@@ -95,7 +95,7 @@ INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)
 
 同时,对角色的修改会立即反映到所有拥有该角色的用户上,例如对角色增加某种权限将立即使所有拥有该角色的用户都拥有对应权限,删除某种权限也将使对应用户失去该权限(除非用户本身有该权限)。 
 
-#### 系统所含权限列表
+### 系统所含权限列表
 
 <center>**系统所含权限列表**
 
@@ -121,14 +121,14 @@ INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)
 |REVOKE\_ROLE\_PRIVILEGE|撤销角色权限。路径无关|
 </center>
 
-#### 用户名限制
+### 用户名限制
 
 IoTDB规定用户名的字符长度不小于4,其中用户名不能包含空格。
 
-#### 密码限制
+### 密码限制
 
 IoTDB规定密码的字符长度不小于4,其中密码不能包含空格,密码采用MD5进行加密。
 
-#### 角色名限制
+### 角色名限制
 
 IoTDB规定角色名的字符长度不小于4,其中角色名不能包含空格。
diff --git a/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md b/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md
index ee9b46a..3c9453c 100644
--- a/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md	
+++ b/docs/Documentation-CHN/UserGuide/5-Operation Manual/4-SQL Reference.md	
@@ -7,9 +7,9 @@
     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
@@ -19,10 +19,9 @@
 
 -->
 
-# 第5章 IoTDB操作指南
-## SQL 参考文档
+# SQL 参考文档
 
-### 显示版本号
+## 显示版本号
 
 ```sql
 show version
@@ -38,7 +37,7 @@ Total line number = 1
 It costs 0.417s
 ```
 
-### Schema语句
+## Schema语句
 
 * 设置存储组
 
@@ -181,7 +180,7 @@ Eg: IoTDB > SHOW CHILD PATHS root.ln.wf*
 Note: The path can be prefix path or star path, the nodes can be in a "prefix + star" format. 
 Note: This statement can be used in IoTDB Client and JDBC.
 ```
-### 数据管理语句
+## 数据管理语句
 
 * 插入记录语句
 
@@ -487,7 +486,7 @@ Eg. SELECT LAST s1 FROM root.sg.d1, root.sg.d2 disable align
 
 ```
 
-### 数据库管理语句
+## 数据库管理语句
 
 * 创建用户
 
@@ -653,7 +652,7 @@ password:=string
 Eg: IoTDB > ALTER USER tempuser SET PASSWORD newpwd;
 ```
 
-### 功能
+## 功能
 
 * COUNT
 
@@ -738,7 +737,8 @@ Eg. SELECT SUM(temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.tempe
 Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
 ```
 
-### TTL
+## TTL
+
 IoTDB支持对存储组级别设置数据存活时间(TTL),这使得IoTDB可以定期、自动地删除一定时间之前的数据。合理使用TTL
 可以帮助您控制IoTDB占用的总磁盘空间以避免出现磁盘写满等异常。并且,随着文件数量的增多,查询性能往往随之下降,
 内存占用也会有所提高。及时地删除一些较老的文件有助于使查询性能维持在一个较高的水平和减少内存资源的占用。
@@ -775,9 +775,9 @@ Eg.2 SHOW TTL ON root.group1,root.group2,root.group3
 一部分之前不可见的数据可能重新可见,而那些已经被物理删除的数据则将永久丢失。也就是说,TTL操作不会原子性地删除
 对应的数据。因此我们不推荐您频繁修改TTL,除非您能接受该操作带来的一定程度的不可预知性。
 
-## 参考
+# 参考
 
-### 关键字
+## 关键字
 
 ```
 Keywords for IoTDB (case insensitive):
@@ -790,7 +790,7 @@ Keywords with special meanings (case insensitive):
 * Logical symbol: AND, &, &&, OR, | , ||, NOT, !, TRUE, FALSE
 ```
 
-### 标识符
+## 标识符
 
 ```
 QUOTE := '\'';
@@ -845,7 +845,7 @@ eg. _abc123
 
 ```
 
-### 常量
+## 常量
 
 
 ```
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/1-Sync Tool.md b/docs/Documentation-CHN/UserGuide/6-System Tools/1-Sync Tool.md
index b1225cf..bc85c05 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/1-Sync Tool.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/1-Sync Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,6 @@
 
 -->
 
-# 第6章: 系统工具
 # 同步工具
 <!-- TOC -->
 
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/2-Memory Estimation Tool.md b/docs/Documentation-CHN/UserGuide/6-System Tools/2-Memory Estimation Tool.md
index 49389ce..3e64f07 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/2-Memory Estimation Tool.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/2-Memory Estimation Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,6 @@
 
 -->
 
-# 第6章: 系统工具
 # 内存预估
 <!-- TOC -->
 
@@ -60,7 +59,6 @@
       <td>-mts 10000</td>
       <td>否</td>
    </tr>
-
 </table>
 
 在内存预估时,若工具计算需要较长的时间,则会在下方显示出运行进度,便于用户掌握进度。
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/3-JMX Tool.md b/docs/Documentation-CHN/UserGuide/6-System Tools/3-JMX Tool.md
index ed2a618..4e50ab8 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/3-JMX Tool.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/3-JMX Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# 第6章: 系统工具
-
 # JMX工具
 
 Java VisualVM提供了一个可视化的界面,用于查看Java应用程序在Java虚拟机(JVM)上运行的详细信息,并对这些应用程序进行故障排除和分析。
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/4-Watermark Tool.md b/docs/Documentation-CHN/UserGuide/6-System Tools/4-Watermark Tool.md
index 8afda24..4a8cdce 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/4-Watermark Tool.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/4-Watermark Tool.md	
@@ -20,7 +20,6 @@ under the License.
 ```
 
 -->
-# 第6章: 系统工具
 # 水印工具
 **目录**
 
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/5-Log Visualizer.md b/docs/Documentation-CHN/UserGuide/6-System Tools/5-Log Visualizer.md
index de77116..beeb21c 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/5-Log Visualizer.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/5-Log Visualizer.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,7 @@
 
 -->
 
-# 第6章: 系统工具
-## 日志可视化工具
+# 日志可视化工具
 
 <!-- TOC -->
 
@@ -97,16 +96,16 @@
 ## 载入日志
 之后,点击`Load logs`按钮来让LogVisualizer准备对这些日志进行解析。如果准备成功,按钮上方将显示
 `Logs are successfully loaded`。否则将会弹出一个对话框提示错误,您需要根据错误内容进行相应处理。
- 
+
  <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/load_logs.png?raw=true">
- 
+
 ## 加载可视化计划
 接下来,您可以选择加载磁盘上已有的可视化计划或者新建计划。要加载已有的计划,只需要点击 `Load plans`
 按钮,并在弹出的对话框中选择想要加载的计划文件或者包含计划文件的文件夹。注意,如果选择文件夹,该文件
 夹必须只包含计划文件。
 
  <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/load_plan.png?raw=true">
- 
+
 ## 新建可视化计划
 现在,我们将展示如何使用图形界面创建一个新的可视化计划,您也可以参考已有的计划文件,使用文本编辑器编写。
 首先点击`Create plan`按钮并选择存放新计划的文件,新计划将出现在左边的列表。选择的文件名将作为新计划的
@@ -136,7 +135,7 @@
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/plot.png?raw=true">
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/statistics.png?raw=true">
- 
+
 # 使用方法(命令行)
 我们也提供了LogVisualizer的命令行版本,您可以通过`log-visualizer-cmd.sh` (或 `log-visualizer-cmd.bat`)
 来使用。使用时必须输入四个参数,它们是:`日志文件的路径`,`解析器配置文件的路径`,`可视化计划的路径`,
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/6-Query History Visualization Tool.md b/docs/Documentation-CHN/UserGuide/6-System Tools/6-Query History Visualization Tool.md
index 231e5d2..d01c9c1 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/6-Query History Visualization Tool.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/6-Query History Visualization Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第6章: 系统工具
-
-## 查询历史可视化工具
+# 查询历史可视化工具
 
 IoTDB查询历史可视化工具使用一个监控网页来提供查看查询历史和SQL语句执行时间的服务,同时也可以查看当前host的内存和CPU使用情况。
 
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/7-Monitor and Log Tools.md b/docs/Documentation-CHN/UserGuide/6-System Tools/7-Monitor and Log Tools.md
index c765ee6..b29f93d 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/7-Monitor and Log Tools.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/7-Monitor and Log Tools.md	
@@ -19,8 +19,8 @@
 
 -->
 
-# 第6章: 系统工具
-## 监控与日志工具
+# 监控与日志工具
+
 ## 系统监控
 
 当前用户可以使用Java的JConsole工具对正在运行的IoTDB进程进行系统状态监控,或使用IoTDB为用户开放的接口查看数据统计量。
@@ -151,13 +151,13 @@ Monitor下有几个属性,包括在不同文件夹中打开的文件数,数
 
 本模块是IoTDB为用户提供的对其中存储数据信息的数据统计监控方式,我们会在系统中为您记录各个模块的数据统计信息,并将其汇总存入数据库中。当前版本的IoTDB提供IoTDB写入数据的统计功能。
 
-用户可以选择开启或关闭数据统计监控功能(您可以设定配置文件中的`enable_stat_monitor`项,详细信息参见[第3.4节](/#/Documents/progress/chap3/sec4))。
+用户可以选择开启或关闭数据统计监控功能(您可以设定配置文件中的`enable_stat_monitor`项,详细信息参见[第3.4节](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html))。
 
 #### 写入数据统计
 
-系统目前对写入数据的统计可分为两大模块: 全局(Global) 写入数据统计和存储组(Storage Group) 写入数据统计。 全局统计量记录了所有写入数据的点数、请求数统计,存储组统计量对某一个存储组的写入数据进行了统计,系统默认设定每 5 秒 (若需更改统计频率,您可以设定配置文件中的`back_loop_period_in_second`项,详细信息参见本文[3.4节](/#/Documents/progress/chap3/sec4)) 将统计量写入 IoTDB 中,并以系统指定的命名方式存储。系统刷新或者重启后, IoTDB 不对统计量做恢复处理,统计量从零值重新开始计算。
+系统目前对写入数据的统计可分为两大模块: 全局(Global) 写入数据统计和存储组(Storage Group) 写入数据统计。 全局统计量记录了所有写入数据的点数、请求数统计,存储组统计量对某一个存储组的写入数据进行了统计,系统默认设定每 5 秒 (若需更改统计频率,您可以设定配置文件中的`back_loop_period_in_second`项,详细信息参见本文[3.4节](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html)) 将统计量写入 IoTDB 中,并以系统指定的命名方式存储。系统刷新或者重启后, IoTDB 不对统计量做恢复处理,统计量从零值重新开始计算。
 
-为了避免统计信息占用过多空间,我们为统计信息加入定期清除无效数据的机制。系统将每隔一段时间删除无效数据。用户可以通过设置删除机制触发频率(`stat_monitor_retain_interval_in_second`项,默认为600s,详细信息参见本文[3.4节](/#/Documents/progress/chap3/sec4))配置删除数据的频率,通过设置有效数据的期限(`stat_monitor_detect_freq_in_second`项,默认为600s,详细信息参见本文[3.4节](/#/Documents/progress/chap3/sec4))设置有效数据的范围,即距离清除操作触发时间为`stat_monitor_detect_freq_in_second`以内的数据为有效数据。为了保证系统的稳定,不允许频繁地删除统计量,因此如果配置参数的时间小于默认值,系统不采用配置参数而使用默认参数。
+为了避免统计信息占用过多空间,我们为统计信息加入定期清除无效数据的机制。系统将每隔一段时间删除无效数据。用户可以通过设置删除机制触发频率(`stat_monitor_retain_interval_in_second`项,默认为600s,详细信息参见本文[3.4节](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html))配置删除数据的频率,通过设置有效数据的期限(`stat_monitor_detect_freq_in_second`项,默认为600s,详细信息参见本文[3.4节](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html))设置有效数据的范围,即距离清除操作触发时间为`stat_monitor_detect_freq_in_second`以内的数据为有效数据。为了保证系统的稳定,不允许频繁地删除统计量,因此如果配置参数的时间小于默认值,系统不采用配置参数而使用默认参数。
 
 注:当前版本统计的写入数据统计信息会同时统计用户写入的数据与系统内部监控数据。
 
diff --git a/docs/Documentation-CHN/UserGuide/6-System Tools/8-Load External Tsfile.md b/docs/Documentation-CHN/UserGuide/6-System Tools/8-Load External Tsfile.md
index 07279b3..dfc90a9 100644
--- a/docs/Documentation-CHN/UserGuide/6-System Tools/8-Load External Tsfile.md	
+++ b/docs/Documentation-CHN/UserGuide/6-System Tools/8-Load External Tsfile.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,8 @@
 
 -->
 
-# 第6章: 系统工具
 # 加载外部tsfile文件
+
 <!-- TOC -->
 
 - [第6章: 系统工具](#第6章-系统工具)
diff --git a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/1-Grafana.md b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/1-Grafana.md
index 07d1817..bf7134a 100644
--- a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/1-Grafana.md	
+++ b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/1-Grafana.md	
@@ -7,9 +7,9 @@
     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
@@ -18,26 +18,25 @@
     under the License.
 
 -->
-# 第7章: 生态集成
-<!-- TOC -->
+
+# IoTDB-Grafana
+
 ## 概览
 
 - IoTDB-Grafana
-    - Grafana的安装与部署
-        - 安装
-        - simple-json-datasource数据源插件安装
-        - 启动Grafana
-    - IoTDB安装
-    - IoTDB-Grafana连接器安装
-        - 启动IoTDB-Grafana
-    - 使用Grafana
-        - 添加IoTDB数据源
-        - 操作Grafana
+  - Grafana的安装与部署
+    - 安装
+    - simple-json-datasource数据源插件安装
+    - 启动Grafana
+  - IoTDB安装
+  - IoTDB-Grafana连接器安装
+    - 启动IoTDB-Grafana
+  - 使用Grafana
+    - 添加IoTDB数据源
+    - 操作Grafana
 
 <!-- /TOC -->
 
-# IoTDB-Grafana
-
 Grafana是开源的指标量监测和可视化工具,可用于展示时序数据和应用程序运行分析。Grafana支持Graphite,InfluxDB等国际主流时序时序数据库作为数据源。在IoTDB项目中,我们开发了Grafana展现IoTDB中时序数据的连接器IoTDB-Grafana,为您提供使用Grafana展示IoTDB数据库中的时序数据的可视化方法。
 
 ## Grafana的安装与部署
diff --git a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md
index 3d39a7f..916552f 100644
--- a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md	
+++ b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md	
@@ -7,9 +7,9 @@
     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
@@ -18,8 +18,9 @@
     under the License.
 
 -->
-# 第7章: 生态集成
+
 # MapReduce TsFile
+
 <!-- TOC -->
 ## 概要
 
diff --git a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md
index b6c74be..d2966d7 100644
--- a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md	
+++ b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md	
@@ -19,7 +19,6 @@
 
 -->
 
-# 第7章: 生态集成
 # TsFile的Spark连接器
 
 ## 1. About TsFile-Spark-Connector
@@ -50,7 +49,7 @@ TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 
 ./<spark-shell-path>  --jars  tsfile-spark-connector.jar,tsfile-0.10.0-jar-with-dependencies.jar
 ```
 
-- \<spark-shell-path>是您的spark-shell的真实路径。
+- \<spark-shell-path\>是您的spark-shell的真实路径。
 - 多个jar包用逗号分隔,没有任何空格。
 - 有关如何获取TsFile的信息,请参见https://github.com/apache/incubator-iotdb/tree/master/tsfile。
 
@@ -64,7 +63,7 @@ TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 
 
 注意:
 
-- \ <spark-shell-path>是您的spark-shell的真实路径。
+- \<spark-shell-path\>是您的spark-shell的真实路径。
 - 多个jar包用逗号分隔,没有任何空格。
 - 有关如何获取TsFile的信息,请参见https://github.com/apache/incubator-iotdb/tree/master/tsfile。
 
@@ -98,7 +97,7 @@ TsFile中的现有数据如下:
 <table style="text-align:center">
 	<tr><th colspan="4">device:root.ln.wf01.wt01</th><th colspan="4">device:root.ln.wf02.wt02</th></tr>
 	<tr><th colspan="2">status</th><th colspan="2">temperature</th><th colspan="2">hardware</th><th colspan="2">status</th></tr>
-	<tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th><th>time</th><th>value</td></tr>
+	<tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
 	<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td></tr>
 	<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td></tr>
 	<tr><td>5</td><td> False </td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td></tr>
diff --git a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md
index 2d2b845..08433ae 100644
--- a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md	
+++ b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md	
@@ -19,8 +19,6 @@
 
 -->
 
-# 第7章: 生态集成
-
 # Spark IoTDB连接器
 
 ## 版本
@@ -94,13 +92,14 @@ TsFile中的现有数据如下:
 <table style="text-align:center">
 	<tr><th colspan="4">device:root.ln.wf01.wt01</th><th colspan="4">device:root.ln.wf02.wt02</th></tr>
 	<tr><th colspan="2">状态</th><th colspan="2">温度</th><th colspan="2">硬件</th><th colspan="2">状态</th></tr>
-	<tr><th>时间</th><th>值</td><th>时间</th><th>值</td><th>时间</th><th>值</th><th>时间</th><th>值</td></tr>
+	<tr><th>时间</th><th>值</td><th>时间</th><th>值</th><th>时间</th><th>值</th><th>时间</th><th>值</th></tr>
 	<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td></tr>
 	<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td></tr>
 	<tr><td>5</td><td> False </td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td></tr>
 </table>
 </center>
 
+
 宽(默认)表形式如下:
 
 | time | root.ln.wf02.wt02.temperature | root.ln.wf02.wt02.status | root.ln.wf02.wt02.hardware | root.ln.wf01.wt01.temperature | root.ln.wf01.wt01.status | root.ln.wf01.wt01.hardware |
diff --git a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md
index a1d3ab3..4b2f617 100644
--- a/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md	
+++ b/docs/Documentation-CHN/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md	
@@ -7,9 +7,9 @@
     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
@@ -18,24 +18,21 @@
     under the License.
 
 -->
-# 第7章: 生态集成
 
-<!-- TOC -->
+# TsFile的Hive连接器
+
 ## 概要
 
 - TsFile的Hive连接器使用手册
-	- 什么是TsFile的Hive连接器
-	- 系统环境要求
-	- 数据类型对应关系
-	- 为Hive添加依赖jar包
-	- 创建Tsfile-backed的Hive表
-	- 从Tsfile-backed的Hive表中查询
-	    - 选择查询语句示例
-	    - 聚合查询语句示例
-	- 后续工作
-		
-<!-- /TOC -->
-# TsFile的Hive连接器使用手册
+  - 什么是TsFile的Hive连接器
+  - 系统环境要求
+  - 数据类型对应关系
+  - 为Hive添加依赖jar包
+  - 创建Tsfile-backed的Hive表
+  - 从Tsfile-backed的Hive表中查询
+    - 选择查询语句示例
+    - 聚合查询语句示例
+  - 后续工作
 
 ## 什么是TsFile的Hive连接器
 
diff --git a/docs/Documentation-CHN/UserGuide/8-Architecture/1-Files.md b/docs/Documentation-CHN/UserGuide/8-Architecture/1-Files.md
index e6bd62b..7fe7255 100644
--- a/docs/Documentation-CHN/UserGuide/8-Architecture/1-Files.md
+++ b/docs/Documentation-CHN/UserGuide/8-Architecture/1-Files.md
@@ -7,9 +7,9 @@
     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
@@ -19,29 +19,27 @@
 
 -->
 
-# 第8章: 系统设计
-
-## 文件
+# 文件
 
 本节将介绍IoTDB的数据存储方式,便于您对IoTDB的数据管理有一个直观的了解。
 
 IoTDB需要存储的数据分为三类,分别为数据文件、系统文件以及写前日志文件。
 
-### 数据文件
+## 数据文件
 
-数据文件存储了用户写入IoTDB系统的所有数据。包含TsFile文件和其他文件,可通过[data_dirs配置项](/#/Documents/progress/chap3/sec4)进行配置。
+数据文件存储了用户写入IoTDB系统的所有数据。包含TsFile文件和其他文件,可通过[data_dirs配置项](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html)进行配置。
 
-为了更好的支持用户对于磁盘空间扩展等存储需求,IoTDB为TsFile的存储配置增加了多文件目录的存储方式,用户可自主配置多个存储路径作为数据的持久化位置(详情见[data_dirs配置项](/#/Documents/progress/chap3/sec4)),并可以指定或自定义目录选择策略(详情见[mult_dir_strategy配置项](/#/Documents/progress/chap3/sec4))。
+为了更好的支持用户对于磁盘空间扩展等存储需求,IoTDB为TsFile的存储配置增加了多文件目录的存储方式,用户可自主配置多个存储路径作为数据的持久化位置(详情见[data_dirs配置项](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html)),并可以指定或自定义目录选择策略(详情见[mult_dir_strategy配置项](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html))。
 
-### 系统文件
+## 系统文件
 
-系统Schema文件,存储了数据文件的元数据信息。可通过base_dir配置项进行配置(详情见[base_dir配置项](/#/Documents/progress/chap3/sec4))。
+系统Schema文件,存储了数据文件的元数据信息。可通过base_dir配置项进行配置(详情见[base_dir配置项](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html))。
 
-### 写前日志文件
+## 写前日志文件
 
-写前日志文件存储了系统的写前日志。可通过`wal_dir`配置项进行配置(详情见[wal_dir配置项](/#/Documents/progress/chap3/sec4))。
+写前日志文件存储了系统的写前日志。可通过`wal_dir`配置项进行配置(详情见[wal_dir配置项](/zh/document/master/UserGuide/3-Server/4-Config%20Manual.html))。
 
-### 数据存储目录设置举例
+## 数据存储目录设置举例
 
 接下来我们将举一个数据目录配置的例子,来具体说明如何配置数据的存储目录。
 
diff --git a/docs/Documentation-CHN/UserGuide/8-Architecture/2-Writing Data on HDFS.md b/docs/Documentation-CHN/UserGuide/8-Architecture/2-Writing Data on HDFS.md
index 549d3ed..9e5c4d6 100644
--- a/docs/Documentation-CHN/UserGuide/8-Architecture/2-Writing Data on HDFS.md	
+++ b/docs/Documentation-CHN/UserGuide/8-Architecture/2-Writing Data on HDFS.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# 第8章: 系统设计
-
-## 使用HDFS存储数据
+# 使用HDFS存储数据
 
 ## 存储共享架构
 
diff --git a/docs/Documentation-CHN/UserGuide/8-Architecture/3-Shared Nothing Cluster.md b/docs/Documentation-CHN/UserGuide/8-Architecture/3-Shared Nothing Cluster.md
index 1c0a79b..26528ca 100644
--- a/docs/Documentation-CHN/UserGuide/8-Architecture/3-Shared Nothing Cluster.md	
+++ b/docs/Documentation-CHN/UserGuide/8-Architecture/3-Shared Nothing Cluster.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# 第8章: 系统设计
-
-## Shared-nothing 架构
+# Shared-nothing 架构
 
-正在开发中,预计2019年底发布,敬请期待。
+正在开发中,敬请期待。
diff --git a/docs/Documentation/SystemDesign/0-Architecture/1-Architecture.md b/docs/Documentation/SystemDesign/0-Architecture/1-Architecture.md
index b4e3b56..f7e5c27 100644
--- a/docs/Documentation/SystemDesign/0-Architecture/1-Architecture.md
+++ b/docs/Documentation/SystemDesign/0-Architecture/1-Architecture.md
@@ -33,22 +33,22 @@ As shown in the following figure ,  IoTDB uses a client-server architecture.
 
 The server mainly includes a query engine that processes all user requests and distributes them to the corresponding management components, including the data writing layer, data query, schema management, and administration modules.
 
-* [TsFile](/#/SystemDesign/progress/chap1/sec1)
-* [QueryEngine](/#/SystemDesign/progress/chap2/sec1)
-* [SchemaManager](/#/SystemDesign/progress/chap3/sec1)
-* [StorageEngine](/#/SystemDesign/progress/chap4/sec1)
-* [DataQuery](/#/SystemDesign/progress/chap5/sec1)
+* [TsFile](../1-TsFile/1-TsFile.html)
+* [QueryEngine](../2-QueryEngine/1-QueryEngine.html)
+* [SchemaManager](/document/master/SystemDesign/3-SchemaManager/1-SchemaManager.html)
+* [StorageEngine](/document/master/SystemDesign/4-StorageEngine/1-StorageEngine.html)
+* [DataQuery](/document/master/SystemDesign/5-DataQuery/1-DataQuery.html)
 
 ## System Tools
 
-* [Data synchronization tool](/#/SystemDesign/progress/chap6/sec1)
+* [Data synchronization tool](/document/master/SystemDesign/6-Tools/1-Sync.html)
 
 ## Connector
 
 IoTDB is connected with big data systems.
 
 * [Hadoop-TsFile](/#/SystemDesign/progress/chap7/sec1)
-* [Hive-TsFile](/#/SystemDesign/progress/chap7/sec2)
-* [Spark-TsFile](/#/SystemDesign/progress/chap7/sec3)
-* [Spark-IoTDB](/#/SystemDesign/progress/chap7/sec4)
+* [Hive-TsFile](/document/master/SystemDesign/7-Connector/2-Hive-TsFile.html)
+* [Spark-TsFile](/document/master/SystemDesign/7-Connector/3-Spark-TsFile.html)
+* [Spark-IoTDB](/document/master/SystemDesign/7-Connector/4-Spark-IOTDB.html)
 * [Grafana](/#/SystemDesign/progress/chap7/sec5)
diff --git a/docs/Documentation/SystemDesign/1-TsFile/1-TsFile.md b/docs/Documentation/SystemDesign/1-TsFile/1-TsFile.md
index 8968d50..d6a98f1 100644
--- a/docs/Documentation/SystemDesign/1-TsFile/1-TsFile.md
+++ b/docs/Documentation/SystemDesign/1-TsFile/1-TsFile.md
@@ -7,9 +7,9 @@
     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
@@ -25,6 +25,6 @@ TsFile is the data file of IoTDB.
 
 ## Related
 
-* [File Format](/#/SystemDesign/progress/chap1/sec2)
-* [Write Process](/#/SystemDesign/progress/chap1/sec3)
-* [Read Process](/#/SystemDesign/progress/chap1/sec4)
+* [File Format](/document/master/SystemDesign/1-TsFile/2-Format.html)
+* [Write Process](/document/master/SystemDesign/1-TsFile/3-Write.html)
+* [Read Process](/document/master/SystemDesign/1-TsFile/4-Read.html)
diff --git a/docs/Documentation/SystemDesign/1-TsFile/3-Write.md b/docs/Documentation/SystemDesign/1-TsFile/3-Write.md
index ca90fe8..a292e4a 100644
--- a/docs/Documentation/SystemDesign/1-TsFile/3-Write.md
+++ b/docs/Documentation/SystemDesign/1-TsFile/3-Write.md
@@ -7,9 +7,9 @@
     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
@@ -20,3 +20,45 @@
 -->
 
 # TsFile Write Process
+
+- org.apache.iotdb.tsfile.write.*
+
+The writing process of TsFile is shown in the following figure:
+
+<img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/19167280/73625238-efba2980-467e-11ea-927e-a7021f8153af.png">
+
+Among them, each device corresponds to a ChunkGroupWriter, and each sensor corresponds to a ChunkWriter.
+
+File writing is mainly divided into three operations, marked with 1, 2, 3 on the figure
+
+- 1、Write memory swap area
+- 2、Persistent ChunkGroup
+- 3、Close file
+
+## 1、Write memory buffer
+
+TsFile file layer has two write interfaces
+
+- TsFileWriter.write(TSRecord record)
+
+Write a device with a timestamp and multiple measurement points.
+
+- TsFileWriter.write(RowBatch rowBatch)
+
+ Write multiple timestamps and multiple measurement points on one device.
+
+When the write interface is called, the data of this device will be delivered to the corresponding ChunkGroupWriter, and each measurement point will be delivered to the corresponding ChunkWriter for writing.  ChunkWriter completes coding and packaging (generating a page).
+
+## 2、Persistent ChunkGroup
+
+- TsFileWriter.flushAllChunkGroups()
+
+When the data in the memory reaches a certain threshold, the persistence operation is triggered.  Each persistence will persist all the data of all devices in the current memory to the TsFile file of the disk.  Each device corresponds to a ChunkGroup and each measurement point corresponds to a Chunk.
+
+After the persistence is complete, the corresponding metadata information is cached in memory for querying and generating the metadata at the end of the file.
+
+## 3、关闭文件
+
+- TsFileWriter.close()
+
+Based on the metadata cached in memory, TsFileMetadata is generated and appended to the end of the file, and the file is finally closed.
\ No newline at end of file
diff --git a/docs/Documentation/SystemDesign/2-QueryEngine/1-QueryEngine.md b/docs/Documentation/SystemDesign/2-QueryEngine/1-QueryEngine.md
index 549bcd5..56b53af 100644
--- a/docs/Documentation/SystemDesign/2-QueryEngine/1-QueryEngine.md
+++ b/docs/Documentation/SystemDesign/2-QueryEngine/1-QueryEngine.md
@@ -60,5 +60,5 @@ The query engine is responsible for parsing all user commands, generating plans,
 
 ## Related documents
 
-* [Query Plan Generator](/#/SystemDesign/progress/chap2/sec2)
-* [PlanExecutor](/#/SystemDesign/progress/chap2/sec3)
+* [Query Plan Generator](/document/master/SystemDesign/2-QueryEngine/2-Planner.html)
+* [PlanExecutor](/document/master/SystemDesign/2-QueryEngine/3-PlanExecutor.html)
diff --git a/docs/Documentation/SystemDesign/4-StorageEngine/1-StorageEngine.md b/docs/Documentation/SystemDesign/4-StorageEngine/1-StorageEngine.md
index dc862c4..cee1b8c 100644
--- a/docs/Documentation/SystemDesign/4-StorageEngine/1-StorageEngine.md
+++ b/docs/Documentation/SystemDesign/4-StorageEngine/1-StorageEngine.md
@@ -51,7 +51,7 @@ In addition, the storage engine includes asynchronous persistence and file merge
 
 ## Data write
 See details:
-* [Data write](/#/SystemDesign/progress/chap4/sec6)
+* [Data write](/document/master/SystemDesign/4-StorageEngine/6-DataManipulation.html)
 
 ## Data access
 
@@ -61,8 +61,8 @@ See details:
 
 ## Related documents
 
-* [Write Ahead Log (WAL)](/#/SystemDesign/progress/chap4/sec2)
+* [Write Ahead Log (WAL)](/document/master/SystemDesign/4-StorageEngine/2-WAL.html)
 
-* [memtable Endurance](/#/SystemDesign/progress/chap4/sec3)
+* [memtable Endurance](/document/master/SystemDesign/4-StorageEngine/3-FlushManager.html)
 
-* [File merge mechanism](/#/SystemDesign/progress/chap4/sec4)
+* [File merge mechanism](/document/master/SystemDesign/4-StorageEngine/4-MergeManager.html)
diff --git a/docs/Documentation/SystemDesign/4-StorageEngine/4-MergeManager.md b/docs/Documentation/SystemDesign/4-StorageEngine/4-MergeManager.md
index 32ce98f..fdc4332 100644
--- a/docs/Documentation/SystemDesign/4-StorageEngine/4-MergeManager.md
+++ b/docs/Documentation/SystemDesign/4-StorageEngine/4-MergeManager.md
@@ -21,6 +21,87 @@
 
 # File merge mechanism
 
+## Design principle
+
+The written files are both out of order and in order, and there are both small files and large files, and there are different optimal merge algorithms in different systems. Therefore, MergeManager provides multiple merge policy interfaces and provides flexible new policy interfaces.  Entry method
+
+## Calling procedure
+
+- Each merge will be called when the user client calls the "merge" command or according to the mergeIntervalSec in the configuration
+- The merge is divided into three processes, including selecting a file (selector), performing a merge, and recovering after the merge process is interrupted (recover)
+<img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/24886743/75313978-6c64b000-5899-11ea-8565-40b012f9c8a2.png">
+
+## Merged example
+
+Under the squeeze merge strategy, when a series of seq and unseq files are merged and the time and memory limits are not exceeded, all files will be merged into one named {timestamp}-{version}-{merge times + 1  } .tsfile.merge.squeeze
+​    
+When the time or memory limit is exceeded, the file selection process will be interrupted, and the currently selected seq and unseq files will be merged as above to form a file
+
+The time limit is that the time spent in the process of selecting files cannot exceed a given value, not an estimate of the time taken by the merge process, the purpose is to prevent the selection of files from taking too much time when there are too many files
+
+Memory limit refers to the estimation of the maximum memory consumed by the selected files when merging, and making the estimated value not exceed a given value, so that the process of merging generates a memory overflow.
+
+There are two options when recovering, one is to continue the previous progress, and the other is to give up the previous progress
+
 ## Related code
 
-* org.apache.iotdb.db.engine.merge.*
\ No newline at end of file
+* org.apache.iotdb.db.engine.merge.BaseFileSelector
+
+    The base class for the file selection process, which specifies the basic framework for selecting files and methods for calculating file memory consumption in different situations. All custom file selection strategies need to inherit this class
+    
+* org.apache.iotdb.db.engine.merge.IRecoverMergeTask
+  
+    The interface class of the recover process, which specifies the recoverMerge interface. All custom merge recovery strategies must inherit this class.
+
+In addition, each custom MergeTask needs to inherit the Callable \<void\> interface to ensure that it can be called back
+
+* org.apache.iotdb.db.engine.merge.manage.MergeContext
+
+    Common context classes in the Merge process
+
+* org.apache.iotdb.db.engine.merge.manage.MergeManager
+
+    The thread pool class in the Merge process, which manages the operation of multiple merge tasks
+
+* org.apache.iotdb.db.engine.merge.manage.MergeResource
+
+    Resource class in the Merge process, responsible for managing files, readers, writers, measurement Schemas, modifications, and other resources during the merge process
+
+## inplace strategy
+
+### selector
+
+Under limited memory and time, first select the unseq file in turn, and each time directly select the seq file that overlaps with the unseq file according to the time range
+
+### merge
+
+First select all series that need to be merged according to storageGroupName, then create a chunkMetaHeap for each seq file selected in the selector, and merge them into multiple sub-threads according to the mergeChunkSubThreadNum in the configuration.
+
+## squeeze strategy
+
+### selector
+
+Under the limited memory and time, first select the unseq file in turn, each time select the seq file that overlaps with the time range of the unseq file, and then retry each seq file in order.  Take more seq files under circumstances
+
+### merge
+
+Basically similar to the inplace strategy, first select all series that need to be merged according to storageGroupName, then create a chunkMetaHeap for each seq file selected in the selector, and merge into multiple child threads according to the mergeChunkSubThreadNum in the configuration to merge
+
+## Recovery after merge interruption
+
+The merge may be forcibly interrupted when the system shuts down or fails suddenly. At this time, the system records the interrupted merge and scans the merge.log file when the next StorageGroupProcessor is created, and re-merges according to the configuration.  There are the following states, among which the recovery process is to give up the merge strategy first
+
+### NONE
+Basically did nothing, delete the corresponding merge log directly during recovery, and wait for the next manual or automatic merge
+
+### MERGE_START
+Files to be merged and timeseries have been selected
+Delete the corresponding merge file during recovery, empty the selected file, and clear all other merge related public resources
+
+### ALL_TS_MERGED
+All timeseries have been merged
+Perform cleanUp directly on recovery and execute the callback operation completed by merge
+
+### MERGE_END
+All the files on the surface have been merged, this time the merge has been completed
+This state does not appear in the merge log in principle
\ No newline at end of file
diff --git a/docs/Documentation/SystemDesign/4-StorageEngine/6-DataManipulation.md b/docs/Documentation/SystemDesign/4-StorageEngine/6-DataManipulation.md
index 3c771ca..e8ea43c 100644
--- a/docs/Documentation/SystemDesign/4-StorageEngine/6-DataManipulation.md
+++ b/docs/Documentation/SystemDesign/4-StorageEngine/6-DataManipulation.md
@@ -63,7 +63,7 @@ The following describes four common data manipulation operations, which are inse
 Currently does not support data in-place update operations, that is, update statements, but users can directly insert new data, the same time series at the same time point is based on the latest inserted data.
 Old data is automatically deleted by merging, see:
 
-* [File merge mechanism](/#/SystemDesign/progress/chap4/sec4)
+* [File merge mechanism](/document/master/SystemDesign/4-StorageEngine/4-MergeManager.html)
 
 ## Data deletion
 
diff --git a/docs/Documentation/SystemDesign/5-DataQuery/1-DataQuery.md b/docs/Documentation/SystemDesign/5-DataQuery/1-DataQuery.md
index a2a76b2..f429efe 100644
--- a/docs/Documentation/SystemDesign/5-DataQuery/1-DataQuery.md
+++ b/docs/Documentation/SystemDesign/5-DataQuery/1-DataQuery.md
@@ -33,8 +33,8 @@ In order to achieve the above kinds of queries, a basic query component for a si
 
 ## Related documents
 
-* [Basic query components](/#/SystemDesign/progress/chap5/sec2)
-* [Raw data query](/#/SystemDesign/progress/chap5/sec3)
-* [Aggregate query](/#/SystemDesign/progress/chap5/sec4)
-* [Downsampling query](/#/SystemDesign/progress/chap5/sec5)
-* [Recent timestamp query](/#/SystemDesign/progress/chap5/sec6)
+* [Basic query components](/document/master/SystemDesign/5-DataQuery/2-SeriesReader.html)
+* [Raw data query](/document/master/SystemDesign/5-DataQuery/3-RawDataQuery.html)
+* [Aggregate query](/document/master/SystemDesign/5-DataQuery/4-AggregationQuery.html)
+* [Downsampling query](/document/master/SystemDesign/5-DataQuery/5-GroupByQuery.html)
+* [Recent timestamp query](/document/master/SystemDesign/5-DataQuery/6-LastQuery.html)
diff --git a/docs/Documentation/SystemDesign/5-DataQuery/3-RawDataQuery.md b/docs/Documentation/SystemDesign/5-DataQuery/3-RawDataQuery.md
index 3c1a551..089d0b0 100644
--- a/docs/Documentation/SystemDesign/5-DataQuery/3-RawDataQuery.md
+++ b/docs/Documentation/SystemDesign/5-DataQuery/3-RawDataQuery.md
@@ -48,7 +48,7 @@ The following introduces the producer's code first. It is encapsulated in an int
 `ReadTask` has two fields
 
 * private final ManagedSeriesReader reader;
-* private BlockingQueue<BatchData> blockingQueue;
+* private BlockingQueue\<BatchData\> blockingQueue;
 
 The `ManagedSeriesReader` interface inherits the IBatchReader interface, which is mainly used to read data from a single time series, and adds the following four methods
 
@@ -120,11 +120,11 @@ Next, introduce the code of the consumer. The main logic of the consumer is to t
 
 First introduce some important fields of consumer tasks
 
-* TreeSet<Long> timeHeap
+* TreeSet\<Long\> timeHeap
 
   The smallest heap of timestamps for timestamp alignment
 
-* BlockingQueue<BatchData>[] blockingQueueArray;
+* BlockingQueue\<BatchData\>[] blockingQueueArray;
 
   An array of blocking queues to store the blocking queues corresponding to each time series
 
@@ -252,7 +252,7 @@ Its query logic is to first generate a timestamp that meets the filtering condit
 
   Is used to generate timestamps that satisfy the filter
   
-* private List<IReaderByTimestamp> seriesReaderByTimestampList;
+* private List\<IReaderByTimestamp\> seriesReaderByTimestampList;
 
   Reader for each time series, used to get data based on timestamp
 
diff --git a/docs/Documentation/SystemDesign/5-DataQuery/6-LastQuery.md b/docs/Documentation/SystemDesign/5-DataQuery/6-LastQuery.md
index 5411c66..7a8aeba 100644
--- a/docs/Documentation/SystemDesign/5-DataQuery/6-LastQuery.md
+++ b/docs/Documentation/SystemDesign/5-DataQuery/6-LastQuery.md
@@ -47,7 +47,7 @@ If it is found that the cache has not been written, execute the following standa
 
 ## Last standard query process
 
-Last standard query process needs to traverse all sequential files and unsequential files to get query results, and finally write the query results back to the MNode cache.  In the algorithm, sequential files and unsequential files are processed separately.
+Last standard query process needs to traverse all sequential files and unsequential files to get query results, and finally write the query results back to the MNode cache.  In the algorithm, sequential files and  unsequential  files are processed separately.
 - The sequential file is sorted by its writing time, so use the `loadChunkMetadataFromTsFileResource` method directly to get the last` ChunkMetadata`, and get the maximum timestamp and corresponding value through the statistical data of `ChunkMetadata`.
     ```
     if (!seqFileResources.isEmpty()) {
@@ -119,4 +119,4 @@ public synchronized void updateCachedLast(
       cachedLastValuePair.setValue(timeValuePair.getValue());
     }
 }
-```
+```
\ No newline at end of file
diff --git a/docs/Documentation/SystemDesign/5-DataQuery/7-AlignByDeviceQuery.md b/docs/Documentation/SystemDesign/5-DataQuery/7-AlignByDeviceQuery.md
index f65611a..beb97be 100644
--- a/docs/Documentation/SystemDesign/5-DataQuery/7-AlignByDeviceQuery.md
+++ b/docs/Documentation/SystemDesign/5-DataQuery/7-AlignByDeviceQuery.md
@@ -64,7 +64,7 @@ The following will be explained according to the specific process:
 
 Unlike the original data query, the alignment by device query does not concatenate the suffix paths in the SELECT statement and the WHERE statement at this stage, but when the physical plan is subsequently generated, the mapping value and filter conditions corresponding to each device are calculated.  Therefore, the work done at this stage by device alignment only includes optimization of filter conditions in WHERE statements.
 
-The optimization of the filtering conditions mainly includes three parts: removing the negation, transforming the disjunction paradigm, and merging the same path filtering conditions.  The corresponding optimizers are: RemoveNotOptimizer, DnfFilterOptimizer, MergeSingleFilterOptimizer.  This part of the logic can refer to:[Planner](/#/SystemDesign/progress/chap2/sec2).
+The optimization of the filtering conditions mainly includes three parts: removing the negation, transforming the disjunction paradigm, and merging the same path filtering conditions.  The corresponding optimizers are: RemoveNotOptimizer, DnfFilterOptimizer, MergeSingleFilterOptimizer.  This part of the logic can refer to:[Planner](/document/master/SystemDesign/2-QueryEngine/2-Planner.html).
 
 ### Physical plan generation
 
@@ -186,7 +186,7 @@ The specific implementation logic is as follows:
 1. First determine whether the current result set is initialized and there is a next result. If it is, it returns true directly, that is, you can call the next () method to get the next RowRecord; otherwise, the result set is not initialized and proceeds to step 2.
 2. Iterate deviceIterator to get the devices needed for this execution, and then get the corresponding measurement points in the deviceToMeasurementsMap to get executeColumns.
 3. Concatenate the current device name and measurements to calculate the query path, data type, and filter conditions of the current device. The corresponding fields are `executePaths`,` tsDataTypes`, and `expression`. If it is an aggregate query, you need to calculate` executeAggregations`  .
-4. Determine whether the current subquery type is GroupByQuery, AggregationQuery, FillQuery or RawDataQuery. Perform the corresponding query and return the result set. The implementation logic [Raw data query](/#/SystemDesign/progress/chap5/sec3),[Aggregate query](/#/SystemDesign/progress/chap5/sec4),[Downsampling query](/#/SystemDesign/progress/chap5/sec5)  can be referenced.
+4. Determine whether the current subquery type is GroupByQuery, AggregationQuery, FillQuery or RawDataQuery. Perform the corresponding query and return the result set. The implementation logic [Raw data query](/document/master/SystemDesign/5-DataQuery/3-RawDataQuery.html),[Aggregate query](/document/master/SystemDesign/5-DataQuery/4-AggregationQuery.html),[Downsampling query](/document/master/SystemDesign/5-DataQuery/5-GroupByQuery.html)  can be referenced.
 
 After initializing the result set through the `hasNextWithoutConstraint ()` method and ensuring that there is a next result, you can call `QueryDataSet.next ()` method to get the next `RowRecord`.
 
diff --git a/docs/Documentation/SystemDesign/7-Connector/2-Hive-TsFile.md b/docs/Documentation/SystemDesign/7-Connector/2-Hive-TsFile.md
index b393c41..8c3fbea 100644
--- a/docs/Documentation/SystemDesign/7-Connector/2-Hive-TsFile.md
+++ b/docs/Documentation/SystemDesign/7-Connector/2-Hive-TsFile.md
@@ -68,11 +68,11 @@ public interface IReaderSet {
 
 Let's first introduce some important fields of this class
 
-* private List<QueryDataSet> dataSetList = new ArrayList<>();
+* private List\<QueryDataSet\> dataSetList = new ArrayList<>();
 
   All QueryDataSets generated by this shard
 
-* private List<String> deviceIdList = new ArrayList<>();
+* private List\<String\> deviceIdList = new ArrayList<>();
 
   Device name list, this order is consistent with the order of dataSetList, that is, deviceIdList [i] is the device name of dataSetList [i].
 
@@ -94,7 +94,7 @@ We noticed that after reading the data from TsFile, it was returned in the form
 
 #### org.apache.iotdb.hive.TsFileSerDe
 
-This class inherits ʻAbstractSerDe` and is also necessary for us to implement Hive to read data from custom input formats.
+This class inherits `AbstractSerDe` and is also necessary for us to implement Hive to read data from custom input formats.
 
 It overrides the Initialize () method of AbstractSerDe. In this method, the corresponding device name, sensor name, and corresponding type of the sensor are parsed from the user-created table sql.  An ObjectInspector object is also constructed. This object is mainly responsible for the conversion of data types. Since TsFile only supports primitive data types, when other data types occur, an exception needs to be thrown. The specific construction process can be seen in the createObjectIns [...]
 
@@ -105,7 +105,7 @@ The main responsibility of this class is to serialize and deserialize data in di
 
 This class deserializes the data into Hive's output format. There is only one `deserialize ()` method.
 
-##### public Object deserialize(List<String>, List<TypeInfo>, Writable, String)
+##### public Object deserialize(List\<String\>, List\<TypeInfo\>, Writable, String)
 
 The `Writable` parameter of this method is the` MapWritable` generated by `next ()` of `TSFHiveRecordReader`.
 
diff --git a/docs/Documentation/UserGuide/0-Content.md b/docs/Documentation/UserGuide/0-Content.md
deleted file mode 100644
index 8404e3d..0000000
--- a/docs/Documentation/UserGuide/0-Content.md
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--
-
-    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.
-
--->
-
-
-# Chapter 0: Get Started
-* 1-QuickStart
-* 2-Frequently asked questions
-* 3-Publication
-# Chapter 1: Overview
-* 1-What is IoTDB
-* 2-Architecture
-* 3-Scenario
-* 4-Features
-# Chapter 2: Concept
-* 1-Data Model and Terminology
-* 2-Data Type
-* 3-Encoding
-* 4-Compression
-# Chapter 3: Server
-* 1-Download
-* 2-Single Node Setup
-* 3-Cluster Setup
-* 4-Config Manual
-* 5-Docker Image
-# Chapter 4: Client
-* 1-Command Line Interface (CLI)
-* 2-Programming - Native API
-* 3-Programming - JDBC
-* 4-Programming - Other Languages
-* 5-Programming - TsFile API
-* 6-Status Codes
-# Chapter 5: Operation Manual
-* 1-DDL (Data Definition Language)
-* 2-DML (Data Manipulation Language)
-* 3-Account Management Statements
-* 4-SQL Reference
-# Chapter 6: System Tools
-* 1-Sync Tool
-* 2-Memory Estimation Tool
-* 3-JMX Tool
-* 4-Watermark Tool
-* 5-Log Visualizer
-* 6-Query History Visualization Tool
-* 7-Monitor and Log Tools
-# Chapter 7: Ecosystem Integration
-* 1-Grafana
-* 2-MapReduce TsFile
-* 3-Spark TsFile
-* 4-Spark IoTDB
-* 5-Hive TsFile
-# Chapter 8: Architecture
-* 1-Files
-* 2-Writing Data on HDFS
-* 3-Shared Nothing Cluster
diff --git a/docs/Documentation/UserGuide/0-Get Started/1-QuickStart.md b/docs/Documentation/UserGuide/0-Get Started/1-QuickStart.md
index f6e2300..a1c2f0e 100755
--- a/docs/Documentation/UserGuide/0-Get Started/1-QuickStart.md	
+++ b/docs/Documentation/UserGuide/0-Get Started/1-QuickStart.md	
@@ -7,9 +7,9 @@
     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
@@ -19,29 +19,27 @@
 
 -->
 
-<!-- TOC -->
+# Quick Start
 
 ## Outline
 
 - Quick Start
- - Prerequisites
- - Installation
-    - Build from source
-       - Configurations
- - Start
-    - Start IoTDB
-    - Use IoTDB
-       - Use Cli
-       - Basic commands for IoTDB
-    - Stop IoTDB
- - Only build server
- - Only build client
- 
-<!-- /TOC -->
+- Prerequisites
+- Installation
+  - Build from source
+    - Configurations
+- Start
+  - Start IoTDB
+  - Use IoTDB
+    - Use Cli
+    - Basic commands for IoTDB
+  - Stop IoTDB
+- Only build server
+- Only build client
 
-# Quick Start
+<!-- /TOC -->
 
-This short guide will walk you through the basic process of using IoTDB. For a more-complete guide, please visit our website's [User Guide](https://iotdb.apache.org/#/Documents/progress/chap1/sec1).
+This short guide will walk you through the basic process of using IoTDB. For a more-complete guide, please visit our website's [User Guide](/document/master/UserGuide/1-Overview/1-What%20is%20IoTDB.html).
 
 ## Prerequisites
 
@@ -64,7 +62,7 @@ Here in the Quick Start, we give a brief introduction to install IoTDB. For furt
 ## Download
 
 You can download the binary file from:
-[Here](https://iotdb.apache.org/#/Download)
+[Here](/download/)
 
 ## Configurations
 
@@ -74,7 +72,7 @@ configuration files are under "conf" folder
   * system config module (`tsfile-format.properties`, `iotdb-engine.properties`)
   * log config module (`logback.xml`). 
 
-For more, see [Chapter3: Server](https://iotdb.apache.org/#/Documents/progress/chap3/sec1) in detail.
+For more, see [Chapter3: Server](/document/master/UserGuide/3-Server/1-Download.html) in detail.
 
 ## Start
 
@@ -158,13 +156,13 @@ storage group number = 1
 ```
 
 After the storage group is set, we can use CREATE TIMESERIES to create new timeseries. When we create a timeseries, we should define its data type and the encoding scheme. We create two timeseries as follow:
- 
+
 ```
 IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
 IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE
 ```
 
-In order to query the specific timeseries, we can use SHOW TIMESERIES <Path>. <Path> represent the path of the timeseries. Its default value is null, which means quering all the timeseries in the system(the same as using "SHOW TIMESERIES root"). Here are the examples:
+In order to query the specific timeseries, we can use SHOW TIMESERIES \<Path\>. \<Path\> represent the path of the timeseries. Its default value is null, which means quering all the timeseries in the system(the same as using "SHOW TIMESERIES root"). Here are the examples:
 
 1. Querying all timeseries in the system:
 
@@ -232,7 +230,7 @@ or
 IoTDB> exit
 ```
 
-For more on what commands are supported by IoTDB SQL, see [SQL Reference](https://iotdb.apache.org/#/Documents/progress/chap5/sec4).
+For more on what commands are supported by IoTDB SQL, see [SQL Reference](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html).
 
 ### Stop IoTDB
 
diff --git a/docs/Documentation/UserGuide/0-Get Started/2-Frequently asked questions.md b/docs/Documentation/UserGuide/0-Get Started/2-Frequently asked questions.md
index 9547e81..2eda39c 100644
--- a/docs/Documentation/UserGuide/0-Get Started/2-Frequently asked questions.md	
+++ b/docs/Documentation/UserGuide/0-Get Started/2-Frequently asked questions.md	
@@ -7,9 +7,9 @@
     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
@@ -21,20 +21,20 @@
 
 <!-- TOC -->
 
+<!-- /TOC -->
+# Frequently Asked Questions
+
 ## Outline
 
 - Frequently Asked Questions
-    - How can I identify my version of IoTDB?
-    - Where can I find IoTDB logs?
-    - Where can I find IoTDB data files?
-    - How do I know how many time series are stored in IoTDB?
-    - Can I use Hadoop and Spark to read TsFile in IoTDB?
-    - How does IoTDB handle duplicate points?
-    - How can I tell what type of the specific timeseries?
-    - How can I change IoTDB's Client time display format?
-
-<!-- /TOC -->
-# Frequently Asked Questions
+  - How can I identify my version of IoTDB?
+  - Where can I find IoTDB logs?
+  - Where can I find IoTDB data files?
+  - How do I know how many time series are stored in IoTDB?
+  - Can I use Hadoop and Spark to read TsFile in IoTDB?
+  - How does IoTDB handle duplicate points?
+  - How can I tell what type of the specific timeseries?
+  - How can I change IoTDB's Client time display format?
 
 ## How can I identify my version of IoTDB?
 
diff --git a/docs/Documentation/UserGuide/1-Overview/1-What is IoTDB.md b/docs/Documentation/UserGuide/1-Overview/1-What is IoTDB.md
index 1dffb35..b2d027e 100644
--- a/docs/Documentation/UserGuide/1-Overview/1-What is IoTDB.md	
+++ b/docs/Documentation/UserGuide/1-Overview/1-What is IoTDB.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# Chapter 1: Overview
-
-## What is IoTDB
+# What is IoTDB
 
 IoTDB(Internet of Things Database) is an integrated data management engine designed for timeseries data, which can provide users specific services for data collection, storage and analysis. Due to its light weight structure, high performance and usable features together with its intense integration with Hadoop and Spark ecology, IoTDB meets the requirements of massive dataset storage, high-speed data input and complex data analysis in the IoT industrial field.
diff --git a/docs/Documentation/UserGuide/1-Overview/2-Architecture.md b/docs/Documentation/UserGuide/1-Overview/2-Architecture.md
index c03af1a..fb9d870 100644
--- a/docs/Documentation/UserGuide/1-Overview/2-Architecture.md
+++ b/docs/Documentation/UserGuide/1-Overview/2-Architecture.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 1: Overview
-
-## Architecture
+# Architecture
 
 Besides IoTDB engine, we also developed several components to provide better IoT service. All components are referred to below as the IoTDB suite, and IoTDB refers specifically to the IoTDB engine.
 
diff --git a/docs/Documentation/UserGuide/1-Overview/3-Scenario.md b/docs/Documentation/UserGuide/1-Overview/3-Scenario.md
index bac5ec9..ed2b6f5 100644
--- a/docs/Documentation/UserGuide/1-Overview/3-Scenario.md
+++ b/docs/Documentation/UserGuide/1-Overview/3-Scenario.md
@@ -7,9 +7,9 @@
     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
@@ -19,11 +19,9 @@
 
 -->
 
-# Chapter 1: Overview
-
-## Scenario
+# Scenario
 
-### Scenario 1
+## Scenario 1
 
 A company uses surface mount technology (SMT) to produce chips: it is necessary to first print solder paste on the joints of the chip, then place the components on the solder paste, and then melt the solder paste by heating and cool it. Finally, the components are soldered to the chip. 
 
@@ -39,7 +37,7 @@ In this scenario, only TsFile and TsFileSync are required to be deployed on a PC
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51579026-77ad1580-1efa-11e9-8345-564b22d70286.jpg">
 
-### Scenario 2
+## Scenario 2
 
 A company has several wind turbines which are installed hundreds of sensors on each generator to collect information such as the working status of the generator and the wind speed in the working environment.
 
@@ -51,7 +49,7 @@ In this situation, IoTDB, TsFileSync tools, and Hadoop/Spark integration compone
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51579064-8f849980-1efa-11e9-8cd6-a7339cd0540f.jpg">
 
-### Scenario 3
+## Scenario 3
 
 A factory has a variety of robotic equipment within the plant area. These robotic equipment have limited hardware and are difficult to carry complex applications. 
 
@@ -65,7 +63,7 @@ At this point, IoTDB, IoTDB-Client tools, TsFileSync tools, and Hadoop/Spark int
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51579085-9dd2b580-1efa-11e9-97b9-f56bc8d342b0.jpg">
 
-### Scenario 4
+## Scenario 4
 
 A car company installed sensors on its cars to collect monitoring information such as the driving status of the vehicle. These automotive devices have limited hardware configurations and are difficult to carry complex applications. Cars with sensors can be connected to each other or send data via narrow-band IoT.
 
diff --git a/docs/Documentation/UserGuide/1-Overview/4-Features.md b/docs/Documentation/UserGuide/1-Overview/4-Features.md
index f60ddc3..44ba205 100644
--- a/docs/Documentation/UserGuide/1-Overview/4-Features.md
+++ b/docs/Documentation/UserGuide/1-Overview/4-Features.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 1: Overview
-
-## Features
+# Features
 
 
 * Flexible deployment. 
diff --git a/docs/Documentation/UserGuide/2-Concept/1-Data Model and Terminology.md b/docs/Documentation/UserGuide/2-Concept/1-Data Model and Terminology.md
index d5d0870..268264b 100644
--- a/docs/Documentation/UserGuide/2-Concept/1-Data Model and Terminology.md	
+++ b/docs/Documentation/UserGuide/2-Concept/1-Data Model and Terminology.md	
@@ -7,9 +7,9 @@
     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
@@ -19,17 +19,17 @@
 
 -->
 
-# Chapter 2: Concept
-## Data Model and Terminology
+# Data Model and Terminology
+
 To make this manual more practical, we will use a specific scenario example to illustrate how to operate IoTDB databases at all stages of use. See [this page](https://github.com/apache/incubator-iotdb/blob/master/docs/Documentation/OtherMaterial-Sample%20Data.txt) for a look. For convenience, we also provide you with a sample data file in real scenario to import into the IoTDB system for trial and operation.
 
 Download file: [IoTDB-SampleData.txt](https://raw.githubusercontent.com/apache/incubator-iotdb/master/docs/Documentation/OtherMaterial-Sample%20Data.txt).
 
 According to the data attribute layers described in [sample data](https://raw.githubusercontent.com/apache/incubator-iotdb/master/docs/Documentation/OtherMaterial-Sample%20Data.txt), we can express it as an attribute hierarchy structure based on the coverage of attributes and the subordinate relationship between them, as shown in Figure 2.1 below. Its hierarchical relationship is: power group layer - power plant layer - device layer - sensor layer. ROOT is the root node, and each node of [...]
 
-<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg">
+<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg"></center>
 
-**Figure 2.1 Attribute hierarchy structure**</center>
+**Figure 2.1 Attribute hierarchy structure**
 
 After getting the name of the timeseries, we need to set up the storage group according to the actual scenario and scale of the data. Because in the scenario of this chapter data is usually arrived in the unit of groups (i.e., data may be across electric fields and devices), in order to avoid frequent switching of IO when writing data, and to meet the user's requirement of physical isolation of data in the unit of  groups, we set the storage group at the group layer.
 
@@ -191,27 +191,27 @@ Relative time refers to the time relative to the server time ```now()``` and ```
   Duration = (Digit+ ('Y'|'MO'|'W'|'D'|'H'|'M'|'S'|'MS'|'US'|'NS'))+
   RelativeTime = (now() | DATETIME) ((+|-) Duration)+
         
-  ```
-  
+ ```
+
   <center>**The syntax of the duration unit**
-  
-  |Symbol|Meaning|Presentation|Examples|
-  |:---:|:---:|:---:|:---:|
-  |y|year|1y=365 days|1y|
-  |mo|month|1mo=30 days|1mo|
-  |w|week|1w=7 days|1w|
-  |d|day|1d=1 day|1d|
-  |||||
-  |h|hour|1h=3600 seconds|1h|
-  |m|minute|1m=60 seconds|1m|
-  |s|second|1s=1 second|1s|
-  |||||
-  |ms|millisecond|1ms=1000_000 nanoseconds|1ms|
-  |us|microsecond|1us=1000 nanoseconds|1us|
-  |ns|nanosecond|1ns=1 nanosecond|1ns|  
-  
+
+|Symbol|Meaning|Presentation|Examples|
+|:---:|:---:|:---:|:---:|
+|y|year|1y=365 days|1y|
+|mo|month|1mo=30 days|1mo|
+|w|week|1w=7 days|1w|
+|d|day|1d=1 day|1d|
+|||||
+|h|hour|1h=3600 seconds|1h|
+|m|minute|1m=60 seconds|1m|
+|s|second|1s=1 second|1s|
+|||||
+|ms|millisecond|1ms=1000_000 nanoseconds|1ms|
+|us|microsecond|1us=1000 nanoseconds|1us|
+|ns|nanosecond|1ns=1 nanosecond|1ns|
+
   </center>
-  
+
   eg:
   ```
   now() - 1d2h //1 day and 2 hours earlier than the current server time
diff --git a/docs/Documentation/UserGuide/2-Concept/2-Data Type.md b/docs/Documentation/UserGuide/2-Concept/2-Data Type.md
index 7d2523d..2a0262e 100644
--- a/docs/Documentation/UserGuide/2-Concept/2-Data Type.md	
+++ b/docs/Documentation/UserGuide/2-Concept/2-Data Type.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,8 @@
 
 -->
 
-# Chapter 2: Concept
+# Data Type
 
-## Data Type
 IoTDB supports six data types in total:
 * BOOLEAN (Boolean)
 * INT32 (Integer)
@@ -31,7 +30,7 @@ IoTDB supports six data types in total:
 * TEXT (String).
 
 
-The time series of **FLOAT** and **DOUBLE** type can specify (MAX\_POINT\_NUMBER, see [this page](/#/Documents/progress/chap5/sec4) for more information on how to specify), which is the number of digits after the decimal point of the floating point number, if the encoding method is [RLE](/#/Documents/progress/chap2/sec3) or [TS\_2DIFF](/#/Documents/progress/chap2/sec3) (Refer to [Create Timeseries Statement](/#/Documents/progress/chap5/sec4) for more information on how to specify). If MA [...]
+The time series of **FLOAT** and **DOUBLE** type can specify (MAX\_POINT\_NUMBER, see [this page](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) for more information on how to specify), which is the number of digits after the decimal point of the floating point number, if the encoding method is [RLE](/document/master/UserGuide/2-Concept/3-Encoding.html) or [TS\_2DIFF](/#/Documents/progress/chap2/sec3) (Refer to [Create Timeseries Statement](/document/master/UserG [...]
 
 * For Float data value, The data range is (-Integer.MAX_VALUE, Integer.MAX_VALUE), rather than Float.MAX_VALUE, and the max_point_number is 19, it is because of the limition of function Math.round(float) in Java.
 * For Double data value, The data range is (-Long.MAX_VALUE, Long.MAX_VALUE), rather than Double.MAX_VALUE, and the max_point_number is 19, it is because of the limition of function Math.round(double) in Java (Long.MAX_VALUE=9.22E18).
diff --git a/docs/Documentation/UserGuide/2-Concept/3-Encoding.md b/docs/Documentation/UserGuide/2-Concept/3-Encoding.md
index d6a9675..a1f403c 100644
--- a/docs/Documentation/UserGuide/2-Concept/3-Encoding.md
+++ b/docs/Documentation/UserGuide/2-Concept/3-Encoding.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,8 @@
 
 -->
 
-# Chapter 2: Concept
+# Encoding 
 
-## Encoding 
 In order to improve the efficiency of data storage, it is necessary to encode data during data writing, thereby reducing the amount of disk space used. In the process of writing and reading data, the amount of data involved in the I/O operations can be reduced to improve performance. IoTDB supports four encoding methods for different types of data:
 
 * PLAIN
@@ -36,7 +35,7 @@ Second-order differential encoding is more suitable for encoding monotonically i
 
 Run-length encoding is more suitable for storing sequence with continuous integer values, and is not recommended for sequence data with most of the time different values.
 
-Run-length encoding can also be used to encode floating-point numbers, but it is necessary to specify reserved decimal digits (MAX\_POINT\_NUMBER, see [this page](/#/Documents/progress/chap5/sec4) for more information on how to specify) when creating time series. It is more suitable for storing sequence data where floating-point values appear continuously, monotonously increasing or decreasing, and it is not suitable for storing sequence data with high precision requirements after the de [...]
+Run-length encoding can also be used to encode floating-point numbers, but it is necessary to specify reserved decimal digits (MAX\_POINT\_NUMBER, see [this page](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) for more information on how to specify) when creating time series. It is more suitable for storing sequence data where floating-point values appear continuously, monotonously increasing or decreasing, and it is not suitable for storing sequence data with hi [...]
 
 * GORILLA
 
diff --git a/docs/Documentation/UserGuide/2-Concept/4-Compression.md b/docs/Documentation/UserGuide/2-Concept/4-Compression.md
index 908f03c..1a45352 100644
--- a/docs/Documentation/UserGuide/2-Concept/4-Compression.md
+++ b/docs/Documentation/UserGuide/2-Concept/4-Compression.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 2: Concept
-
-## Compression
+# Compression
 
 When the time series is written and encoded as binary data according to the specified type, IoTDB compresses the data using compression technology to further improve space storage efficiency. Although both encoding and compression are designed to improve storage efficiency, encoding techniques are usually only available for specific data types (e.g., second-order differential encoding is only suitable for INT32 or INT64 data type, and storing floating-point numbers requires multiplying t [...]
 
@@ -31,4 +29,4 @@ IoTDB allows you to specify the compression method of the column when creating a
 
 * SNAPPY
 
-The specified syntax for compression is detailed in [Create Timeseries Statement](/#/Documents/progress/chap5/sec4).
+The specified syntax for compression is detailed in [Create Timeseries Statement](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html).
diff --git a/docs/Documentation/UserGuide/3-Server/1-Download.md b/docs/Documentation/UserGuide/3-Server/1-Download.md
index 95fc8ad..d548c59 100644
--- a/docs/Documentation/UserGuide/3-Server/1-Download.md
+++ b/docs/Documentation/UserGuide/3-Server/1-Download.md
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 3: Server
-
-## Download
+# Download
 
 IoTDB provides you three installation methods, you can refer to the following suggestions, choose one of them:
 
@@ -29,7 +27,7 @@ IoTDB provides you three installation methods, you can refer to the following su
 * Installation from binary files. Download the binary files from the official website. This is the recommended method, in which you will get a binary released package which is out-of-the-box.(Comming Soon...)
 * Using Docker:The path to the dockerfile is https://github.com/apache/incubator-iotdb/blob/master/docker/Dockerfile
 
-### Prerequisites
+## Prerequisites
 
 To use IoTDB, you need to have:
 
@@ -38,12 +36,13 @@ To use IoTDB, you need to have:
 3. Set the max open files num as 65535 to avoid "too many open files" problem.
 
 >Note: If you don't have maven installed, you should replace 'mvn' in the following commands with 'mvnw.sh' or 'mvnw.cmd'.
-### Installation from  binary files
+>
+>### Installation from  binary files
 
 You can download the binary file from:
-[Here](https://iotdb.apache.org/#/Download)
+[Here](/download/)
 
-### Installation from source code
+## Installation from source code
 
 You can get the released source code from https://iotdb.apache.org/#/Download, or from the git repository https://github.com/apache/incubator-iotdb/tree/master
 You can download the source code from:
@@ -70,6 +69,6 @@ If you would like to build the IoTDB server, you can run the following command u
 
 After build, the IoTDB server will be at the folder "server/target/iotdb-server-{project.version}". 
 
-### Installation by Docker (Dockerfile)
+## Installation by Docker (Dockerfile)
 
-You can build and run a IoTDB docker image by following the guide of [Deployment by Docker](/#/Documents/progress/chap3/sec5)
+You can build and run a IoTDB docker image by following the guide of [Deployment by Docker](/document/master/UserGuide/3-Server/5-Docker%20Image.html)
diff --git a/docs/Documentation/UserGuide/3-Server/2-Single Node Setup.md b/docs/Documentation/UserGuide/3-Server/2-Single Node Setup.md
index 28dabc6..4cd994f 100644
--- a/docs/Documentation/UserGuide/3-Server/2-Single Node Setup.md	
+++ b/docs/Documentation/UserGuide/3-Server/2-Single Node Setup.md	
@@ -7,9 +7,9 @@
     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
@@ -18,8 +18,8 @@
     under the License.
 
 -->
-# Chapter 3: Server
-## Single Node Setup
+
+# Single Node Setup
 
 Users can start IoTDB by the start-server script under the sbin folder.
 
diff --git a/docs/Documentation/UserGuide/3-Server/3-Cluster Setup.md b/docs/Documentation/UserGuide/3-Server/3-Cluster Setup.md
index 57a1ee5..b1e18a8 100644
--- a/docs/Documentation/UserGuide/3-Server/3-Cluster Setup.md	
+++ b/docs/Documentation/UserGuide/3-Server/3-Cluster Setup.md	
@@ -7,9 +7,9 @@
     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
@@ -18,7 +18,7 @@
     under the License.
 
 -->
-# Chapter 3: Server
-## Cluster Setup
+
+# Cluster Setup
 
 Comming soon...
diff --git a/docs/Documentation/UserGuide/3-Server/4-Config Manual.md b/docs/Documentation/UserGuide/3-Server/4-Config Manual.md
index 9f74764..dc14a60 100644
--- a/docs/Documentation/UserGuide/3-Server/4-Config Manual.md	
+++ b/docs/Documentation/UserGuide/3-Server/4-Config Manual.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 3: Server
-
-## Config Manual
+# Config Manual
 
 
 Before starting to use IoTDB, you need to config the configuration files first. For your convenience, we have already set the default config in the files.
@@ -31,19 +29,19 @@ In total, we provide users three kinds of configurations module:
 * environment configuration file (`iotdb-env.bat`, `iotdb-env.sh`). The default configuration file for the environment configuration item. Users can configure the relevant system configuration items of JAVA-JVM in the file.
 * system configuration file (`iotdb-engine.properties`). 
 	* `iotdb-engine.properties`: The default configuration file for the IoTDB engine layer configuration item. Users can configure the IoTDB engine related parameters in the file, such as JDBC service listening port (`rpc_port`), unsequence data storage directory (`unsequence_data_dir`), etc. What's more, Users can configure the information about the TsFile, such as the data size written to the disk per time(`group_size_in_byte`). 
-                                                                                                                                                                                                                                                                                                                   	
+  
 * log configuration file (`logback.xml`)
 
 The configuration files of the three configuration items are located in the IoTDB installation directory: `$IOTDB_HOME/conf` folder.
 
-### Hot Modification Configuration
+## Hot Modification Configuration
 
 For the convenience of users, IoTDB server provides users with hot modification function, that is, modifying some configuration parameters in `iotdb engine. Properties` during the system operation and applying them to the system immediately. 
 In the parameters described below, these parameters whose way of `Effective` is `trigger` support hot modification.
 
 Trigger way: The client sends the command `load configuration` to the IoTDB server. See Chapter 4 for the usage of the client.
 
-### IoTDB Environment Configuration File
+## IoTDB Environment Configuration File
 
 The environment configuration file is mainly used to configure the Java environment related parameters when IoTDB Server is running, such as JVM related configuration. This part of the configuration is passed to the JVM when the IoTDB Server starts. Users can view the contents of the environment configuration file by viewing the `iotdb-env.sh` (or `iotdb-env.bat`) file.
 
@@ -86,9 +84,9 @@ The detail of each variables are as follows:
 |Default| On Linux or MacOS, the default is min{cores * 100M, one quarter of MAX\_HEAP\_SIZE}. On Windows, the default value for 32-bit systems is 512M, and the default for 64-bit systems is 2G.|
 |Effective|After restart system|
 
-### IoTDB System Configuration File
+## IoTDB System Configuration File
 
-#### File Layer
+### File Layer
 
 * compressor
 
@@ -171,7 +169,7 @@ The detail of each variables are as follows:
 |Default| The default is 2 digits. Note: The 32-bit floating point number has a decimal precision of 7 bits, and the 64-bit floating point number has a decimal precision of 15 bits. If the setting is out of the range, it will have no practical significance. |
 |Effective|Trigger|
 
-#### Engine Layer
+### Engine Layer
 
 * rpc\_address
 
@@ -259,7 +257,7 @@ The detail of each variables are as follows:
 
 |Name| multi\_dir\_strategy |
 |:---:|:---|
-|Description| IoTDB's strategy for selecting directories for TsFile in tsfile_dir. You can use a simple class name or a full name of the class. The system provides the following three strategies: <br>1. SequenceStrategy: IoTDB selects the directory from tsfile\_dir in order, traverses all the directories in tsfile\_dir in turn, and keeps counting;<br>2. MaxDiskUsableSpaceFirstStrategy: IoTDB first selects the directory with the largest free disk space in tsfile\_dir;<br>3. MinFolderOccup [...]
+|Description| IoTDB's strategy for selecting directories for TsFile in tsfile_dir. You can use a simple class name or a full name of the class. The system provides the following three strategies: <br>1. SequenceStrategy: IoTDB selects the directory from tsfile\_dir in order, traverses all the directories in tsfile\_dir in turn, and keeps counting;<br>2. MaxDiskUsableSpaceFirstStrategy: IoTDB first selects the directory with the largest free disk space in tsfile\_dir;<br>3. MinFolderOccup [...]
 |Type|String|
 |Default| MaxDiskUsableSpaceFirstStrategy |
 |Effective|Trigger|
diff --git a/docs/Documentation/UserGuide/3-Server/5-Docker Image.md b/docs/Documentation/UserGuide/3-Server/5-Docker Image.md
index 46a8690..9c4f8a6 100644
--- a/docs/Documentation/UserGuide/3-Server/5-Docker Image.md	
+++ b/docs/Documentation/UserGuide/3-Server/5-Docker Image.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,8 @@
 
 -->
 
-# Chapter 3: Server
+# Docker Image
 
-## Docker Image
 Now a Dockerfile has been written at docker/src/main/Dockerfile.
 
 1. You can build a docker image by: 
diff --git a/docs/Documentation/UserGuide/4-Client/1-Command Line Interface (CLI).md b/docs/Documentation/UserGuide/4-Client/1-Command Line Interface.md
similarity index 97%
rename from docs/Documentation/UserGuide/4-Client/1-Command Line Interface (CLI).md
rename to docs/Documentation/UserGuide/4-Client/1-Command Line Interface.md
index f306722..51c3169 100644
--- a/docs/Documentation/UserGuide/4-Client/1-Command Line Interface (CLI).md	
+++ b/docs/Documentation/UserGuide/4-Client/1-Command Line Interface.md	
@@ -7,9 +7,9 @@
     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
@@ -18,16 +18,16 @@
     under the License.
 
 -->
-# Chapter 4: Client
+
+# Command Line Interface(CLI)
+
 ## Outline
-<!-- TOC -->
+
 - Command Line Interface(CLI)
-    - Running Cli/Shell
-    - Cli/Shell Parameters
-    - Cli/shell tool with -e parameter
+  - Running Cli/Shell
+  - Cli/Shell Parameters
+  - Cli/shell tool with -e parameter
 
-<!-- /TOC -->
-# Command Line Interface(CLI)
 IoTDB provides Cli/shell tools for users to interact with IoTDB server in command lines. This document will show how Cli/shell tool works and what does it parameters mean.
 
 > Note: In this document, \$IOTDB\_HOME represents the path of the IoTDB installation directory.
diff --git a/docs/Documentation/UserGuide/4-Client/2-Programming - Native API.md b/docs/Documentation/UserGuide/4-Client/2-Programming - Native API.md
index ac72ebe..79ea6f7 100644
--- a/docs/Documentation/UserGuide/4-Client/2-Programming - Native API.md	
+++ b/docs/Documentation/UserGuide/4-Client/2-Programming - Native API.md	
@@ -19,7 +19,6 @@
 
 -->
 
-# Chapter 4: Client
 # Programming - Native API
 ## Usage
 
@@ -77,44 +76,62 @@ Here we show the commonly used interfaces and their parameters in the Native API
 * Delete one or several storage groups
 
   ​	TSStatus deleteStorageGroup(String storageGroup)
-  
-  	TSStatus deleteStorageGroups(List<String> storageGroups)
+
+  ```
+  TSStatus deleteStorageGroups(List<String> storageGroups)
+  ```
 
 * Create one timeseries under a existing storage group
 
-  ​	TSStatus createTimeseries(String path, TSDataType dataType, TSEncoding encoding, CompressionType compressor)
+  ```
+  TSStatus createTimeseries(String path, TSDataType dataType, TSEncoding encoding, CompressionType compressor)
+  ```
 
 * Delete one or several timeseries
 
   ​	TSStatus deleteTimeseries(String path)
-  
-  	TSStatus deleteTimeseries(List<String> paths)
+
+  ```java
+  TSStatus deleteTimeseries(List<String> paths)
+  ```
 
 * Delete one or several timeseries before a certain timestamp
 
   ​	TSStatus deleteData(String path, long time)
-  
-  	TSStatus deleteData(List<String> paths, long time)
- 
+
+  ```
+  TSStatus deleteData(List<String> paths, long time)
+  ```
+
 * Insert data into existing timeseries in batch
- 
-   ​	TSStatus insertInBatch(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, List<List<String>> valuesList)
+
+   ```java
+   	TSStatus insertInBatch(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, List<List<String>> valuesList)
+   ```
 
 * Insert data into existing timeseries
 
-  ​	TSStatus insert(String deviceId, long time, List<String> measurements, List<String> values)
+  ```
+  	TSStatus insert(String deviceId, long time, List<String> measurements, List<String> values)
+  ```
 
 * Batch insertion into timeseries
 
-  ​	TSExecuteBatchStatementResp insertBatch(RowBatch rowBatch)
-  
+  ```
+  TSExecuteBatchStatementResp insertBatch(RowBatch rowBatch)
+  ```
+
 * Test Insert data into existing timeseries in batch. This method NOT insert data into database and server just return after accept the request, this method should be used to test other time cost in client
- 
-   ​	TSStatus testInsertInBatch(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, List<List<String>> valuesList)
+
+   ```
+   TSStatus testInsertInBatch(List<String> deviceIds, List<Long> times, List<List<String>> measurementsList, List<List<String>> valuesList)
+   ```
 
 * Insert data into existing timeseries. This method NOT insert data into database and server just return after accept the request, this method should be used to test other time cost in client
 
-  ​	TSStatus testInsert(String deviceId, long time, List<String> measurements, List<String> values)
+  ```
+  TSStatus testInsert(String deviceId, long time, List<String> measurements, List<String> values)
+  ```
 
 * Batch insertion into timeseries. This method NOT insert data into database and server just return after accept the request, this method should be used to test other time cost in client
 
diff --git a/docs/Documentation/UserGuide/4-Client/3-Programming - JDBC.md b/docs/Documentation/UserGuide/4-Client/3-Programming - JDBC.md
index b56996f..77925f3 100644
--- a/docs/Documentation/UserGuide/4-Client/3-Programming - JDBC.md	
+++ b/docs/Documentation/UserGuide/4-Client/3-Programming - JDBC.md	
@@ -19,7 +19,6 @@
 
 -->
 
-# Chapter4: Client
 # Programming - JDBC
 
 ## Usage
diff --git a/docs/Documentation/UserGuide/4-Client/4-Programming - Other Languages.md b/docs/Documentation/UserGuide/4-Client/4-Programming - Other Languages.md
index 0d34de8..005289a 100644
--- a/docs/Documentation/UserGuide/4-Client/4-Programming - Other Languages.md	
+++ b/docs/Documentation/UserGuide/4-Client/4-Programming - Other Languages.md	
@@ -19,8 +19,6 @@
 
 -->
 
-# Chapter 4: Client
-
 # Programming - Other Languages
 
 ## Python API
diff --git a/docs/Documentation/UserGuide/4-Client/5-Programming - TsFile API.md b/docs/Documentation/UserGuide/4-Client/5-Programming - TsFile API.md
index 7838218..69378ea 100644
--- a/docs/Documentation/UserGuide/4-Client/5-Programming - TsFile API.md	
+++ b/docs/Documentation/UserGuide/4-Client/5-Programming - TsFile API.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,6 @@
 
 -->
 
-# Chapter 4: Client
 # Programming - TsFile API
 
 TsFile is a file format of Time Series we used in IoTDB. In this section, we would like to introduce the usage of this file format. 
@@ -40,35 +39,36 @@ There are two ways to use TsFile in your own project.
 	
 * Using as a maven dependency: 
 
-	Compile source codes and deploy to your local repository in three steps:
+  Compile source codes and deploy to your local repository in three steps:
 
-	* Get the source codes
-	
-		```
-		git clone https://github.com/apache/incubator-iotdb.git
-		```
-	* Compile the source codes and deploy 
-		
-		```
-		cd tsfile/
-		mvn clean install -Dmaven.test.skip=true
-		```
-	* add dependencies into your project:
-	
-	  ```
-		 <dependency>
-		   <groupId>org.apache.iotdb</groupId>
-		   <artifactId>tsfile</artifactId>
-		   <version>0.10.0</version>
-		 </dependency>
-	  ```
-	  
-	Or, you can download the dependencies from official Maven repository:
-	
-	* First, find your maven `settings.xml` on path: `${username}\.m2\settings.xml`
-	  , add this `<profile>` to `<profiles>`:
-	  ```
-	    <profile>
+  * Get the source codes
+
+  	```
+  	git clone https://github.com/apache/incubator-iotdb.git
+  	```
+  * Compile the source codes and deploy 
+  	
+  	```
+  	cd tsfile/
+  	mvn clean install -Dmaven.test.skip=true
+  	```
+  * add dependencies into your project:
+
+    ```
+  	 <dependency>
+  	   <groupId>org.apache.iotdb</groupId>
+  	   <artifactId>tsfile</artifactId>
+  	   <version>0.10.0</version>
+  	 </dependency>
+    ```
+    
+
+  Or, you can download the dependencies from official Maven repository:
+
+  * First, find your maven `settings.xml` on path: `${username}\.m2\settings.xml`
+    , add this `<profile>` to `<profiles>`:
+    ```
+      <profile>
            <id>allow-snapshots</id>
               <activation><activeByDefault>true</activeByDefault></activation>
            <repositories>
@@ -85,16 +85,16 @@ There are two ways to use TsFile in your own project.
               </repository>
            </repositories>
          </profile>
-	  ```
-	* Then add dependencies into your project:
-	
-	  ```
-		 <dependency>
-		   <groupId>org.apache.iotdb</groupId>
-		   <artifactId>tsfile</artifactId>
-		   <version>0.10.0</version>
-		 </dependency>
-	  ```
+    ```
+  * Then add dependencies into your project:
+
+    ```
+  	 <dependency>
+  	   <groupId>org.apache.iotdb</groupId>
+  	   <artifactId>tsfile</artifactId>
+  	   <version>0.10.0</version>
+  	 </dependency>
+    ```
 
 ## TSFile Usage
 This section demonstrates the detailed usages of TsFile.
@@ -116,7 +116,7 @@ with three measurements named "sensor\_1", "sensor\_2" and "sensor\_3".
 <table style="text-align:center">
     <tr><th colspan="6">device_1</th></tr>
     <tr><th colspan="2">sensor_1</th><th colspan="2">sensor_2</th><th colspan="2">sensor_3</th></tr>
-    <tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</td>
+    <tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
     <tr><td>1</td><td>1.2</td><td>1</td><td>20</td><td>2</td><td>50</td></tr>
     <tr><td>3</td><td>1.4</td><td>2</td><td>20</td><td>4</td><td>51</td></tr>
     <tr><td>5</td><td>1.1</td><td>3</td><td>21</td><td>6</td><td>52</td></tr>
@@ -150,7 +150,7 @@ device_1, 1490860659000, m1, 10, m2, 12.12
 A TsFile can be generated by following three steps and the complete code will be given in the section "Example for writing TsFile".
 
 * First, construct a `TsFileWriter` instance.
-    
+  
     Here are the available constructors:
     
     * Without pre-defined schema
@@ -186,7 +186,7 @@ A TsFile can be generated by following three steps and the complete code will be
     * config : The config of TsFile.
 
 * Second, add measurements
-    
+  
     Or you can make an instance of class `Schema` first and pass this to the constructor of class `TsFileWriter`
     
     The class `Schema` contains a map whose key is the name of one measurement schema, and the value is the schema itself.
@@ -207,7 +207,7 @@ A TsFile can be generated by following three steps and the complete code will be
     ```
     
     You can always use the following interface in `TsFileWriter` class to add additional measurements: 
-        
+    ​    
     ```
     public void addMeasurement(MeasurementSchema measurementSchema) throws WriteProcessException
     ```
@@ -221,12 +221,12 @@ A TsFile can be generated by following three steps and the complete code will be
     ```
     
     **Parameters:**
-        
+    ​    
     * measurementID: The name of this measurement, typically the name of the sensor.
-        
+      
     * type: The data type, now support six types: `BOOLEAN`, `INT32`, `INT64`, `FLOAT`, `DOUBLE`, `TEXT`;
     
-    * encoding: The data encoding. See [Chapter 2-3](/#/Documents/progress/chap2/sec3).
+    * encoding: The data encoding. See [Chapter 2-3](/document/master/UserGuide/2-Concept/3-Encoding.html).
     
     * compression: The data compression. Now supports `UNCOMPRESSED` and `SNAPPY`.
     
@@ -236,14 +236,14 @@ A TsFile can be generated by following three steps and the complete code will be
     > **Notice:** Although one measurement name can be used in multiple deltaObjects, the properties cannot be changed. I.e. 
         it's not allowed to add one measurement name for multiple times with different type or encoding.
         Here is a bad example:
-        
+    
         // The measurement "sensor_1" is float type
         addMeasurement(new MeasurementSchema("sensor_1", TSDataType.FLOAT, TSEncoding.RLE));
         
         // This call will throw a WriteProcessException exception
         addMeasurement(new MeasurementSchema("sensor_1", TSDataType.INT32, TSEncoding.RLE));
 * Third, insert and write data continually.
-    
+  
     Use this interface to create a new `TSRecord`(a timestamp and device pair).
     
     ```
@@ -259,7 +259,7 @@ A TsFile can be generated by following three steps and the complete code will be
     ```
     
 * Finally, call `close` to finish this writing process. 
-    
+  
     ```
     public void close() throws IOException
     ```
@@ -268,7 +268,9 @@ A TsFile can be generated by following three steps and the complete code will be
 
 You should install TsFile to your local maven repository.
 
-See reference: [Installation](./1-Installation.md)
+```
+mvn clean install -pl tsfile -am -DskipTests
+```
 
 You could write a TsFile by constructing **TSRecord** if you have the **non-aligned** (e.g. not all sensors contain values) time series data.
 
@@ -425,7 +427,7 @@ The set of time-series data in section "Time-series Data" is used here for a con
 <table style="text-align:center">
     <tr><th colspan="6">device_1</th></tr>
     <tr><th colspan="2">sensor_1</th><th colspan="2">sensor_2</th><th colspan="2">sensor_3</th></tr>
-    <tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</td>
+    <tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
     <tr><td>1</td><td>1.2</td><td>1</td><td>20</td><td>2</td><td>50</td></tr>
     <tr><td>3</td><td>1.4</td><td>2</td><td>20</td><td>4</td><td>51</td></tr>
     <tr><td>5</td><td>1.1</td><td>3</td><td>21</td><td>6</td><td>52</td></tr>
@@ -434,6 +436,7 @@ The set of time-series data in section "Time-series Data" is used here for a con
 <span>A set of time-series data</span>
 </center>
 
+
 #### Definition of Path
 
 A path is a dot-separated string which uniquely identifies a time-series in TsFile, e.g., "root.area_1.device_1.sensor_1". 
@@ -470,7 +473,7 @@ The `IExpression` is a filter expression interface and it will be passed to our
 We create one or more filter expressions and may use binary filter operators to link them to our final expression.
 
 * **Create a Filter Expression**
-    
+  
     There are two types of filters.
     
      * TimeFilter: A filter for `time` in time-series data.
@@ -480,19 +483,19 @@ We create one or more filter expressions and may use binary filter operators to
         Use the following relationships to get a `TimeFilter` object (value is a long int variable).
         <center>
         <table style="text-align:center">
-            <tr><th>Relationship</th><th>Description</td></tr>
-            <tr><td>TimeFilter.eq(value)</td><td>Choose the time equal to the value</td>
-            <tr><td>TimeFilter.lt(value)</td><td>Choose the time less than the value</td>
-            <tr><td>TimeFilter.gt(value)</td><td>Choose the time greater than the value</td>
-            <tr><td>TimeFilter.ltEq(value)</td><td>Choose the time less than or equal to the value</td>
-            <tr><td>TimeFilter.gtEq(value)</td><td>Choose the time greater than or equal to the value</td>
-            <tr><td>TimeFilter.notEq(value)</td><td>Choose the time not equal to the value</td>
-            <tr><td>TimeFilter.not(TimeFilter)</td><td>Choose the time not satisfy another TimeFilter</td>
+            <tr><th>Relationship</th><th>Description</th></tr>
+            <tr><td>TimeFilter.eq(value)</td><td>Choose the time equal to the value</td></tr>
+            <tr><td>TimeFilter.lt(value)</td><td>Choose the time less than the value</td></tr>
+            <tr><td>TimeFilter.gt(value)</td><td>Choose the time greater than the value</td></tr>
+            <tr><td>TimeFilter.ltEq(value)</td><td>Choose the time less than or equal to the value</td></tr>
+            <tr><td>TimeFilter.gtEq(value)</td><td>Choose the time greater than or equal to the value</td></tr>
+            <tr><td>TimeFilter.notEq(value)</td><td>Choose the time not equal to the value</td></tr>
+            <tr><td>TimeFilter.not(TimeFilter)</td><td>Choose the time not satisfy another TimeFilter</td></tr>
         </table>
         </center>
         
      * ValueFilter: A filter for `value` in time-series data.
-        
+       
         ```
         IExpression valueFilterExpr = new SingleSeriesExpression(Path, ValueFilter);
         ```
@@ -505,7 +508,7 @@ We create one or more filter expressions and may use binary filter operators to
 
      * BinaryExpression.and(Expression, Expression): Choose the value satisfy for both expressions.
      * BinaryExpression.or(Expression, Expression): Choose the value satisfy for at least one expression.
-     
+    
 
 ##### Filter Expression Examples
 
@@ -601,12 +604,12 @@ Here's the useful interfaces for user.
        DOUBLE,
        TEXT;
  * `RowRecord next() throws IOException;`
- 
+
     Get the next record.
     
     The class `RowRecord` consists of a `long` timestamp and a `List<Field>` for data in different sensors,
      we can use two getter methods to get them.
-     
+    
     ```
     long getTimestamp();
     List<Field> getFields();
diff --git a/docs/Documentation/UserGuide/4-Client/6-Status Codes.md b/docs/Documentation/UserGuide/4-Client/6-Status Codes.md
index 55a18f3..4c47d20 100644
--- a/docs/Documentation/UserGuide/4-Client/6-Status Codes.md	
+++ b/docs/Documentation/UserGuide/4-Client/6-Status Codes.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,6 @@
 
 -->
 
-# Chapter 4: Client
 # Status codes
 
 For each request, the client will receive a status code. 
diff --git a/docs/Documentation/UserGuide/5-Operation Manual/1-DDL (Data Definition Language).md b/docs/Documentation/UserGuide/5-Operation Manual/1-DDL Data Definition Language.md
similarity index 94%
rename from docs/Documentation/UserGuide/5-Operation Manual/1-DDL (Data Definition Language).md
rename to docs/Documentation/UserGuide/5-Operation Manual/1-DDL Data Definition Language.md
index b32ac9d..ba6ec98 100644
--- a/docs/Documentation/UserGuide/5-Operation Manual/1-DDL (Data Definition Language).md	
+++ b/docs/Documentation/UserGuide/5-Operation Manual/1-DDL Data Definition Language.md	
@@ -7,9 +7,9 @@
     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
@@ -19,10 +19,10 @@
 
 -->
 
-# Chapter 5: Operation Manual
 # DDL (Data Definition Language)
 
-### Create Storage Group
+## Create Storage Group
+
 According to the storage model we can set up the corresponding storage group. The SQL statements for creating storage groups are as follows:
 
 ```
@@ -39,9 +39,9 @@ IoTDB> set storage group to root.ln.wf01
 Msg: org.apache.iotdb.exception.MetadataErrorException: org.apache.iotdb.exception.PathErrorException: The prefix of root.ln.wf01 has been set to the storage group.
 ```
 
-### Show Storage Group
+## Show Storage Group
 
-After the storage group is created, we can use the [SHOW STORAGE GROUP](/#/Documents/progress/chap5/sec4) statement to view all the storage groups. The SQL statement is as follows:
+After the storage group is created, we can use the [SHOW STORAGE GROUP](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) statement to view all the storage groups. The SQL statement is as follows:
 
 ```
 IoTDB> show storage group
@@ -50,8 +50,7 @@ IoTDB> show storage group
 The result is as follows:
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577338-84c70600-1ef4-11e9-9dab-605b32c02836.jpg"></center>
 
-
-### Create Timeseries
+## Create Timeseries
 
 According to the storage model selected before, we can create corresponding timeseries in the two storage groups respectively. The SQL statements for creating timeseries are as follows:
 
@@ -71,9 +70,9 @@ IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODIN
 error: encoding TS_2DIFF does not support BOOLEAN
 ```
 
-Please refer to [Encoding](/#/Documents/progress/chap2/sec3) for correspondence between data type and encoding.
+Please refer to [Encoding](/document/master/UserGuide/2-Concept/3-Encoding.html) for correspondence between data type and encoding.
 
-### Show Timeseries
+## Show Timeseries
 
 Currently, IoTDB supports two ways of viewing timeseries:
 
@@ -92,7 +91,8 @@ The results are shown below respectly:
 
 It is worth noting that when the queried path does not exist, the system will return no timeseries.  
 
-### Count Timeseries
+## Count Timeseries
+
 IoTDB is able to use `COUNT TIMESERIES <Path>` to count the number of timeseries in the path. SQL statements are as follows:
 ```
 IoTDB > COUNT TIMESERIES root
@@ -123,7 +123,8 @@ You will get following results:
 
 > Note: The path of timeseries is just a filter condition, which has no relationship with the definition of level.
 
-### Count Nodes
+## Count Nodes
+
 IoTDB is able to use `COUNT NODES <Path> LEVEL=<INTEGER>` to count the number of nodes at the given level in current Metadata Tree. This could be used to query the number of devices. The usage are as follows:
 ```
 IoTDB > COUNT NODES root LEVEL=2
@@ -137,7 +138,8 @@ As for the above mentioned example and Metadata tree, you can get following resu
 
 > Note: The path of timeseries is just a filter condition, which has no relationship with the definition of level.
 
-### Delete Timeseries
+## Delete Timeseries
+
 To delete the timeseries we created before, we are able to use `DELETE TimeSeries <PrefixPath>` statement.
 
 The usage are as follows:
@@ -147,7 +149,7 @@ IoTDB> delete timeseries root.ln.wf01.wt01.temperature, root.ln.wf02.wt02.hardwa
 IoTDB> delete timeseries root.ln.wf02.*
 ```
 
-### Show Devices
+## Show Devices
 
 Similar to `Show Timeseries`, IoTDB also supports two ways of viewing devices:
 
@@ -159,17 +161,19 @@ IoTDB> show devices
 IoTDB> show devices root.ln
 ```
 
-## TTL
+# TTL
+
 IoTDB supports storage-level TTL settings, which means it is able to delete old data automatically and periodically. The benefit of using TTL is that hopefully you can control the total disk space usage and prevent the machine from running out of disks. Moreover, the query performance may downgrade as the total number of files goes up and the memory usage also increase as there are more files. Timely removing such files helps to keep at a high query performance level and reduce memory usage.
 
-### Set TTL
+## Set TTL
+
 The SQL Statement for setting TTL is as follow:
 ```
 IoTDB> set ttl to root.ln 3600000
 ```
 This example means that for data in `root.ln`, only that of the latest 1 hour will remain, the older one is removed or made invisible.
 
-### Unset TTL
+## Unset TTL
 
 To unset TTL, we can use follwing SQL statement:
 ```
diff --git a/docs/Documentation/UserGuide/5-Operation Manual/2-DML (Data Manipulation Language).md b/docs/Documentation/UserGuide/5-Operation Manual/2-DML Data Manipulation Language.md
similarity index 93%
rename from docs/Documentation/UserGuide/5-Operation Manual/2-DML (Data Manipulation Language).md
rename to docs/Documentation/UserGuide/5-Operation Manual/2-DML Data Manipulation Language.md
index 9184550..09e921c 100644
--- a/docs/Documentation/UserGuide/5-Operation Manual/2-DML (Data Manipulation Language).md	
+++ b/docs/Documentation/UserGuide/5-Operation Manual/2-DML Data Manipulation Language.md	
@@ -7,9 +7,9 @@
     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
@@ -19,17 +19,17 @@
 
 -->
 
-# Chapter 5: Operation Manual
 # DML (Data Manipulation Language)
+
 ## INSERT
 ### Insert Real-time Data
 
-IoTDB provides users with a variety of ways to insert real-time data, such as directly inputting [INSERT SQL statement](/#/Documents/progress/chap5/sec4) in [Client/Shell tools](/#/Documents/progress/chap4/sec1), or using [Java JDBC](/#/Documents/progress/chap4/sec2) to perform single or batch execution of [INSERT SQL statement](/#/Documents/progress/chap5/sec4).
+IoTDB provides users with a variety of ways to insert real-time data, such as directly inputting [INSERT SQL statement](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) in [Client/Shell tools](/document/master/UserGuide/4-Client/1-Command%20Line%20Interface.html), or using [Java JDBC](/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html) to perform single or batch execution of [INSERT SQL statement](/#/Documents/progress/chap5/sec4).
 
-This section mainly introduces the use of [INSERT SQL statement](/#/Documents/progress/chap5/sec4) for real-time data import in the scenario. See Section 5.4 for a detailed syntax of [INSERT SQL statement](/#/Documents/progress/chap5/sec4).
+This section mainly introduces the use of [INSERT SQL statement](/#/Documents/progress/chap5/sec4) for real-time data import in the scenario. See Section 5.4 for a detailed syntax of [INSERT SQL statement](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html).
 
 #### Use of INSERT Statements
-The [INSERT SQL statement](/#/Documents/progress/chap5/sec4) statement can be used to insert data into one or more specified timeseries that have been created. For each point of data inserted, it consists of a [timestamp](/#/Documents/progress/chap2/sec1) and a sensor acquisition value (see [Data Type](/#/Documents/progress/chap2/sec2)).
+The [INSERT SQL statement](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) statement can be used to insert data into one or more specified timeseries that have been created. For each point of data inserted, it consists of a [timestamp](/document/master/UserGuide/2-Concept/1-Data%20Model%20and%20Terminology.html) and a sensor acquisition value (see [Data Type](/document/master/UserGuide/2-Concept/2-Data%20Type.html)).
 
 In the scenario of this section, take two timeseries `root.ln.wf02.wt02.status` and `root.ln.wf02.wt02.hardware` as an example, and their data types are BOOLEAN and TEXT, respectively.
 
@@ -86,7 +86,7 @@ error: The TEXT data type should be covered by " or '
 
 ### Time Slice Query
 
-This chapter mainly introduces the relevant examples of time slice query using IoTDB SELECT statements. Detailed SQL syntax and usage specifications can be found in [SQL Documentation](/#/Documents/progress/chap5/sec4). You can also use the [Java JDBC](/#/Documents/progress/chap4/sec2) standard interface to execute related queries.
+This chapter mainly introduces the relevant examples of time slice query using IoTDB SELECT statements. Detailed SQL syntax and usage specifications can be found in [SQL Documentation](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html). You can also use the [Java JDBC](/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html) standard interface to execute related queries.
 
 #### Select a Column of Data Based on a Time Interval
 
@@ -149,10 +149,10 @@ The execution result of this SQL statement is as follows:
 ### Down-Frequency Aggregate Query
 
 This section mainly introduces the related examples of down-frequency aggregation query, 
-using the [GROUP BY clause](/#/Documents/progress/chap5/sec4), 
+using the [GROUP BY clause](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html), 
 which is used to partition the result set according to the user's given partitioning conditions and aggregate the partitioned result set. 
 IoTDB supports partitioning result sets according to time interval and customized sliding step which should not be smaller than the time interval and defaults to equal the time interval if not set. And by default results are sorted by time in ascending order. 
-You can also use the [Java JDBC](/#/Documents/progress/chap4/sec2) standard interface to execute related queries.
+You can also use the [Java JDBC](/document/master/UserGuide/4-Client/2-Programming%20-%20Native%20API.html) standard interface to execute related queries.
 
 The GROUP BY statement provides users with three types of specified parameters:
 
@@ -168,8 +168,9 @@ parameter 3 specified,
 and value filtering conditions specified.
 
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/16079446/69109512-f808bc80-0ab2-11ea-9e4d-b2b2f58fb474.png">
+    </center>
 
-**Figure 5.2 The actual meanings of the three types of parameters**</center>
+**Figure 5.2 The actual meanings of the three types of parameters**
 
 #### Down-Frequency Aggregate Query without Specifying the Sliding Step Length
 
@@ -392,14 +393,14 @@ When the fill method is not specified, each data type bears its own default fill
 
 ### Row and Column Control over Query Results
 
-IoTDB provides [LIMIT/SLIMIT](/#/Documents/progress/chap5/sec4) clause and [OFFSET/SOFFSET](/#/Documents/progress/chap5/sec4) 
+IoTDB provides [LIMIT/SLIMIT](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) clause and [OFFSET/SOFFSET](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html) 
 clause in order to make users have more control over query results. 
 The use of LIMIT and SLIMIT clauses allows users to control the number of rows and columns of query results, 
 and the use of OFFSET and SOFSET clauses allows users to set the starting position of the results for display.
 
 Note that the LIMIT and OFFSET are not supported in group by query.
 
-This chapter mainly introduces related examples of row and column control of query results. You can also use the [Java JDBC](/#/Documents/progress/chap4/sec2) standard interface to execute queries.
+This chapter mainly introduces related examples of row and column control of query results. You can also use the [Java JDBC](/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html) standard interface to execute queries.
 
 #### Row Control over Query Results
 
@@ -628,9 +629,9 @@ The SQL statement will not be executed and the corresponding error prompt is giv
 
 ## DELETE
 
-Users can delete data that meet the deletion condition in the specified timeseries by using the [DELETE statement](/#/Documents/progress/chap5/sec4). When deleting data, users can select one or more timeseries paths, prefix paths, or paths with star  to delete data before a certain time (current version does not support the deletion of data within a closed time interval).
+Users can delete data that meet the deletion condition in the specified timeseries by using the [DELETE statement](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html). When deleting data, users can select one or more timeseries paths, prefix paths, or paths with star  to delete data before a certain time (current version does not support the deletion of data within a closed time interval).
 
-In a JAVA programming environment, you can use the [Java JDBC](/#/Documents/progress/chap4/sec2) to execute single or batch UPDATE statements.
+In a JAVA programming environment, you can use the [Java JDBC](/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html) to execute single or batch UPDATE statements.
 
 ### Delete Single Timeseries
 Taking ln Group as an example, there exists such a usage scenario:
@@ -642,7 +643,7 @@ delete from root.ln.wf02.wt02.status where time<=2017-11-01T16:26:00;
 ```
 
 ### Delete Multiple Timeseries
-When both the power supply status and hardware version of the ln group wf02 plant wt02 device before 2017-11-01 16:26:00 need to be deleted, [the prefix path with broader meaning or the path with star](/#/Documents/progress/chap2/sec1) can be used to delete the data. The SQL statement for this operation is:
+When both the power supply status and hardware version of the ln group wf02 plant wt02 device before 2017-11-01 16:26:00 need to be deleted, [the prefix path with broader meaning or the path with star](/document/master/UserGuide/2-Concept/1-Data%20Model%20and%20Terminology.html) can be used to delete the data. The SQL statement for this operation is:
 
 ```
 delete from root.ln.wf02.wt02 where time <= 2017-11-01T16:26:00;
diff --git a/docs/Documentation/UserGuide/5-Operation Manual/3-Account Management Statements.md b/docs/Documentation/UserGuide/5-Operation Manual/3-Account Management Statements.md
index 49d6665..12d2e1a 100644
--- a/docs/Documentation/UserGuide/5-Operation Manual/3-Account Management Statements.md	
+++ b/docs/Documentation/UserGuide/5-Operation Manual/3-Account Management Statements.md	
@@ -7,9 +7,9 @@
     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
@@ -19,30 +19,35 @@
 
 -->
 
-# Chapter 5: Operation Manual
+# Account Management Statements
 
-## Account Management Statements
 IoTDB provides users with account privilege management operations, so as to ensure data security.
 
-We will show you basic user privilege management operations through the following specific examples. Detailed SQL syntax and usage details can be found in [SQL Documentation](/#/Documents/progress/chap5/sec4). At the same time, in the JAVA programming environment, you can use the [Java JDBC](/#/Documents/progress/chap4/sec2) to execute privilege management statements in a single or batch mode. 
+We will show you basic user privilege management operations through the following specific examples. Detailed SQL syntax and usage details can be found in [SQL Documentation](/document/master/UserGuide/5-Operation%20Manual/4-SQL%20Reference.html). At the same time, in the JAVA programming environment, you can use the [Java JDBC](/document/master/UserGuide/4-Client/3-Programming%20-%20JDBC.html) to execute privilege management statements in a single or batch mode. 
+
+## Basic Concepts
+
+### User
 
-### Basic Concepts
-#### User
 The user is the legal user of the database. A user corresponds to a unique username and has a password as a means of authentication. Before using a database, a person must first provide a legitimate username and password to make himself/herself a user.
 
-#### Privilege
+### Privilege
+
 The database provides a variety of operations, and not all users can perform all operations. If a user can perform an operation, the user is said to have the privilege to perform the operation. privileges can be divided into data management privilege (such as adding, deleting and modifying data) and authority management privilege (such as creation and deletion of users and roles, granting and revoking of privileges, etc.). Data management privilege often needs a path to limit its effecti [...]
 
-#### Role
+### Role
+
 A role is a set of privileges and has a unique role name as an identifier. A user usually corresponds to a real identity (such as a traffic dispatcher), while a real identity may correspond to multiple users. These users with the same real identity tend to have the same privileges. Roles are abstractions that can unify the management of such privileges.
 
-#### Default User
+### Default User
+
 There is a default user in IoTDB after the initial installation: root, and the default password is root. This user is an administrator user, who cannot be deleted and has all the privileges. Neither can new privileges be granted to the root user nor can privileges owned by the root user be deleted.
 
-### Privilege Management Operation Examples
+## Privilege Management Operation Examples
+
 According to the [sample data](https://raw.githubusercontent.com/apache/incubator-iotdb/master/docs/Documentation/OtherMaterial-Sample%20Data.txt), the sample data of IoTDB may belong to different power generation groups such as ln, sgcc, etc. Different power generation groups do not want others to obtain their own database data, so we need to have data privilege isolated at the group layer.
 
-#### Create User
+### Create User
 
 We can create two users for ln and sgcc groups, named ln\_write\_user and sgcc\_write\_user, with both passwords being write\_pwd. The SQL statement is:
 
@@ -59,7 +64,8 @@ As can be seen from the result shown below, the two users have been created:
 
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51578263-e2a91d00-1ef7-11e9-94e8-28819b6fea87.jpg"></center>
 
-#### Grant User Privilege
+### Grant User Privilege
+
 At this point, although two users have been created, they do not have any privileges, so they can not operate on the database. For example, we use ln_write_user to write data in the database, the SQL statement is:
 
 ```
@@ -79,8 +85,9 @@ INSERT INTO root.ln.wf01.wt01(timestamp, status) values(1509465600000, true)
 The execution result is as follows:
 <center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51578942-33ba1080-1efa-11e9-891c-09d69791aff1.jpg"></center>
 
-### Other Instructions
-#### The Relationship among Users, Privileges and Roles
+## Other Instructions
+
+### The Relationship among Users, Privileges and Roles
 
 A Role is a set of privileges, and privileges and roles are both attributes of users. That is, a role can have several privileges and a user can have several roles and privileges (called the user's own privileges).
 
@@ -90,7 +97,7 @@ It should be noted that if users have a privilege (corresponding to operation A)
 
 At the same time, changes to roles are immediately reflected on all users who own the roles. For example, adding certain privileges to roles will immediately give all users who own the roles corresponding privileges, and deleting certain privileges will also deprive the corresponding users of the privileges (unless the users themselves have the privileges).
 
-#### List of Privileges Included in the System
+### List of Privileges Included in the System
 
 <center>**List of privileges Included in the System**
 
@@ -116,9 +123,12 @@ At the same time, changes to roles are immediately reflected on all users who ow
 |REVOKE\_ROLE\_PRIVILEGE|revoke role privileges; path independent|
 </center>
 
-#### Username Restrictions
+### Username Restrictions
+
 IoTDB specifies that the character length of a username should not be less than 4, and the username cannot contain spaces.
-#### Password Restrictions
+### Password Restrictions
+
 IoTDB specifies that the character length of a password should not be less than 4, and the password cannot contain spaces. The password is encrypted with MD5.
-#### Role Name Restrictions
+### Role Name Restrictions
+
 IoTDB specifies that the character length of a role name should not be less than 4, and the role name cannot contain spaces.
diff --git a/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md b/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md
index ca30a34..d81f30c 100644
--- a/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md	
+++ b/docs/Documentation/UserGuide/5-Operation Manual/4-SQL Reference.md	
@@ -7,9 +7,9 @@
     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
@@ -18,9 +18,9 @@
     under the License.
 
 -->
-# Chapter 5: Operation Manual
 
-## SQL Reference
+# SQL Reference
+
 In this part, we will introduce you IoTDB's Query Language. IoTDB offers you a SQL-like query language for interacting with IoTDB, the query language can be devided into 4 major parts:
 
 * Schema Statement: statements about schema management are all listed in this section.
@@ -30,7 +30,7 @@ In this part, we will introduce you IoTDB's Query Language. IoTDB offers you a S
 
 All of these statements are write in IoTDB's own syntax, for details about the syntax composition, please check the `Reference` section.
 
-### Show Version
+## Show Version
 
 ```sql
 show version
@@ -46,7 +46,7 @@ Total line number = 1
 It costs 0.417s
 ```
 
-### Schema Statement
+## Schema Statement
 
 * Set Storage Group
 
@@ -188,7 +188,7 @@ Eg: IoTDB > SHOW CHILD PATHS root.ln.wf*
 Note: The path can be prefix path or star path, the nodes can be in a "prefix + star" format. 
 Note: This statement can be used in IoTDB Client and JDBC.
 ```
-### Data Management Statement
+## Data Management Statement
 
 * Insert Record Statement
 
@@ -497,7 +497,7 @@ Query like "select last s1 from root.sg.d1" will be parsed exactly the same as "
 
 ```
 
-### Database Management Statement
+## Database Management Statement
 
 * Create User
 
@@ -663,7 +663,7 @@ password:=identifier
 Eg: IoTDB > ALTER USER tempuser SET PASSWORD 'newpwd';
 ```
 
-### Functions
+## Functions
 
 * COUNT
 
@@ -767,7 +767,8 @@ Eg. SELECT SUM(temperature) FROM root.ln.wf01.wt01 WHERE root.ln.wf01.wt01.tempe
 Note: the statement needs to satisfy this constraint: <PrefixPath> + <Path> = <Timeseries>
 ```
 
-### TTL
+## TTL
+
 IoTDB supports storage-level TTL settings, which means it is able to delete old data
 automatically and periodically. The benefit of using TTL is that hopefully you can control the 
 total disk space usage and prevent the machine from running out of disks. Moreover, the query
@@ -813,9 +814,9 @@ atomicity of data deletion is not guaranteed for efficiency concerns. So we reco
 not change the TTL once it is set or at least do not reset it frequently, unless you are determined 
 to suffer the unpredictability. 
 
-## Reference
+# Reference
 
-### Keywords
+## Keywords
 
 ```
 Keywords for IoTDB (case insensitive):
@@ -828,7 +829,7 @@ Keywords with special meanings (case insensitive):
 * Logical symbol: AND, &, &&, OR, | , ||, NOT, !, TRUE, FALSE
 ```
 
-### Identifiers
+## Identifiers
 
 ```
 QUOTE := '\'';
@@ -883,7 +884,7 @@ eg. _abc123
 
 ```
 
-### Literals
+## Literals
 
 
 ```
diff --git a/docs/Documentation/UserGuide/6-System Tools/1-Sync Tool.md b/docs/Documentation/UserGuide/6-System Tools/1-Sync Tool.md
index 8e99753..f825a17 100644
--- a/docs/Documentation/UserGuide/6-System Tools/1-Sync Tool.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/1-Sync Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,7 @@
 
 -->
 
-# Chapter 6: System Tools
+# Sync Tool
 
 ## Data Import
 
@@ -51,7 +51,7 @@ The sync tool has a many-to-one sender-receiver mode - that is, one sync receive
 > Note: Before using the sync tool, the client and server need to be configured separately. The configuration is detailed in Sections Configuration.
 # Application Scenario
 In the case of a factory application, there are usually multiple sub-factories and multiple general(main) factories. Each sub-factory uses an IoTDB instance to collect data, and then synchronize the data to the general factory for backup or analysis. A general factory can receive data from multiple sub-factories and a sub-factory can also synchronize data to multiple general factories. In this scenario, each IoTDB instance manages different devices. 
-      
+​      
 In the sync module, each sub-factory is a sender, a general factory is a receiver, and senders periodically synchronizes the data to receivers. In the above application scenario, the data of one device can only be collected by one sender, so there is no device overlap between the data synchronized by multiple senders. Otherwise, the application scenario of the sync module is not satisfied.
 
 When there is an abnormal scenario, namely, two or more senders synchronize the data of the same device (whose storage group is set as root.sg) to the same receiver, the root.sg data of the sender containing the device data received later by the receiver will be rejected. Example: the engine 1 synchronizes the storage groups root.sg1 and root.sg2 to the receiver, and the engine 2 synchronizes the storage groups root.sg2 and root.sg3 to the receiver. All of them include the time series ro [...]
diff --git a/docs/Documentation/UserGuide/6-System Tools/2-Memory Estimation Tool.md b/docs/Documentation/UserGuide/6-System Tools/2-Memory Estimation Tool.md
index 54238ef..bc2b2d8 100644
--- a/docs/Documentation/UserGuide/6-System Tools/2-Memory Estimation Tool.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/2-Memory Estimation Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,14 +19,14 @@
 
 -->
 
-# Chapter 6: System Tools
+# Memory Estimation Tool
 
-## Memory Estimation Tool
+## Introduction
 
-### Introduction
 This tool calculates the minimum memory for writing to meet specific workload through a number of parameters input by users. (Memory in IoTDB is divided into three parts: write memory, read memory and reserve memory. Write memory is used for data write allocation. The ratio of the three can be set in the configuration file) The unit of result is in GB.
 
-### Input parameters
+## Input parameters
+
 When using this tool, the parameters needed to be input are as follows:
 
 <table>
@@ -59,7 +59,7 @@ When using this tool, the parameters needed to be input are as follows:
 
 In memory estimation, if the calculation takes a long time, the tool will show the running progress below, which is convenient for users to master the progress.
 
-### Usage
+## Usage
 
 Users can use the tool using scripts under the `IOTDB_HOME/bin`folder.
 For Linux and Mac OS X users:
diff --git a/docs/Documentation/UserGuide/6-System Tools/3-JMX Tool.md b/docs/Documentation/UserGuide/6-System Tools/3-JMX Tool.md
index 3292d21..3827622 100644
--- a/docs/Documentation/UserGuide/6-System Tools/3-JMX Tool.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/3-JMX Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# Chapter 6: System Tools
-
 # JMX Tool
 
 Java VisualVM is a tool that provides a visual interface for viewing detailed information about Java applications while they are running on a Java Virtual Machine (JVM), and for troubleshooting and profiling these applications. 
diff --git a/docs/Documentation/UserGuide/6-System Tools/4-Watermark Tool.md b/docs/Documentation/UserGuide/6-System Tools/4-Watermark Tool.md
index 6deda9c..37db03c 100644
--- a/docs/Documentation/UserGuide/6-System Tools/4-Watermark Tool.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/4-Watermark Tool.md	
@@ -21,8 +21,6 @@ under the License.
 
 -->
 
-# Chapter 6: System Tools
-
 # Watermark Tool
 
 This tool has two functions: 1) watermark embedding of the IoTDB query result and 2) watermark detection of the suspected data.
diff --git a/docs/Documentation/UserGuide/6-System Tools/5-Log Visualizer.md b/docs/Documentation/UserGuide/6-System Tools/5-Log Visualizer.md
index 18c9599..50939dc 100644
--- a/docs/Documentation/UserGuide/6-System Tools/5-Log Visualizer.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/5-Log Visualizer.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 6: System Tools
-
-## LogVisualizer
+# LogVisualizer
 
 <!-- TOC -->
 
@@ -59,7 +57,7 @@ from the beginning what logs exactly they long for, many less experienced progra
 time reading unrelated logs and filtering them out. Nevertheless, logs are mostly composed with 
 strings containing numbers which describe the system status and they are much less straight-forward for 
 humans to understand and compare than plots and statistics.
- 
+
 To reduce the difficulty of understanding what has happened behind these logs and better comparing
 them, we present a simple tool LogVisualizer to retrieve interesting (specified by the user) 
 variables in the log files, generate timeseries based on these observations and draw plots to show 
@@ -106,16 +104,16 @@ carefully and modify it for your logs.
 Then, click the `Load logs` button to let the LogVisualizer to prepare to read the logs. If the 
 preparation is successful, the label above will show `Logs are successfully loaded`, otherwise, a
 dialog will show you what has gone wrong and you should fix it accordingly.
- 
+
  <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/load_logs.png?raw=true">
- 
+
 ## Load plans
 Next, you can load existing visualization plans or create new ones. For loading existing plans, 
 just click the button `Load plans` and choose the log files or directories that contain log 
 files. Notice that if choose a directory, then the directory must only contain visualization plans.
 
  <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/load_plan.png?raw=true">
- 
+
 ## Create new plans
 Now, we will present an example of how to create a new plan. First, click the `Create plan` 
 button and choose a place to save the new plan, then the plan will show up in the list in the 
@@ -150,7 +148,7 @@ done browsing, you can click the button on the up-right to close the tab.
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/plot.png?raw=true">
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://github.com/jt2594838/PicHub/blob/master/log-visualizer/statistics.png?raw=true">
- 
+
 # Usage(CommandLine)
  We also provide a command line tool of LogVisualizer, which is `log-visualizer-cmd.sh` 
  (or `log-visualizer-cmd.bat`). This tool takes exactly 4 parameters, which are: `the path of the log file` 
diff --git a/docs/Documentation/UserGuide/6-System Tools/6-Query History Visualization Tool.md b/docs/Documentation/UserGuide/6-System Tools/6-Query History Visualization Tool.md
index 42dbfd4..a4cc28f 100644
--- a/docs/Documentation/UserGuide/6-System Tools/6-Query History Visualization Tool.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/6-Query History Visualization Tool.md	
@@ -7,9 +7,9 @@
     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
@@ -19,9 +19,7 @@
 
 -->
 
-# Chapter 6: System Tools
-
-## Query History Visualization Tool
+# Query History Visualization Tool
 
 IoTDB Query History Visualization Tool uses a monitoring web page to provide metrics service for viewing the query history and SQL execution time. It can also provide the memory and CPU usage of the current host.
 
diff --git a/docs/Documentation/UserGuide/6-System Tools/7-Monitor and Log Tools.md b/docs/Documentation/UserGuide/6-System Tools/7-Monitor and Log Tools.md
index 11cb486..7ebbafb 100644
--- a/docs/Documentation/UserGuide/6-System Tools/7-Monitor and Log Tools.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/7-Monitor and Log Tools.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,8 @@
 
 -->
 
-# Chapter 6: System Tools
 # Monitor and Log Tools
+
 ## System Monitor
 
 Currently, IoTDB provides users to use Java's JConsole tool to monitor system status or use IoTDB's open API to check data status.
@@ -156,9 +156,9 @@ The user can choose to enable or disable the data statistics monitoring function
 
 The current statistics of writing data by the system can be divided into two major modules: **Global Writing Data Statistics** and **Storage Group Writing Data Statistics**. **Global Writing Data Statistics** records the point number written by the user and the number of requests. **Storage Group Writing Data Statistics** records data of a certain storage group. 
 
-The system defaults to collect data every 5 seconds, and writes the statistics to the IoTDB and stores them in a system-specified locate. (If you need to change the statistic frequency, you can set The `back_loop_period_in_second entry` in the configuration file, see Section [Engine Layer](/#/Documents/progress/chap3/sec2) for details). After the system is refreshed or restarted, IoTDB does not recover the statistics, and the statistics data will restart from zero.
+The system defaults to collect data every 5 seconds, and writes the statistics to the IoTDB and stores them in a system-specified locate. (If you need to change the statistic frequency, you can set The `back_loop_period_in_second entry` in the configuration file, see Section [Engine Layer](/document/master/UserGuide/3-Server/2-Single%20Node%20Setup.html) for details). After the system is refreshed or restarted, IoTDB does not recover the statistics, and the statistics data will restart f [...]
 
-In order to avoid the excessive use of statistical information, we add a mechanism to periodically clear invalid data for statistical information. The system will delete invalid data at regular intervals. The user can set the trigger frequency (`stat_monitor_retain_interval_in_second`, default is 600s, see section [Engine Layer](/#/Documents/progress/chap3/sec2) for details) to set the frequency of deleting data. By setting the valid data duration (`stat_monitor_detect_freq_in_second ent [...]
+In order to avoid the excessive use of statistical information, we add a mechanism to periodically clear invalid data for statistical information. The system will delete invalid data at regular intervals. The user can set the trigger frequency (`stat_monitor_retain_interval_in_second`, default is 600s, see section [Engine Layer](/document/master/UserGuide/3-Server/2-Single%20Node%20Setup.html) for details) to set the frequency of deleting data. By setting the valid data duration (`stat_m [...]
 
 It's convenient for you to use `select` clause to get the writing data statistics the same as other timeseires.
 
@@ -365,7 +365,7 @@ Here are the file size statistics:
 In order to grasp the performance of iotdb, we add this module to count the time-consumption of each operation. This module can compute the statistics of the avg time-consuming of each operation and the proportion of each operation whose time consumption falls into a time range. The output is in log_measure.log file. An output example is below.  
 
 <img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/60937461-14296f80-a303-11e9-9602-a7bed624bfb3.png">
- 
+
 ### Configuration parameter
 
 location:conf/iotdb-engine.properties
@@ -378,11 +378,11 @@ location:conf/iotdb-engine.properties
 |performance\_stat\_display\_interval|60000|The interval of display statistic result in ms.|
 |performance_stat_memory_in_kb|20|The memory used for performance_stat in kb.|
 </center>
- 
+
 ### JMX MBean
 
 Connect to jconsole with port 31999,and choose ‘MBean’in menu bar. Expand the sidebar and choose 'org.apache.iotdb.db.cost.statistic'. You can Find:
- 
+
 <img style="width:100%; max-width:600px; max-height:200px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/60937484-30c5a780-a303-11e9-8e92-04c413df2088.png">
 
 **Attribute**
@@ -399,7 +399,7 @@ Connect to jconsole with port 31999,and choose ‘MBean’in menu bar. Expand
 3. stopStatistic:Stop the statistics.
 4. clearStatisticalState(): clear current stat result, reset statistical result.
 5. changeOperationSwitch(String operationName, Boolean operationState):set whether to monitor a kind of operation. The param 'operationName' is the name of operation, defined in attribute operationSwitch. The param operationState is whether to enable the statistics or not. If the state is switched successfully, the function will return true, else return false.
- 
+
 ### Adding Custom Monitoring Items for contributors of IOTDB
 
 **Add Operation**
diff --git a/docs/Documentation/UserGuide/6-System Tools/8-Load External Tsfile.md b/docs/Documentation/UserGuide/6-System Tools/8-Load External Tsfile.md
index 569cac9..9790209 100644
--- a/docs/Documentation/UserGuide/6-System Tools/8-Load External Tsfile.md	
+++ b/docs/Documentation/UserGuide/6-System Tools/8-Load External Tsfile.md	
@@ -7,9 +7,9 @@
     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
@@ -19,7 +19,6 @@
 
 -->
 
-# Chapter 6: System Tools
 # Load External Tsfile Tool
 
 # Introduction
diff --git a/docs/Documentation/UserGuide/7-Ecosystem Integration/1-Grafana.md b/docs/Documentation/UserGuide/7-Ecosystem Integration/1-Grafana.md
index b463ac8..7f3cb07 100644
--- a/docs/Documentation/UserGuide/7-Ecosystem Integration/1-Grafana.md	
+++ b/docs/Documentation/UserGuide/7-Ecosystem Integration/1-Grafana.md	
@@ -7,9 +7,9 @@
     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
@@ -18,7 +18,6 @@
     under the License.
 
 -->
-# Chapter 7: Ecosystem Integration
 # Grafana
 <!-- TOC -->
 ## Outline
diff --git a/docs/Documentation/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md b/docs/Documentation/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md
index c207b90..8153385 100644
--- a/docs/Documentation/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md	
+++ b/docs/Documentation/UserGuide/7-Ecosystem Integration/2-MapReduce TsFile.md	
@@ -7,9 +7,9 @@
     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
@@ -18,7 +18,6 @@
     under the License.
 
 -->
-# Chapter 7: Ecosystem Integration
 # MapReduce TsFile
 <!-- TOC -->
 ## Outline
diff --git a/docs/Documentation/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md b/docs/Documentation/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md
index 076ecdd..2902323 100644
--- a/docs/Documentation/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md	
+++ b/docs/Documentation/UserGuide/7-Ecosystem Integration/3-Spark TsFile.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# Chapter 7: Ecosystem Integration
-
 # TsFile-Spark-Connector User Guide
 
 ## 1. About TsFile-Spark-Connector
@@ -51,7 +49,7 @@ Start Spark with TsFile-Spark-Connector in local mode:
 
 Note:
 
-* \<spark-shell-path> is the real path of your spark-shell.
+* \<spark-shell-path\> is the real path of your spark-shell.
 * Multiple jar packages are separated by commas without any spaces.
 * See https://github.com/apache/incubator-iotdb/tree/master/tsfile for how to get TsFile.
 
@@ -66,7 +64,7 @@ Start Spark with TsFile-Spark-Connector in distributed mode (That is, the spark
 
 Note:
 
-* \<spark-shell-path> is the real path of your spark-shell.
+* \<spark-shell-path\> is the real path of your spark-shell.
 * Multiple jar packages are separated by commas without any spaces.
 * See https://github.com/apache/incubator-iotdb/tree/master/tsfile for how to get TsFile.
 
@@ -96,12 +94,11 @@ The way to display TsFile is dependent on the schema. Take the following TsFile
 
 The existing data in the TsFile is as follows:
 
-
 <center>
 <table style="text-align:center">
 	<tr><th colspan="4">device:root.ln.wf01.wt01</th><th colspan="4">device:root.ln.wf02.wt02</th></tr>
 	<tr><th colspan="2">status</th><th colspan="2">temperature</th><th colspan="2">hardware</th><th colspan="2">status</th></tr>
-	<tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th><th>time</th><th>value</td></tr>
+	<tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
 	<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td></tr>
 	<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td></tr>
 	<tr><td>5</td><td> False </td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td></tr>
@@ -109,6 +106,7 @@ The existing data in the TsFile is as follows:
 </center>
 
 
+
 The corresponding SparkSQL table is as follows:
 
 | time | root.ln.wf02.wt02.temperature | root.ln.wf02.wt02.status | root.ln.wf02.wt02.hardware | root.ln.wf01.wt01.temperature | root.ln.wf01.wt01.status | root.ln.wf01.wt01.hardware |
@@ -124,14 +122,14 @@ You can also use narrow table form which as follows: (You can see part 6 about h
 
 | time | device_name                   | status                   | hardware                   | temperature |
 |------|-------------------------------|--------------------------|----------------------------|-------------------------------|
-|    1 | root.ln.wf02.wt01             | true                     | null                       | 2.2                           | 
-|    1 | root.ln.wf02.wt02             | true                     | null                       | null                          | 
-|    2 | root.ln.wf02.wt01             | null                     | null                       | 2.2                          |                 
-|    2 | root.ln.wf02.wt02             | false                    | aaa                        | null                           |                   
-|    3 | root.ln.wf02.wt01             | true                     | null                       | 2.1                           |                 
-|    4 | root.ln.wf02.wt02             | true                     | bbb                        | null                          |                  
-|    5 | root.ln.wf02.wt01             | false                    | null                       | null                          |                   
-|    6 | root.ln.wf02.wt02             | null                     | ccc                        | null                          |                   
+|    1 | root.ln.wf02.wt01             | true                     | null                       | 2.2                           |
+|    1 | root.ln.wf02.wt02             | true                     | null                       | null                          |
+|    2 | root.ln.wf02.wt01             | null                     | null                       | 2.2                          |
+|    2 | root.ln.wf02.wt02             | false                    | aaa                        | null                           |
+|    3 | root.ln.wf02.wt01             | true                     | null                       | 2.1                           |
+|    4 | root.ln.wf02.wt02             | true                     | bbb                        | null                          |
+|    5 | root.ln.wf02.wt01             | false                    | null                       | null                          |
+|    6 | root.ln.wf02.wt02             | null                     | ccc                        | null                          |
 
 
 
@@ -257,7 +255,7 @@ The existing data in the file is as follows:
 <table style="text-align:center">
 	<tr><th colspan="4">delta\_object:root.ln.wf01.wt01</th><th colspan="4">delta\_object:root.ln.wf02.wt02</th><th colspan="4">delta\_object:root.sgcc.wf03.wt01</th></tr>
 	<tr><th colspan="2">status</th><th colspan="2">temperature</th><th colspan="2">hardware</th><th colspan="2">status</th><th colspan="2">status</th><th colspan="2">temperature</th></tr>
-	<tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th></tr>
+	<tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
 	<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td><td>2</td><td>True</td><td>3</td><td>3.3</td></tr>
 	<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td><td>3</td><td>True</td><td>6</td><td>6.6</td></tr>
 	<tr><td>5</td><td> False </td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td><td>4</td><td>True</td><td>8</td><td>8.8</td></tr>
@@ -265,7 +263,6 @@ The existing data in the file is as follows:
 </table>
 <span>A set of time-series data</span>
 </center>
-
 There are two ways to show it out:
 
 #### the default way
@@ -332,7 +329,6 @@ Then The SparkSQL Table Structure is as follow:
 	<tr><td>8</td><td> sgcc </td><td> wf03 </td><td> wt01 </td><td>null</td><td>8.8</td><td>null</td></tr>
 	<tr><td>9</td><td> sgcc </td><td> wf03 </td><td> wt01 </td><td>null</td><td>9.9</td><td>null</td></tr>
 	</table>
-
 </center>
 
 TsFile-Spark-Connector can display one or more TsFiles as a table in SparkSQL By SparkSQL. It also allows users to specify a single directory or use wildcards to match multiple directories. If there are multiple TsFiles, the union of the measurements in all TsFiles will be retained in the table, and the measurement with the same name will have the same data type by default. Note that if there is a situation with the same name but different data types, TsFile-Spark-Connector will not guar [...]
diff --git a/docs/Documentation/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md b/docs/Documentation/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md
index 6ce5a97..e7047ae 100644
--- a/docs/Documentation/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md	
+++ b/docs/Documentation/UserGuide/7-Ecosystem Integration/4-Spark IoTDB.md	
@@ -7,9 +7,9 @@
     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
@@ -18,7 +18,6 @@
     under the License.
 
 -->
-# Chapter 7: Ecosystem Integration
 # Spark IoTDB Connecter
 ## version
 
@@ -93,7 +92,7 @@ The existing data in the TsFile is as follows:
 <table style="text-align:center">
 	<tr><th colspan="4">device:root.ln.wf01.wt01</th><th colspan="4">device:root.ln.wf02.wt02</th></tr>
 	<tr><th colspan="2">status</th><th colspan="2">temperature</th><th colspan="2">hardware</th><th colspan="2">status</th></tr>
-	<tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th><th>time</th><th>value</td></tr>
+	<tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
 	<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td></tr>
 	<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td></tr>
 	<tr><td>5</td><td> False </td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td></tr>
@@ -116,14 +115,14 @@ You can also use narrow table form which as follows: (You can see part 4 about h
 
 | time | device_name                   | status                   | hardware                   | temperature |
 |------|-------------------------------|--------------------------|----------------------------|-------------------------------|
-|    1 | root.ln.wf02.wt01             | true                     | null                       | 2.2                           | 
-|    1 | root.ln.wf02.wt02             | true                     | null                       | null                          | 
-|    2 | root.ln.wf02.wt01             | null                     | null                       | 2.2                          |                 
-|    2 | root.ln.wf02.wt02             | false                    | aaa                        | null                           |                   
-|    3 | root.ln.wf02.wt01             | true                     | null                       | 2.1                           |                 
-|    4 | root.ln.wf02.wt02             | true                     | bbb                        | null                          |                  
-|    5 | root.ln.wf02.wt01             | false                    | null                       | null                          |                   
-|    6 | root.ln.wf02.wt02             | null                     | ccc                        | null                          |                   
+|    1 | root.ln.wf02.wt01             | true                     | null                       | 2.2                           |
+|    1 | root.ln.wf02.wt02             | true                     | null                       | null                          |
+|    2 | root.ln.wf02.wt01             | null                     | null                       | 2.2                          |
+|    2 | root.ln.wf02.wt02             | false                    | aaa                        | null                           |
+|    3 | root.ln.wf02.wt01             | true                     | null                       | 2.1                           |
+|    4 | root.ln.wf02.wt02             | true                     | bbb                        | null                          |
+|    5 | root.ln.wf02.wt01             | false                    | null                       | null                          |
+|    6 | root.ln.wf02.wt02             | null                     | ccc                        | null                          |
 
 # 4. Transform between wide and narrow table
 
diff --git a/docs/Documentation/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md b/docs/Documentation/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md
index 45fcb55..d6b14fc 100644
--- a/docs/Documentation/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md	
+++ b/docs/Documentation/UserGuide/7-Ecosystem Integration/5-Hive TsFile.md	
@@ -7,9 +7,9 @@
     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
@@ -18,7 +18,7 @@
     under the License.
 
 -->
-# Chapter 7: Ecosystem Integration
+# TsFile-Hive-Connector User Guide
 <!-- TOC -->
 ## Outline
 
@@ -33,8 +33,8 @@
 	    - Aggregate Clause Example
 	- What's Next
 		
+
 <!-- /TOC -->
-# TsFile-Hive-Connector User Guide
 
 ## About TsFile-Hive-Connector
 
@@ -87,7 +87,7 @@ Added resources: [/Users/hive/incubator-iotdb/hive-connector/target/hive-connect
 To create a Tsfile-backed table, specify the `serde` as `org.apache.iotdb.hive.TsFileSerDe`, 
 specify the `inputformat` as `org.apache.iotdb.hive.TSFHiveInputFormat`, 
 and the `outputformat` as `org.apache.iotdb.hive.TSFHiveOutputFormat`.
- 
+
 Also provide a schema which only contains two fields: `time_stamp` and `sensor_id` for the table. 
 `time_stamp` is the time value of the time series 
 and `sensor_id` is the name of the sensor you want to extract from the tsfile to hive such as `sensor_1`. 
diff --git a/docs/Documentation/UserGuide/8-Architecture/1-Files.md b/docs/Documentation/UserGuide/8-Architecture/1-Files.md
index 3905707..4058a0d 100644
--- a/docs/Documentation/UserGuide/8-Architecture/1-Files.md
+++ b/docs/Documentation/UserGuide/8-Architecture/1-Files.md
@@ -7,9 +7,9 @@
     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
@@ -19,29 +19,27 @@
 
 -->
 
-# Chapter 8: System Design (Developer)
-
-## Files
+# Files
 
 In IoTDB, there are many kinds of data needed to be storage. In this section, we will introduce IoTDB's data storage strategy in order to give you an intuitive understanding of IoTDB's data management.
 
 The data that IoTDB stores is divided into three categories, namely data files, system files, and pre-write log files.
 
-### Data Files
+## Data Files
 
-Data files store all the data that the user wrote to IoTDB, which contains TsFile and other files. TsFile storage directory can be configured with the `data_dirs` configuration item (see [file layer](/#/Documents/progress/chap3/sec4) for details). Other files can be configured through [data_dirs](/#/Documents/progress/chap3/sec4) configuration item (see [Engine Layer](/#/Documents/progress/chap3/sec4) for details).
+Data files store all the data that the user wrote to IoTDB, which contains TsFile and other files. TsFile storage directory can be configured with the `data_dirs` configuration item (see [file layer](/document/master/UserGuide/3-Server/4-Config%20Manual.html) for details). Other files can be configured through [data_dirs](/document/master/UserGuide/3-Server/4-Config%20Manual.html) configuration item (see [Engine Layer](/document/master/UserGuide/3-Server/4-Config%20Manual.html) for details).
 
-In order to better support users' storage requirements such as disk space expansion, IoTDB supports multiple file directories storage methods for TsFile storage configuration. Users can set multiple storage paths as data storage locations( see [data_dirs](/#/Documents/progress/chap3/sec4) configuration item), and you can specify or customize the directory selection policy (see [multi_dir_strategy](/#/Documents/progress/chap3/sec4) configuration item for details).
+In order to better support users' storage requirements such as disk space expansion, IoTDB supports multiple file directories storage methods for TsFile storage configuration. Users can set multiple storage paths as data storage locations( see [data_dirs](/document/master/UserGuide/3-Server/4-Config%20Manual.html) configuration item), and you can specify or customize the directory selection policy (see [multi_dir_strategy](/document/master/UserGuide/3-Server/4-Config%20Manual.html) confi [...]
 
-### System files
+## System files
 
-System files include schema files, which store metadata information of data in IoTDB. It can be configured through the `base_dir` configuration item (see [System Layer](/#/Documents/progress/chap3/sec4) for details).
+System files include schema files, which store metadata information of data in IoTDB. It can be configured through the `base_dir` configuration item (see [System Layer](/document/master/UserGuide/3-Server/4-Config%20Manual.html) for details).
 
-### Pre-write Log Files
+## Pre-write Log Files
 
-Pre-write log files store WAL files. It can be configured through the `wal_dir` configuration item (see [System Layer](/#/Documents/progress/chap3/sec2) for details).
+Pre-write log files store WAL files. It can be configured through the `wal_dir` configuration item (see [System Layer](/document/master/UserGuide/3-Server/2-Single%20Node%20Setup.html) for details).
 
-### Example of Setting Data storage Directory
+## Example of Setting Data storage Directory
 
 For a clearer understanding of configuring the data storage directory, we will give an example in this section.
 
diff --git a/docs/Documentation/UserGuide/8-Architecture/2-Writing Data on HDFS.md b/docs/Documentation/UserGuide/8-Architecture/2-Writing Data on HDFS.md
index fbfd597..93a24a8 100644
--- a/docs/Documentation/UserGuide/8-Architecture/2-Writing Data on HDFS.md	
+++ b/docs/Documentation/UserGuide/8-Architecture/2-Writing Data on HDFS.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# Chapter 8: System Design (Developer)
-
 # Writing Data on HDFS
 
 ## Shared Storage Architecture
diff --git a/docs/Documentation/UserGuide/8-Architecture/3-Shared Nothing Cluster.md b/docs/Documentation/UserGuide/8-Architecture/3-Shared Nothing Cluster.md
index c93793c..2ec0348 100644
--- a/docs/Documentation/UserGuide/8-Architecture/3-Shared Nothing Cluster.md	
+++ b/docs/Documentation/UserGuide/8-Architecture/3-Shared Nothing Cluster.md	
@@ -7,9 +7,9 @@
     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
@@ -19,8 +19,6 @@
 
 -->
 
-# Chapter 8: System Design (Developer)
-
-## Shared Nothing Architecture
+# Shared Nothing Architecture
 
 Shared Nothing Architecture is under development and is expected to be released by the end of 2019. Please wait patiently and look forward to it.
\ No newline at end of file