Add HAS performance report.
diff --git a/has-project/README.md b/has-project/README.md
index a247495..e90fbe4 100644
--- a/has-project/README.md
+++ b/has-project/README.md
@@ -8,11 +8,11 @@
 * New authentication mechanism can be customized and plugined.
 
 # Architecture
-![](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/has-overall.png)
+![](docs/has-overall.png)
 
 # Design
 Assuming existing users are stored in a SQL database (like MySQL), the detailed design and workflow may go like the following:
-![](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/has-protocol-flow.png)
+![](docs/has-protocol-flow.png)
 
 # New mechanism plugin API
 
@@ -39,6 +39,30 @@
 // will be used to exchange a Kerberos ticket.
 AuthToken authenticate(AuthToken userToken) throws HasAuthenException
 ```
+## High Availability
+Please look at [High Availability](docs/has-ha.md) for details.
+
+## Cross Realm
+Please look at [How to setup cross-realm](docs/cross-realm.md) for details.
+
+## Performance test report
+Please look at [docs/performance-report.md) for details.
+
+## List of supported Hadoop ecosystem components
+
+|   Big Data Components   |           Supported         |   Rebuild Required   |
+|:-----------------------:|:---------------------------:|:--------------------:|
+| Hadoop                  | Yes                         | Yes                  |
+| Zookeeper               | Yes                         | Yes                  |
+| HBase                   | Yes                         | Yes                  |
+| Hive                    | Yes                         | No                   |
+| Phoenix                 | Yes                         | No                   |
+| Thrift                  | Yes                         | No                   |
+| Spark                   | Yes                         | No                   |
+| Oozie                   | Yes                         | No                   |
+| Presto                  | Yes (0.148 and later)       | No                   |
+| Pig                     | Yes                         | No                   |
+| Sqoop                   | Yes                         | No                   |
 
 ## Getting Started
-Please look at [Getting Started](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/has-start.md) for details.
+Please look at [Getting Started](docs/has-start.md) for details.
diff --git a/has-project/docs/has-start.md b/has-project/docs/has-start.md
index 46b6c67..8fbf825 100644
--- a/has-project/docs/has-start.md
+++ b/has-project/docs/has-start.md
@@ -17,7 +17,7 @@
 ## 2. Start and configure HAS server
 
 ### Deploy https
-Please look at [How to deploy https](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/deploy-https.md) for details.
+Please look at [How to deploy https](deploy-https.md) for details.
 
 ### Configure has-server.conf in <conf_dir>:
 An example of has-server.conf:
@@ -60,10 +60,10 @@
 HasInitTool: exit
 ```
 #### Enable MySQL plugin
-Please refer to [MySQL plugin](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/mysql-plugin.md).
+Please refer to [MySQL plugin](mysql-plugin.md).
 
 #### Enable LDAP plugin
-Please refer to [LDAP plugin](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/ldap-plugin.md).
+Please refer to [LDAP plugin](ldap-plugin.md).
 
 
 ### Configure HAS backend:
@@ -109,7 +109,7 @@
 ```
 
 ### Deploy http spnego
-Please look at [How to deploy http spnego](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/deploy-spnego.md) for details.
+Please look at [How to deploy http spnego](deploy-spnego.md) for details.
 Please restart the HAS server
 
 ```
diff --git a/has-project/docs/performance-report.md b/has-project/docs/performance-report.md
new file mode 100644
index 0000000..319bec2
--- /dev/null
+++ b/has-project/docs/performance-report.md
@@ -0,0 +1,98 @@
+# HAS Performance Test Report
+
+## 1. Overview
+
+HAS is a dedicated Hadoop authentication server to support various authentication mechanisms other than just Kerberos. With HAS users can remain their familiar login methods, and new authentication mechanism could be customized and plugined.  
+
+A Hadoop cluster could have thousands of nodes, there maybe so many authentication  requests are sent to HAS server at the same time. So the stability in high concurrency is so important for HAS.
+
+## 2. Test Environment
+
+The test use Alibaba Cloud Elastic Compute Service, detailed test environment like the following: 
+
+### 2.1 Hardware environment
+
+* HAS Server:
+
+> CPU:Intel(R) Xeon(R)CPU E5-2682 @ 2.50GHz    
+> MEM: 16GB    
+> Disk: 43GB 86GB    
+
+* HAS Client:
+
+> CPU:Intel(R) Xeon(R)CPU E5-2682 @ 2.50GHz    
+> MEM: 16GB    
+> Disk: 43GB 86GB * 3
+
+### 2.2 Software environment
+
+> OS: CentOS 7.2    
+> JAVA: 1.8    
+> HAS: 1.0.0    
+> MySQL: 5.5.52  
+
+## 3. Test Method
+
+By using [login-test](../../kerby-dist/has-dist/bin/login-test.sh) scripting tool, the test can be broadly divided into four steps:
+
+1. Add principals to HAS server
+2. Export keytab files to HAS Client  
+    
+    ```shell
+    cd HAS/has-dist         
+    sh bin/login-test add <conf_dir> <work_dir> <principal_num>
+    ```
+
+3. Use keytab files to login concurrently
+
+    ```shell                        
+    sh bin/login-test run <conf_dir> <work_dir> <concurrency_num>
+    ```
+
+4. Record login result and the cost time of login
+
+Testing process like the following:
+
+![testing process](https://user-images.githubusercontent.com/9171954/27905170-b7637602-6271-11e7-8fc9-27d494f9b1ee.jpg)
+
+## 4. Test Result
+
+The test result consists of total cost time and time per request of login using keytab file.
+
+### 4.1 Using Json Backend
+
+| Concurrency | 100 | 500 | 1000 | 5000 | 8000 | 10000 |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| Result | Success | Success  | Success  | Success | Success | Success |
+| Total time (ms) | 540 | 1115 | 1661  | 4571 | 6328 | 7208 |
+| Time per request (ms)| 5.400 | 2.230 | 1.661 | 0.914 | 0.791 | 0.721 |
+
+### 4.2 Using MySQL Backend
+
+MySQL Configuration:
+> max connection: 5000              
+> innodb buffer size: 8G
+
+| Concurrency | 100 | 500 | 1000 | 5000 | 8000 | 10000 |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| Result | Success | Success  | Success  | Success | Success | Success |
+| Total time (ms) | 765 | 2880  | 4821  | 12712 | 21419 | 22968 |
+| Time per request (ms)| 7.650 | 5.760  | 4.821  | 2.542 | 2.677 | 2.297 |
+
+## 5. Conclusion
+
+![performance in different backends](https://user-images.githubusercontent.com/9171954/27905152-a9bc2a44-6271-11e7-8ddc-16222ee7d3c4.png)
+
+Figure above demonstrates the time per request of HAS authentication in different backends and concurrency. As can be seen, HAS can complete authentication work in high concurrency, and has a good performance. So HAS is good enough for Hadoop.
+
+The CPU utilization and network IO of HAS server are demonstrated in the appendix, with the number of concurrency up to 10000. The appendix shows that HAS server is not under heavy workload in mysql backend. 
+
+## 6. Appendix
+
+* CPU Utilization
+
+![cpu utilization](https://user-images.githubusercontent.com/9171954/27905176-bf7ea410-6271-11e7-904e-abd1bf532725.jpg)
+
+* Network IO
+
+![network io](https://user-images.githubusercontent.com/9171954/27905186-c717b784-6271-11e7-96d3-2fd317defd96.jpg)
diff --git a/has-project/supports/hadoop/README.md b/has-project/supports/hadoop/README.md
index b485818..70da3a4 100644
--- a/has-project/supports/hadoop/README.md
+++ b/has-project/supports/hadoop/README.md
@@ -17,11 +17,11 @@
 
 ## 2. Distribute and configure Keytab files
 
-### Create keytab and deploy krb5.conf and has-client.conf
+a.  Deploy krb5.conf and has-client.conf
 
-### Distribute keytab files to the corresponding nodes.
+b. Create and distribute keytab files to the corresponding nodes.
 
-### Set permission of keytab files
+c. Set permission of keytab files, restrict access permissions for any keytab files you create.
 
 ## 3. Update hadoop configuration files
  
@@ -235,7 +235,7 @@
 ```
 
 Configure ssl-server.xml:
-Please look at [How to deploy https](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/deploy-https.md).
+Please look at [How to deploy https](../../docs/deploy-https.md).
 
 ## 4. Configure container-executor
 
@@ -310,7 +310,7 @@
 ## 6. Setting up cross-realm for DistCp
 
 ### Setup cross realm trust between realms
-Please look at [How to setup cross-realm](https://github.com/apache/directory-kerby/blob/trunk/has-project/docs/cross-realm.md).
+Please look at [How to setup cross-realm](../../docs/cross-realm.md).
 
 ### Update core-site.xml