diff --git a/cn/docs/_print/index.html b/cn/docs/_print/index.html
index 775e37c2d..8aa9f3155 100644
--- a/cn/docs/_print/index.html
+++ b/cn/docs/_print/index.html
@@ -6452,7 +6452,7 @@
// what is the name of the brother and the name of the place?
g.V(pluto).out('brother').as('god').out('lives').as('place').select('god','place').by('name')
-
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
# clone code from remote to local repogit clone https://github.com/${GITHUB_USER_NAME}/hugegraph
Configure local HugeGraph repo
cd hugegraph
@@ -6462,7 +6462,7 @@
# set name and email to push code to githubgit config user.name "{full-name}"# like "Jermy Li"git config user.email "{email-address-of-github}"# like "jermy@apache.org"
-
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branch
+
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branchgit checkout master
# pull the latest code from official hugegraphgit pull hugegraph
@@ -6484,7 +6484,7 @@
Please remember to fill in the issue id, which was generated by GitHub after issue creation.
3.4 Push commit to GitHub fork repo
Push the local commit to GitHub fork repo:
# push the local commit to fork repogit push origin bugfix-branch:bugfix-branch
Note that since GitHub requires submitting code through username + token (instead of using username + password directly), you need to create a GitHub token from https://github.com/settings/tokens:
-
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:
I have read the CLA Document and I hereby sign the CLA
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
+
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
5. Code review
Maintainers will start the code review after all the automatic checks are passed:
Check: Contributor License Agreement is signed
Check: Travis CI builds is passed (automatically Test and Deploy)
The commit will be accepted and merged if there is no problem after review.
Please click on “Details” to find the problem if any check does not pass.
If there are checks not passed or changes requested, then continue to modify the code and push again.
6. More changes after review
If we have not passed the review, don’t be discouraged. Usually a commit needs to be reviewed several times before being accepted! Please follow the review comments and make further changes.
After the further changes, we submit them to the local repo:
# commit all updated files in a new commit,# please feel free to enter any appropriate commit message, note that# we will squash all commits in the pull request as one commit when
diff --git a/cn/docs/contribution-guidelines/_print/index.html b/cn/docs/contribution-guidelines/_print/index.html
index d93aaeb02..31834bc18 100644
--- a/cn/docs/contribution-guidelines/_print/index.html
+++ b/cn/docs/contribution-guidelines/_print/index.html
@@ -1,6 +1,6 @@
Contribution Guidelines | HugeGraph
This is the multi-page printable view of this section.
-Click here to print.
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
# clone code from remote to local repogit clone https://github.com/${GITHUB_USER_NAME}/hugegraph
Configure local HugeGraph repo
cd hugegraph
@@ -10,7 +10,7 @@
# set name and email to push code to githubgit config user.name "{full-name}"# like "Jermy Li"git config user.email "{email-address-of-github}"# like "jermy@apache.org"
-
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branch
+
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branchgit checkout master
# pull the latest code from official hugegraphgit pull hugegraph
@@ -32,7 +32,7 @@
Please remember to fill in the issue id, which was generated by GitHub after issue creation.
3.4 Push commit to GitHub fork repo
Push the local commit to GitHub fork repo:
# push the local commit to fork repogit push origin bugfix-branch:bugfix-branch
Note that since GitHub requires submitting code through username + token (instead of using username + password directly), you need to create a GitHub token from https://github.com/settings/tokens:
-
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:
I have read the CLA Document and I hereby sign the CLA
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
+
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
5. Code review
Maintainers will start the code review after all the automatic checks are passed:
Check: Contributor License Agreement is signed
Check: Travis CI builds is passed (automatically Test and Deploy)
The commit will be accepted and merged if there is no problem after review.
Please click on “Details” to find the problem if any check does not pass.
If there are checks not passed or changes requested, then continue to modify the code and push again.
6. More changes after review
If we have not passed the review, don’t be discouraged. Usually a commit needs to be reviewed several times before being accepted! Please follow the review comments and make further changes.
After the further changes, we submit them to the local repo:
# commit all updated files in a new commit,# please feel free to enter any appropriate commit message, note that# we will squash all commits in the pull request as one commit when
diff --git a/cn/docs/contribution-guidelines/contribute/index.html b/cn/docs/contribution-guidelines/contribute/index.html
index eec0ae726..31bc7be37 100644
--- a/cn/docs/contribution-guidelines/contribute/index.html
+++ b/cn/docs/contribution-guidelines/contribute/index.html
@@ -4,22 +4,25 @@
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be …">
如何参与 HugeGraph 社区
TODO: translate this article to Chinese
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
# clone code from remote to local repogit clone https://github.com/${GITHUB_USER_NAME}/hugegraph
Configure local HugeGraph repo
cd hugegraph
@@ -29,7 +32,7 @@
# set name and email to push code to githubgit config user.name "{full-name}"# like "Jermy Li"git config user.email "{email-address-of-github}"# like "jermy@apache.org"
-
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branch
+
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branchgit checkout master
# pull the latest code from official hugegraphgit pull hugegraph
@@ -51,7 +54,7 @@
Please remember to fill in the issue id, which was generated by GitHub after issue creation.
3.4 Push commit to GitHub fork repo
Push the local commit to GitHub fork repo:
# push the local commit to fork repogit push origin bugfix-branch:bugfix-branch
Note that since GitHub requires submitting code through username + token (instead of using username + password directly), you need to create a GitHub token from https://github.com/settings/tokens:
-
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:
I have read the CLA Document and I hereby sign the CLA
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
+
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
5. Code review
Maintainers will start the code review after all the automatic checks are passed:
Check: Contributor License Agreement is signed
Check: Travis CI builds is passed (automatically Test and Deploy)
The commit will be accepted and merged if there is no problem after review.
Please click on “Details” to find the problem if any check does not pass.
If there are checks not passed or changes requested, then continue to modify the code and push again.
6. More changes after review
If we have not passed the review, don’t be discouraged. Usually a commit needs to be reviewed several times before being accepted! Please follow the review comments and make further changes.
After the further changes, we submit them to the local repo:
# commit all updated files in a new commit,# please feel free to enter any appropriate commit message, note that# we will squash all commits in the pull request as one commit when
@@ -65,7 +68,7 @@
git rebase -i master
And push it to GitHub fork repo again:
# force push the local commit to fork repogit push -f origin bugfix-branch:bugfix-branch
-
GitHub will automatically update the Pull Request after we push it, just wait for code review.
diff --git a/cn/docs/contribution-guidelines/index.xml b/cn/docs/contribution-guidelines/index.xml
index 757af8ba7..bbe03726e 100644
--- a/cn/docs/contribution-guidelines/index.xml
+++ b/cn/docs/contribution-guidelines/index.xml
@@ -6,6 +6,7 @@
<p>The following is a contribution guide for HugeGraph:</p>
<img width="884" alt="image" src="https://user-images.githubusercontent.com/9625821/159643158-8bf72c0a-93c3-4a58-8912-7b2ab20ced1d.png">
<h2 id="1-preparation">1. Preparation</h2>
+<p><strong>建议</strong>: 使用 <a href="https://desktop.github.com/">GitHub desktop</a> 可以大幅简化和改善你提交 PR/Commit 的过程, 特别适合新人</p>
<p>We can contribute by reporting issues, submitting code patches or any other feedback.</p>
<p>Before submitting the code, we need to do some preparation:</p>
<ol>
@@ -32,7 +33,6 @@
</span></span><span style="display:flex;"><span>git config user.email <span style="color:#4e9a06">"{email-address-of-github}"</span> <span style="color:#8f5902;font-style:italic"># like "jermy@apache.org"</span>
</span></span></code></pre></div></li>
</ol>
-<p>Optional: You can use <a href="https://desktop.github.com/">GitHub desktop</a> to greatly simplify the commit and update process.</p>
<h2 id="2-create-an-issue-on-github">2. Create an Issue on GitHub</h2>
<p>If you encounter bugs or have any questions, please go to <a href="https://github.com/apache/incubator-hugegraph/issues">GitHub Issues</a> to report them and feel free to <a href="https://github.com/apache/hugegraph/issues/new">create an issue</a>.</p>
<h2 id="3-make-changes-of-code-locally">3. Make changes of code locally</h2>
@@ -89,8 +89,6 @@
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163524204-7fe0e6bf-9c8b-4b1a-ac65-6a0ac423eb16.png"></p>
<h2 id="4-create-a-pull-request">4. Create a Pull Request</h2>
<p>Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.</p>
-<p>Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:</p>
-<p><code>I have read the CLA Document and I hereby sign the CLA</code></p>
<p>Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to <a href="https://github.com/settings/emails">https://github.com/settings/emails</a>:
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163522445-2a50a72a-dea2-434f-9868-3a0d40d0d037.png"></p>
<h2 id="5-code-review">5. Code review</h2>
diff --git a/cn/docs/index.xml b/cn/docs/index.xml
index bf520a0df..7d9ed5938 100644
--- a/cn/docs/index.xml
+++ b/cn/docs/index.xml
@@ -2306,6 +2306,7 @@ HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并
<p>The following is a contribution guide for HugeGraph:</p>
<img width="884" alt="image" src="https://user-images.githubusercontent.com/9625821/159643158-8bf72c0a-93c3-4a58-8912-7b2ab20ced1d.png">
<h2 id="1-preparation">1. Preparation</h2>
+<p><strong>建议</strong>: 使用 <a href="https://desktop.github.com/">GitHub desktop</a> 可以大幅简化和改善你提交 PR/Commit 的过程, 特别适合新人</p>
<p>We can contribute by reporting issues, submitting code patches or any other feedback.</p>
<p>Before submitting the code, we need to do some preparation:</p>
<ol>
@@ -2332,7 +2333,6 @@ HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并
</span></span><span style="display:flex;"><span>git config user.email <span style="color:#4e9a06">"{email-address-of-github}"</span> <span style="color:#8f5902;font-style:italic"># like "jermy@apache.org"</span>
</span></span></code></pre></div></li>
</ol>
-<p>Optional: You can use <a href="https://desktop.github.com/">GitHub desktop</a> to greatly simplify the commit and update process.</p>
<h2 id="2-create-an-issue-on-github">2. Create an Issue on GitHub</h2>
<p>If you encounter bugs or have any questions, please go to <a href="https://github.com/apache/incubator-hugegraph/issues">GitHub Issues</a> to report them and feel free to <a href="https://github.com/apache/hugegraph/issues/new">create an issue</a>.</p>
<h2 id="3-make-changes-of-code-locally">3. Make changes of code locally</h2>
@@ -2389,8 +2389,6 @@ HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163524204-7fe0e6bf-9c8b-4b1a-ac65-6a0ac423eb16.png"></p>
<h2 id="4-create-a-pull-request">4. Create a Pull Request</h2>
<p>Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.</p>
-<p>Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:</p>
-<p><code>I have read the CLA Document and I hereby sign the CLA</code></p>
<p>Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to <a href="https://github.com/settings/emails">https://github.com/settings/emails</a>:
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163522445-2a50a72a-dea2-434f-9868-3a0d40d0d037.png"></p>
<h2 id="5-code-review">5. Code review</h2>
diff --git a/cn/sitemap.xml b/cn/sitemap.xml
index 2f2860fa4..a651944c5 100644
--- a/cn/sitemap.xml
+++ b/cn/sitemap.xml
@@ -1 +1 @@
-/cn/docs/guides/architectural/2023-06-25T21:06:07+08:00/cn/docs/config/config-guide/2023-06-21T14:48:04+08:00/cn/docs/language/hugegraph-gremlin/2023-01-01T16:16:43+08:00/cn/docs/performance/hugegraph-benchmark-0.5.6/2022-09-15T15:16:23+08:00/cn/docs/quickstart/hugegraph-server/2023-06-25T21:06:07+08:00/cn/docs/introduction/readme/2023-06-18T14:57:33+08:00/cn/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/cn/docs/clients/restful-api/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/contribute/2023-06-26T14:59:53+08:00/cn/docs/config/config-option/2023-02-08T20:56:09+08:00/cn/docs/guides/desgin-concept/2022-04-17T11:36:55+08:00/cn/docs/download/download/2023-06-17T14:43:04+08:00/cn/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/cn/docs/clients/hugegraph-client/2022-09-15T15:16:23+08:00/cn/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/cn/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/cn/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/cn/docs/changelog/hugegraph-0.11.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.12.0-release-notes/2023-01-01T16:16:43+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/cn/docs/config/config-authentication/2022-04-17T11:36:55+08:00/cn/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/cn/docs/guides/custom-plugin/2022-09-15T15:16:23+08:00/cn/docs/performance/hugegraph-loader-performance/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/cn/docs/quickstart/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.10.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertexlabel/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/cn/docs/guides/backup-restore/2022-04-17T11:36:55+08:00/cn/docs/config/2022-04-17T11:36:55+08:00/cn/docs/config/config-https/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/edgelabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.9.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-hubble/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/cn/docs/clients/2022-04-17T11:36:55+08:00/cn/docs/config/config-computer/2023-01-01T16:16:43+08:00/cn/docs/guides/faq/2023-01-04T22:59:07+08:00/cn/docs/clients/restful-api/indexlabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.8.0-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-client/2023-05-18T11:09:55+08:00/cn/docs/guides/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rebuild/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.7.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/cn/docs/language/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.6.1-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/cn/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/cn/docs/performance/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.5.6-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/2022-12-30T19:57:48+08:00/cn/docs/changelog/hugegraph-0.4.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/traverser/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rank/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.3.3-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/variable/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/cn/docs/changelog/hugegraph-0.2.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/task/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/gremlin/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/cn/docs/2022-12-30T19:57:48+08:00/cn/blog/news/2022-04-17T11:36:55+08:00/cn/blog/releases/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/easy-documentation-with-docsy/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/the-second-blog-post/2022-04-17T11:36:55+08:00/cn/blog/2018/01/04/another-great-release/2022-04-17T11:36:55+08:00/cn/docs/cla/2022-04-17T11:36:55+08:00/cn/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T15:16:23+08:00/cn/docs/summary/2023-07-31T23:55:30+08:00/cn/blog/2022-04-17T11:36:55+08:00/cn/categories//cn/community/2022-04-17T11:36:55+08:00/cn/2023-01-04T22:59:07+08:00/cn/search/2022-04-17T11:36:55+08:00/cn/tags/
\ No newline at end of file
+/cn/docs/guides/architectural/2023-06-25T21:06:07+08:00/cn/docs/config/config-guide/2023-06-21T14:48:04+08:00/cn/docs/language/hugegraph-gremlin/2023-01-01T16:16:43+08:00/cn/docs/performance/hugegraph-benchmark-0.5.6/2022-09-15T15:16:23+08:00/cn/docs/quickstart/hugegraph-server/2023-06-25T21:06:07+08:00/cn/docs/introduction/readme/2023-06-18T14:57:33+08:00/cn/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/cn/docs/clients/restful-api/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/contribute/2023-09-09T20:50:32+08:00/cn/docs/config/config-option/2023-02-08T20:56:09+08:00/cn/docs/guides/desgin-concept/2022-04-17T11:36:55+08:00/cn/docs/download/download/2023-06-17T14:43:04+08:00/cn/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/cn/docs/clients/hugegraph-client/2022-09-15T15:16:23+08:00/cn/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/cn/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/cn/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/cn/docs/changelog/hugegraph-0.11.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.12.0-release-notes/2023-01-01T16:16:43+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/cn/docs/config/config-authentication/2022-04-17T11:36:55+08:00/cn/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/cn/docs/guides/custom-plugin/2022-09-15T15:16:23+08:00/cn/docs/performance/hugegraph-loader-performance/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/cn/docs/quickstart/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.10.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertexlabel/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/cn/docs/guides/backup-restore/2022-04-17T11:36:55+08:00/cn/docs/config/2022-04-17T11:36:55+08:00/cn/docs/config/config-https/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/edgelabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.9.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-hubble/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/cn/docs/clients/2022-04-17T11:36:55+08:00/cn/docs/config/config-computer/2023-01-01T16:16:43+08:00/cn/docs/guides/faq/2023-01-04T22:59:07+08:00/cn/docs/clients/restful-api/indexlabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.8.0-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-client/2023-05-18T11:09:55+08:00/cn/docs/guides/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rebuild/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.7.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/cn/docs/language/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.6.1-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/cn/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/cn/docs/performance/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.5.6-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/2022-12-30T19:57:48+08:00/cn/docs/changelog/hugegraph-0.4.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/traverser/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rank/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.3.3-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/variable/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/cn/docs/changelog/hugegraph-0.2.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/task/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/gremlin/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/cn/docs/2022-12-30T19:57:48+08:00/cn/blog/news/2022-04-17T11:36:55+08:00/cn/blog/releases/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/easy-documentation-with-docsy/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/the-second-blog-post/2022-04-17T11:36:55+08:00/cn/blog/2018/01/04/another-great-release/2022-04-17T11:36:55+08:00/cn/docs/cla/2022-04-17T11:36:55+08:00/cn/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T15:16:23+08:00/cn/docs/summary/2023-07-31T23:55:30+08:00/cn/blog/2022-04-17T11:36:55+08:00/cn/categories//cn/community/2022-04-17T11:36:55+08:00/cn/2023-01-04T22:59:07+08:00/cn/search/2022-04-17T11:36:55+08:00/cn/tags/
\ No newline at end of file
diff --git a/docs/_print/index.html b/docs/_print/index.html
index 2853b6ff1..ec4ef80ee 100644
--- a/docs/_print/index.html
+++ b/docs/_print/index.html
@@ -6460,7 +6460,7 @@
// what is the name of the brother and the name of the place?
g.V(pluto).out('brother').as('god').out('lives').as('place').select('god','place').by('name')
-
The size of the datasets used in this test are not mentioned.
Name
Number of Vertices
Number of Edges
File Size
email-enron.txt
36,691
367,661
4MB
com-youtube.ungraph.txt
1,157,806
2,987,624
38.7MB
amazon0601.txt
403,393
3,387,388
47.9MB
com-lj.ungraph.txt
3997961
34681189
479MB
1.3 Service configuration
HugeGraph version: 0.5.6, RestServer and Gremlin Server and backends are on the same server
RocksDB version: rocksdbjni-5.8.6
Titan version: 0.5.4, using thrift+Cassandra mode
Cassandra version: cassandra-3.10, commit-log and data use SSD together
Neo4j version: 2.0.1
The Titan version adapted by graphdb-benchmark is 0.5.4.
2 Test results
2.1 Batch insertion performance
Backend
email-enron(30w)
amazon0601(300w)
com-youtube.ungraph(300w)
com-lj.ungraph(3000w)
HugeGraph
0.629
5.711
5.243
67.033
Titan
10.15
108.569
150.266
1217.944
Neo4j
3.884
18.938
24.890
281.537
Instructions
The data scale is in the table header in terms of edges
The data in the table is the time for batch insertion, in seconds
For example, HugeGraph(RocksDB) spent 5.711 seconds to insert 3 million edges of the amazon0601 dataset.
Conclusion
The performance of batch insertion: HugeGraph(RocksDB) > Neo4j > Titan(thrift+Cassandra)
2.2 Traversal performance
2.2.1 Explanation of terms
FN(Find Neighbor): Traverse all vertices, find the adjacent edges based on each vertex, and use the edges and vertices to find the other vertices adjacent to the original vertex.
FA(Find Adjacent): Traverse all edges, get the source vertex and target vertex based on each edge.
2.2.2 FN performance
Backend
email-enron(3.6w)
amazon0601(40w)
com-youtube.ungraph(120w)
com-lj.ungraph(400w)
HugeGraph
4.072
45.118
66.006
609.083
Titan
8.084
92.507
184.543
1099.371
Neo4j
2.424
10.537
11.609
106.919
Instructions
The data in the table header “( )” represents the data scale, in terms of vertices.
The data in the table represents the time spent traversing vertices, in seconds.
For example, HugeGraph uses the RocksDB backend to traverse all vertices in amazon0601, and search for adjacent edges and another vertex, which takes a total of 45.118 seconds.
2.2.3 FA性能
Backend
email-enron(30w)
amazon0601(300w)
com-youtube.ungraph(300w)
com-lj.ungraph(3000w)
HugeGraph
1.540
10.764
11.243
151.271
Titan
7.361
93.344
169.218
1085.235
Neo4j
1.673
4.775
4.284
40.507
Explanation
The data size in the header “( )” is based on the number of vertices.
The data in the table is the time it takes to traverse the vertices, in seconds.
For example, HugeGraph with RocksDB backend traverses all vertices in the amazon0601 dataset, and looks up adjacent edges and other vertices, taking a total of 45.118 seconds.
2.3 Performance of Common Graph Analysis Methods in HugeGraph
Terminology Explanation
FS (Find Shortest Path): finding the shortest path between two vertices
K-neighbor: all vertices that can be reached by traversing K hops (including 1, 2, 3…(K-1) hops) from the starting vertex
K-out: all vertices that can be reached by traversing exactly K out-edges from the starting vertex.
FS performance
Backend
email-enron(30w)
amazon0601(300w)
com-youtube.ungraph(300w)
com-lj.ungraph(3000w)
HugeGraph
0.494
0.103
3.364
8.155
Titan
11.818
0.239
377.709
575.678
Neo4j
1.719
1.800
1.956
8.530
Explanation
The data in the header “()” represents the data scale in terms of edges
The data in the table is the time it takes to find the shortest path from the first vertex to 100 randomly selected vertices in seconds
For example, HugeGraph using the RocksDB backend to find the shortest path from the first vertex to 100 randomly selected vertices in the amazon0601 graph took a total of 0.103s.
Conclusion
In scenarios with small data size or few vertex relationships, HugeGraph outperforms Neo4j and Titan.
As the data size increases and the degree of vertex association increases, the performance of HugeGraph and Neo4j tends to be similar, both far exceeding Titan.
K-neighbor Performance
Vertex
Depth
Degree 1
Degree 2
Degree 3
Degree 4
Degree 5
Degree 6
v1
Time
0.031s
0.033s
0.048s
0.500s
11.27s
OOM
v111
Time
0.027s
0.034s
0.115s
1.36s
OOM
–
v1111
Time
0.039s
0.027s
0.052s
0.511s
10.96s
OOM
Explanation
HugeGraph-Server’s JVM memory is set to 32GB and may experience OOM when the data is too large.
K-out performance
Vertex
Depth
1st Degree
2nd Degree
3rd Degree
4th Degree
5th Degree
6th Degree
v1
Time
0.054s
0.057s
0.109s
0.526s
3.77s
OOM
Degree
10
133
2453
50,830
1,128,688
v111
Time
0.032s
0.042s
0.136s
1.25s
20.62s
OOM
Degree
10
211
4944
113150
2,629,970
v1111
Time
0.039s
0.045s
0.053s
1.10s
2.92s
OOM
Degree
10
140
2555
50825
1,070,230
Explanation
The JVM memory of HugeGraph-Server is set to 32GB, and OOM may occur when the data is too large.
Conclusion
In the FS scenario, HugeGraph outperforms Neo4j and Titan in terms of performance.
In the K-neighbor and K-out scenarios, HugeGraph can achieve results returned within seconds within 5 degrees.
2.4 Comprehensive Performance Test - CW
Database
Size 1000
Size 5000
Size 10000
Size 20000
HugeGraph(core)
20.804
242.099
744.780
1700.547
Titan
45.790
820.633
2652.235
9568.623
Neo4j
5.913
50.267
142.354
460.880
Explanation
The “scale” is based on the number of vertices.
The data in the table is the time required to complete community discovery, in seconds. For example, if HugeGraph uses the RocksDB backend and operates on a dataset of 10,000 vertices, and the community aggregation is no longer changing, it takes 744.780 seconds.
The CW test is a comprehensive evaluation of CRUD operations.
In this test, HugeGraph, like Titan, did not use the client and directly operated on the core.
Conclusion
Performance of community detection algorithm: Neo4j > HugeGraph > Titan
8.2 - HugeGraph-API Performance
The HugeGraph API performance test mainly tests HugeGraph-Server’s ability to concurrently process RESTful API requests, including:
Single insertion of vertices/edges
Batch insertion of vertices/edges
Vertex/Edge Queries
For the performance test of the RESTful API of each release version of HugeGraph, please refer to:
Information about the machine used to generate load: configured the same as the machine that is being tested under load.
Testing tool: Apache JMeter 2.5.1
Note: The load-generating machine and the machine under test are located in the same local network.
2 Test description
2.1 Definition of terms (the unit of time is ms)
Samples: The total number of threads completed in the current scenario.
Average: The average response time.
Median: The statistical median of the response time.
90% Line: The response time below which 90% of all threads fall.
Min: The minimum response time.
Max: The maximum response time.
Error: The error rate.
Throughput: The number of requests processed per unit of time.
KB/sec: Throughput measured in terms of data transferred per second.
2.2 Underlying storage
RocksDB is used for backend storage, HugeGraph and RocksDB are both started on the same machine, and the configuration files related to the server remain as default except for the modification of the host and port.
3 Summary of performance results
The speed of inserting a single vertex and edge in HugeGraph is about 1w per second
The batch insertion speed of vertices and edges is much faster than the single insertion speed
The concurrency of querying vertices and edges by id can reach more than 13000, and the average delay of requests is less than 50ms
4 Test results and analysis
4.1 batch insertion
4.1.1 Upper limit stress testing
Test methods
The upper limit of stress testing is to continuously increase the concurrency and test whether the server can still provide services normally.
Stress Parameters
Duration: 5 minutes
Maximum insertion speed for vertices:
####### in conclusion:
With a concurrency of 2200, the throughput for vertices is 2026.8. This means that the system can process data at a rate of 405360 per second (2026.8 * 200).
Maximum insertion speed for edges
####### Conclusion:
With a concurrency of 900, the throughput for edges is 776.9. This means that the system can process data at a rate of 388450 per second (776.9 * 500).
4.2 Single insertion
4.2.1 Stress limit testing
Test Methods
Stress limit testing is a process of continuously increasing the concurrency level to test the upper limit of the server’s ability to provide normal service.
Stress parameters
Duration: 5 minutes.
Service exception indicator: Error rate greater than 0.00%.
Single vertex insertion
####### Conclusion:
With a concurrency of 11500, the throughput is 10730. This means that the system can handle a single concurrent insertion of vertices at a concurrency level of 11500.
Single edge insertion
####### Conclusion:
With a concurrency of 9000, the throughput is 8418. This means that the system can handle a single concurrent insertion of edges at a concurrency level of 9000.
4.3 Search by ID
4.3.1 Stress test upper limit
Testing method
Continuously increasing the concurrency level to test the upper limit of the server’s ability to provide service under normal conditions.
stress parameters
Duration: 5 minutes
Service abnormality indicator: error rate greater than 0.00%
Querying vertices by ID
####### Conclusion:
Concurrency is 14,000, throughput is 12,663. The concurrency capacity for querying vertices by ID is 14,000, with an average delay of 44ms.
Querying edges by ID
####### Conclusion:
Concurrency is 13,000, throughput is 12,225. The concurrency capacity for querying edges by ID is 13,000, with an average delay of 12ms.
8.2.2 - v0.5.6 Cluster(Cassandra)
1 Test environment
Compressed machine information
CPU
Memory
网卡
磁盘
48 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
128G
10000Mbps
750GB SSD,2.7T HDD
Starting Pressure Machine Information: Configured the same as the compressed machine.
Testing tool: Apache JMeter 2.5.1.
Note: The machine used to initiate the load and the machine being tested are located in the same data center (or server room)
2 Test Description
2.1 Definition of terms (the unit of time is ms)
Samples – The total number of threads completed in this scenario.
Average – The average response time.
Median – The median response time in statistical terms.
90% Line – The response time below which 90% of all threads fall.
Min – The minimum response time.
Max – The maximum response time.
Error – The error rate.
Throughput – The number of transactions processed per unit of time.
KB/sec – The throughput measured in terms of data transmitted per second.
2.2 Low-Level Storage
A 15-node Cassandra cluster is used for backend storage. HugeGraph and the Cassandra cluster are located on separate servers. Server-related configuration files are modified only for host and port settings, while the rest remain default.
3 Summary of Performance Results
The speed of single vertex and edge insertion in HugeGraph is 9000 and 4500 per second, respectively.
The speed of bulk vertex and edge insertion is 50,000 and 150,000 per second, respectively, which is much higher than the single insertion speed.
The concurrency for querying vertices and edges by ID can reach more than 12,000, and the average request delay is less than 70ms.
4 Test Results and Analysis
4.1 Batch Insertion
4.1.1 Pressure Upper Limit Test
Test Method
Continuously increase the concurrency level to test the upper limit of the server’s ability to provide services.
Pressure Parameters
Duration: 5 minutes.
Maximum Insertion Speed of Vertices:
Conclusion:
At a concurrency level of 3500, the throughput of vertices is 261, and the amount of data processed per second is 52,200 (261 * 200).
Maximum Insertion Speed of Edges:
Conclusion:
At a concurrency level of 1000, the throughput of edges is 323, and the amount of data processed per second is 161,500 (323 * 500).
4.2 Single Insertion
4.2.1 Pressure Upper Limit Test
Test Method
Continuously increase the concurrency level to test the upper limit of the server’s ability to provide services.
Pressure Parameters
Duration: 5 minutes.
Service exception mark: Error rate greater than 0.00%.
Single Insertion of Vertices:
Conclusion:
At a concurrency level of 9000, the throughput is 8400, and the single-insertion concurrency capability for vertices is 9000.
Single Insertion of Edges:
Conclusion:
At a concurrency level of 4500, the throughput is 4160, and the single-insertion concurrency capability for edges is 4500.
4.3 Query by ID
4.3.1 Pressure Upper Limit Test
Test Method
Continuously increase the concurrency and test the upper limit of the pressure that the server can still provide services normally.
Pressure Parameters
Duration: 5 minutes
Service exception flag: error rate greater than 0.00%
Query by ID for vertices
Conclusion:
The concurrent capacity of the vertex search by ID is 14500, with a throughput of 13576 and an average delay of 11ms.
Edge search by ID
Conclusion:
For edge ID-based queries, the server’s concurrent capacity is up to 12,000, with a throughput of 10,688 and an average latency of 63ms.
8.3 - HugeGraph-Loader Performance
Use Cases
When the number of graph data to be batch inserted (including vertices and edges) is at the billion level or below, or the total data size is less than TB, the HugeGraph-Loader tool can be used to continuously and quickly import graph data.
Performance
The test uses the edge data of website.
RocksDB single-machine performance
When label index is turned off, 228k edges/s.
When label index is turned on, 153k edges/s.
Cassandra cluster performance
When label index is turned on by default, 63k edges/s.
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
The size of the datasets used in this test are not mentioned.
Name
Number of Vertices
Number of Edges
File Size
email-enron.txt
36,691
367,661
4MB
com-youtube.ungraph.txt
1,157,806
2,987,624
38.7MB
amazon0601.txt
403,393
3,387,388
47.9MB
com-lj.ungraph.txt
3997961
34681189
479MB
1.3 Service configuration
HugeGraph version: 0.5.6, RestServer and Gremlin Server and backends are on the same server
RocksDB version: rocksdbjni-5.8.6
Titan version: 0.5.4, using thrift+Cassandra mode
Cassandra version: cassandra-3.10, commit-log and data use SSD together
Neo4j version: 2.0.1
The Titan version adapted by graphdb-benchmark is 0.5.4.
2 Test results
2.1 Batch insertion performance
Backend
email-enron(30w)
amazon0601(300w)
com-youtube.ungraph(300w)
com-lj.ungraph(3000w)
HugeGraph
0.629
5.711
5.243
67.033
Titan
10.15
108.569
150.266
1217.944
Neo4j
3.884
18.938
24.890
281.537
Instructions
The data scale is in the table header in terms of edges
The data in the table is the time for batch insertion, in seconds
For example, HugeGraph(RocksDB) spent 5.711 seconds to insert 3 million edges of the amazon0601 dataset.
Conclusion
The performance of batch insertion: HugeGraph(RocksDB) > Neo4j > Titan(thrift+Cassandra)
2.2 Traversal performance
2.2.1 Explanation of terms
FN(Find Neighbor): Traverse all vertices, find the adjacent edges based on each vertex, and use the edges and vertices to find the other vertices adjacent to the original vertex.
FA(Find Adjacent): Traverse all edges, get the source vertex and target vertex based on each edge.
2.2.2 FN performance
Backend
email-enron(3.6w)
amazon0601(40w)
com-youtube.ungraph(120w)
com-lj.ungraph(400w)
HugeGraph
4.072
45.118
66.006
609.083
Titan
8.084
92.507
184.543
1099.371
Neo4j
2.424
10.537
11.609
106.919
Instructions
The data in the table header “( )” represents the data scale, in terms of vertices.
The data in the table represents the time spent traversing vertices, in seconds.
For example, HugeGraph uses the RocksDB backend to traverse all vertices in amazon0601, and search for adjacent edges and another vertex, which takes a total of 45.118 seconds.
2.2.3 FA性能
Backend
email-enron(30w)
amazon0601(300w)
com-youtube.ungraph(300w)
com-lj.ungraph(3000w)
HugeGraph
1.540
10.764
11.243
151.271
Titan
7.361
93.344
169.218
1085.235
Neo4j
1.673
4.775
4.284
40.507
Explanation
The data size in the header “( )” is based on the number of vertices.
The data in the table is the time it takes to traverse the vertices, in seconds.
For example, HugeGraph with RocksDB backend traverses all vertices in the amazon0601 dataset, and looks up adjacent edges and other vertices, taking a total of 45.118 seconds.
2.3 Performance of Common Graph Analysis Methods in HugeGraph
Terminology Explanation
FS (Find Shortest Path): finding the shortest path between two vertices
K-neighbor: all vertices that can be reached by traversing K hops (including 1, 2, 3…(K-1) hops) from the starting vertex
K-out: all vertices that can be reached by traversing exactly K out-edges from the starting vertex.
FS performance
Backend
email-enron(30w)
amazon0601(300w)
com-youtube.ungraph(300w)
com-lj.ungraph(3000w)
HugeGraph
0.494
0.103
3.364
8.155
Titan
11.818
0.239
377.709
575.678
Neo4j
1.719
1.800
1.956
8.530
Explanation
The data in the header “()” represents the data scale in terms of edges
The data in the table is the time it takes to find the shortest path from the first vertex to 100 randomly selected vertices in seconds
For example, HugeGraph using the RocksDB backend to find the shortest path from the first vertex to 100 randomly selected vertices in the amazon0601 graph took a total of 0.103s.
Conclusion
In scenarios with small data size or few vertex relationships, HugeGraph outperforms Neo4j and Titan.
As the data size increases and the degree of vertex association increases, the performance of HugeGraph and Neo4j tends to be similar, both far exceeding Titan.
K-neighbor Performance
Vertex
Depth
Degree 1
Degree 2
Degree 3
Degree 4
Degree 5
Degree 6
v1
Time
0.031s
0.033s
0.048s
0.500s
11.27s
OOM
v111
Time
0.027s
0.034s
0.115s
1.36s
OOM
–
v1111
Time
0.039s
0.027s
0.052s
0.511s
10.96s
OOM
Explanation
HugeGraph-Server’s JVM memory is set to 32GB and may experience OOM when the data is too large.
K-out performance
Vertex
Depth
1st Degree
2nd Degree
3rd Degree
4th Degree
5th Degree
6th Degree
v1
Time
0.054s
0.057s
0.109s
0.526s
3.77s
OOM
Degree
10
133
2453
50,830
1,128,688
v111
Time
0.032s
0.042s
0.136s
1.25s
20.62s
OOM
Degree
10
211
4944
113150
2,629,970
v1111
Time
0.039s
0.045s
0.053s
1.10s
2.92s
OOM
Degree
10
140
2555
50825
1,070,230
Explanation
The JVM memory of HugeGraph-Server is set to 32GB, and OOM may occur when the data is too large.
Conclusion
In the FS scenario, HugeGraph outperforms Neo4j and Titan in terms of performance.
In the K-neighbor and K-out scenarios, HugeGraph can achieve results returned within seconds within 5 degrees.
2.4 Comprehensive Performance Test - CW
Database
Size 1000
Size 5000
Size 10000
Size 20000
HugeGraph(core)
20.804
242.099
744.780
1700.547
Titan
45.790
820.633
2652.235
9568.623
Neo4j
5.913
50.267
142.354
460.880
Explanation
The “scale” is based on the number of vertices.
The data in the table is the time required to complete community discovery, in seconds. For example, if HugeGraph uses the RocksDB backend and operates on a dataset of 10,000 vertices, and the community aggregation is no longer changing, it takes 744.780 seconds.
The CW test is a comprehensive evaluation of CRUD operations.
In this test, HugeGraph, like Titan, did not use the client and directly operated on the core.
Conclusion
Performance of community detection algorithm: Neo4j > HugeGraph > Titan
8.2 - HugeGraph-API Performance
The HugeGraph API performance test mainly tests HugeGraph-Server’s ability to concurrently process RESTful API requests, including:
Single insertion of vertices/edges
Batch insertion of vertices/edges
Vertex/Edge Queries
For the performance test of the RESTful API of each release version of HugeGraph, please refer to:
Information about the machine used to generate load: configured the same as the machine that is being tested under load.
Testing tool: Apache JMeter 2.5.1
Note: The load-generating machine and the machine under test are located in the same local network.
2 Test description
2.1 Definition of terms (the unit of time is ms)
Samples: The total number of threads completed in the current scenario.
Average: The average response time.
Median: The statistical median of the response time.
90% Line: The response time below which 90% of all threads fall.
Min: The minimum response time.
Max: The maximum response time.
Error: The error rate.
Throughput: The number of requests processed per unit of time.
KB/sec: Throughput measured in terms of data transferred per second.
2.2 Underlying storage
RocksDB is used for backend storage, HugeGraph and RocksDB are both started on the same machine, and the configuration files related to the server remain as default except for the modification of the host and port.
3 Summary of performance results
The speed of inserting a single vertex and edge in HugeGraph is about 1w per second
The batch insertion speed of vertices and edges is much faster than the single insertion speed
The concurrency of querying vertices and edges by id can reach more than 13000, and the average delay of requests is less than 50ms
4 Test results and analysis
4.1 batch insertion
4.1.1 Upper limit stress testing
Test methods
The upper limit of stress testing is to continuously increase the concurrency and test whether the server can still provide services normally.
Stress Parameters
Duration: 5 minutes
Maximum insertion speed for vertices:
####### in conclusion:
With a concurrency of 2200, the throughput for vertices is 2026.8. This means that the system can process data at a rate of 405360 per second (2026.8 * 200).
Maximum insertion speed for edges
####### Conclusion:
With a concurrency of 900, the throughput for edges is 776.9. This means that the system can process data at a rate of 388450 per second (776.9 * 500).
4.2 Single insertion
4.2.1 Stress limit testing
Test Methods
Stress limit testing is a process of continuously increasing the concurrency level to test the upper limit of the server’s ability to provide normal service.
Stress parameters
Duration: 5 minutes.
Service exception indicator: Error rate greater than 0.00%.
Single vertex insertion
####### Conclusion:
With a concurrency of 11500, the throughput is 10730. This means that the system can handle a single concurrent insertion of vertices at a concurrency level of 11500.
Single edge insertion
####### Conclusion:
With a concurrency of 9000, the throughput is 8418. This means that the system can handle a single concurrent insertion of edges at a concurrency level of 9000.
4.3 Search by ID
4.3.1 Stress test upper limit
Testing method
Continuously increasing the concurrency level to test the upper limit of the server’s ability to provide service under normal conditions.
stress parameters
Duration: 5 minutes
Service abnormality indicator: error rate greater than 0.00%
Querying vertices by ID
####### Conclusion:
Concurrency is 14,000, throughput is 12,663. The concurrency capacity for querying vertices by ID is 14,000, with an average delay of 44ms.
Querying edges by ID
####### Conclusion:
Concurrency is 13,000, throughput is 12,225. The concurrency capacity for querying edges by ID is 13,000, with an average delay of 12ms.
8.2.2 - v0.5.6 Cluster(Cassandra)
1 Test environment
Compressed machine information
CPU
Memory
网卡
磁盘
48 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
128G
10000Mbps
750GB SSD,2.7T HDD
Starting Pressure Machine Information: Configured the same as the compressed machine.
Testing tool: Apache JMeter 2.5.1.
Note: The machine used to initiate the load and the machine being tested are located in the same data center (or server room)
2 Test Description
2.1 Definition of terms (the unit of time is ms)
Samples – The total number of threads completed in this scenario.
Average – The average response time.
Median – The median response time in statistical terms.
90% Line – The response time below which 90% of all threads fall.
Min – The minimum response time.
Max – The maximum response time.
Error – The error rate.
Throughput – The number of transactions processed per unit of time.
KB/sec – The throughput measured in terms of data transmitted per second.
2.2 Low-Level Storage
A 15-node Cassandra cluster is used for backend storage. HugeGraph and the Cassandra cluster are located on separate servers. Server-related configuration files are modified only for host and port settings, while the rest remain default.
3 Summary of Performance Results
The speed of single vertex and edge insertion in HugeGraph is 9000 and 4500 per second, respectively.
The speed of bulk vertex and edge insertion is 50,000 and 150,000 per second, respectively, which is much higher than the single insertion speed.
The concurrency for querying vertices and edges by ID can reach more than 12,000, and the average request delay is less than 70ms.
4 Test Results and Analysis
4.1 Batch Insertion
4.1.1 Pressure Upper Limit Test
Test Method
Continuously increase the concurrency level to test the upper limit of the server’s ability to provide services.
Pressure Parameters
Duration: 5 minutes.
Maximum Insertion Speed of Vertices:
Conclusion:
At a concurrency level of 3500, the throughput of vertices is 261, and the amount of data processed per second is 52,200 (261 * 200).
Maximum Insertion Speed of Edges:
Conclusion:
At a concurrency level of 1000, the throughput of edges is 323, and the amount of data processed per second is 161,500 (323 * 500).
4.2 Single Insertion
4.2.1 Pressure Upper Limit Test
Test Method
Continuously increase the concurrency level to test the upper limit of the server’s ability to provide services.
Pressure Parameters
Duration: 5 minutes.
Service exception mark: Error rate greater than 0.00%.
Single Insertion of Vertices:
Conclusion:
At a concurrency level of 9000, the throughput is 8400, and the single-insertion concurrency capability for vertices is 9000.
Single Insertion of Edges:
Conclusion:
At a concurrency level of 4500, the throughput is 4160, and the single-insertion concurrency capability for edges is 4500.
4.3 Query by ID
4.3.1 Pressure Upper Limit Test
Test Method
Continuously increase the concurrency and test the upper limit of the pressure that the server can still provide services normally.
Pressure Parameters
Duration: 5 minutes
Service exception flag: error rate greater than 0.00%
Query by ID for vertices
Conclusion:
The concurrent capacity of the vertex search by ID is 14500, with a throughput of 13576 and an average delay of 11ms.
Edge search by ID
Conclusion:
For edge ID-based queries, the server’s concurrent capacity is up to 12,000, with a throughput of 10,688 and an average latency of 63ms.
8.3 - HugeGraph-Loader Performance
Use Cases
When the number of graph data to be batch inserted (including vertices and edges) is at the billion level or below, or the total data size is less than TB, the HugeGraph-Loader tool can be used to continuously and quickly import graph data.
Performance
The test uses the edge data of website.
RocksDB single-machine performance
When label index is turned off, 228k edges/s.
When label index is turned on, 153k edges/s.
Cassandra cluster performance
When label index is turned on by default, 63k edges/s.
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
# clone code from remote to local repogit clone https://github.com/${GITHUB_USER_NAME}/hugegraph
Configure local HugeGraph repo
cd hugegraph
@@ -6470,7 +6470,7 @@
# set name and email to push code to githubgit config user.name "{full-name}"# like "Jermy Li"git config user.email "{email-address-of-github}"# like "jermy@apache.org"
-
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branch
+
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branchgit checkout master
# pull the latest code from official hugegraphgit pull hugegraph
@@ -6492,7 +6492,7 @@
Please remember to fill in the issue id, which was generated by GitHub after issue creation.
3.4 Push commit to GitHub fork repo
Push the local commit to GitHub fork repo:
# push the local commit to fork repogit push origin bugfix-branch:bugfix-branch
Note that since GitHub requires submitting code through username + token (instead of using username + password directly), you need to create a GitHub token from https://github.com/settings/tokens:
-
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:
I have read the CLA Document and I hereby sign the CLA
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
+
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
5. Code review
Maintainers will start the code review after all the automatic checks are passed:
Check: Contributor License Agreement is signed
Check: Travis CI builds is passed (automatically Test and Deploy)
The commit will be accepted and merged if there is no problem after review.
Please click on “Details” to find the problem if any check does not pass.
If there are checks not passed or changes requested, then continue to modify the code and push again.
6. More changes after review
If we have not passed the review, don’t be discouraged. Usually a commit needs to be reviewed several times before being accepted! Please follow the review comments and make further changes.
After the further changes, we submit them to the local repo:
# commit all updated files in a new commit,# please feel free to enter any appropriate commit message, note that# we will squash all commits in the pull request as one commit when
diff --git a/docs/contribution-guidelines/_print/index.html b/docs/contribution-guidelines/_print/index.html
index b066277e0..55af956a4 100644
--- a/docs/contribution-guidelines/_print/index.html
+++ b/docs/contribution-guidelines/_print/index.html
@@ -1,6 +1,6 @@
Contribution Guidelines | HugeGraph
This is the multi-page printable view of this section.
-Click here to print.
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
# clone code from remote to local repogit clone https://github.com/${GITHUB_USER_NAME}/hugegraph
Configure local HugeGraph repo
cd hugegraph
@@ -10,7 +10,7 @@
# set name and email to push code to githubgit config user.name "{full-name}"# like "Jermy Li"git config user.email "{email-address-of-github}"# like "jermy@apache.org"
-
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branch
+
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branchgit checkout master
# pull the latest code from official hugegraphgit pull hugegraph
@@ -32,7 +32,7 @@
Please remember to fill in the issue id, which was generated by GitHub after issue creation.
3.4 Push commit to GitHub fork repo
Push the local commit to GitHub fork repo:
# push the local commit to fork repogit push origin bugfix-branch:bugfix-branch
Note that since GitHub requires submitting code through username + token (instead of using username + password directly), you need to create a GitHub token from https://github.com/settings/tokens:
-
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:
I have read the CLA Document and I hereby sign the CLA
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
+
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
5. Code review
Maintainers will start the code review after all the automatic checks are passed:
Check: Contributor License Agreement is signed
Check: Travis CI builds is passed (automatically Test and Deploy)
The commit will be accepted and merged if there is no problem after review.
Please click on “Details” to find the problem if any check does not pass.
If there are checks not passed or changes requested, then continue to modify the code and push again.
6. More changes after review
If we have not passed the review, don’t be discouraged. Usually a commit needs to be reviewed several times before being accepted! Please follow the review comments and make further changes.
After the further changes, we submit them to the local repo:
# commit all updated files in a new commit,# please feel free to enter any appropriate commit message, note that# we will squash all commits in the pull request as one commit when
diff --git a/docs/contribution-guidelines/contribute/index.html b/docs/contribution-guidelines/contribute/index.html
index 79a7cbe8a..9523d9adf 100644
--- a/docs/contribution-guidelines/contribute/index.html
+++ b/docs/contribution-guidelines/contribute/index.html
@@ -1,22 +1,22 @@
How to Contribute to HugeGraph | HugeGraph
+1. Preparation Optional: You can use GitHub desktop to greatly simplify the commit and update process.
+We can contribute by reporting issues, submitting code patches or any other feedback.
+Before submitting the code, we need to do some preparation:">
How to Contribute to HugeGraph
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
Thanks for taking the time to contribute! As an open source project, HugeGraph is looking forward to be contributed from everyone, and we are also grateful to all the contributors.
The following is a contribution guide for HugeGraph:
1. Preparation
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
We can contribute by reporting issues, submitting code patches or any other feedback.
Before submitting the code, we need to do some preparation:
# clone code from remote to local repogit clone https://github.com/${GITHUB_USER_NAME}/hugegraph
Configure local HugeGraph repo
cd hugegraph
@@ -26,7 +26,7 @@
# set name and email to push code to githubgit config user.name "{full-name}"# like "Jermy Li"git config user.email "{email-address-of-github}"# like "jermy@apache.org"
-
Optional: You can use GitHub desktop to greatly simplify the commit and update process.
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branch
+
2. Create an Issue on GitHub
If you encounter bugs or have any questions, please go to GitHub Issues to report them and feel free to create an issue.
3. Make changes of code locally
3.1 Create a new branch
Please don’t use master branch for development. We should create a new branch instead:
# checkout master branchgit checkout master
# pull the latest code from official hugegraphgit pull hugegraph
@@ -48,7 +48,7 @@
Please remember to fill in the issue id, which was generated by GitHub after issue creation.
3.4 Push commit to GitHub fork repo
Push the local commit to GitHub fork repo:
# push the local commit to fork repogit push origin bugfix-branch:bugfix-branch
Note that since GitHub requires submitting code through username + token (instead of using username + password directly), you need to create a GitHub token from https://github.com/settings/tokens:
-
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:
I have read the CLA Document and I hereby sign the CLA
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
+
4. Create a Pull Request
Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.
Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to https://github.com/settings/emails:
5. Code review
Maintainers will start the code review after all the automatic checks are passed:
Check: Contributor License Agreement is signed
Check: Travis CI builds is passed (automatically Test and Deploy)
The commit will be accepted and merged if there is no problem after review.
Please click on “Details” to find the problem if any check does not pass.
If there are checks not passed or changes requested, then continue to modify the code and push again.
6. More changes after review
If we have not passed the review, don’t be discouraged. Usually a commit needs to be reviewed several times before being accepted! Please follow the review comments and make further changes.
After the further changes, we submit them to the local repo:
# commit all updated files in a new commit,# please feel free to enter any appropriate commit message, note that# we will squash all commits in the pull request as one commit when
@@ -62,7 +62,7 @@
git rebase -i master
And push it to GitHub fork repo again:
# force push the local commit to fork repogit push -f origin bugfix-branch:bugfix-branch
-
GitHub will automatically update the Pull Request after we push it, just wait for code review.
diff --git a/docs/contribution-guidelines/index.xml b/docs/contribution-guidelines/index.xml
index 49e55da86..e5f015703 100644
--- a/docs/contribution-guidelines/index.xml
+++ b/docs/contribution-guidelines/index.xml
@@ -3,6 +3,7 @@
<p>The following is a contribution guide for HugeGraph:</p>
<img width="884" alt="image" src="https://user-images.githubusercontent.com/9625821/159643158-8bf72c0a-93c3-4a58-8912-7b2ab20ced1d.png">
<h2 id="1-preparation">1. Preparation</h2>
+<p>Optional: You can use <a href="https://desktop.github.com/">GitHub desktop</a> to greatly simplify the commit and update process.</p>
<p>We can contribute by reporting issues, submitting code patches or any other feedback.</p>
<p>Before submitting the code, we need to do some preparation:</p>
<ol>
@@ -29,7 +30,6 @@
</span></span><span style="display:flex;"><span>git config user.email <span style="color:#4e9a06">"{email-address-of-github}"</span> <span style="color:#8f5902;font-style:italic"># like "jermy@apache.org"</span>
</span></span></code></pre></div></li>
</ol>
-<p>Optional: You can use <a href="https://desktop.github.com/">GitHub desktop</a> to greatly simplify the commit and update process.</p>
<h2 id="2-create-an-issue-on-github">2. Create an Issue on GitHub</h2>
<p>If you encounter bugs or have any questions, please go to <a href="https://github.com/apache/incubator-hugegraph/issues">GitHub Issues</a> to report them and feel free to <a href="https://github.com/apache/hugegraph/issues/new">create an issue</a>.</p>
<h2 id="3-make-changes-of-code-locally">3. Make changes of code locally</h2>
@@ -86,8 +86,6 @@
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163524204-7fe0e6bf-9c8b-4b1a-ac65-6a0ac423eb16.png"></p>
<h2 id="4-create-a-pull-request">4. Create a Pull Request</h2>
<p>Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.</p>
-<p>Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:</p>
-<p><code>I have read the CLA Document and I hereby sign the CLA</code></p>
<p>Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to <a href="https://github.com/settings/emails">https://github.com/settings/emails</a>:
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163522445-2a50a72a-dea2-434f-9868-3a0d40d0d037.png"></p>
<h2 id="5-code-review">5. Code review</h2>
diff --git a/docs/index.xml b/docs/index.xml
index 4c187f5bd..26cc4c512 100644
--- a/docs/index.xml
+++ b/docs/index.xml
@@ -817,6 +817,7 @@
<p>The following is a contribution guide for HugeGraph:</p>
<img width="884" alt="image" src="https://user-images.githubusercontent.com/9625821/159643158-8bf72c0a-93c3-4a58-8912-7b2ab20ced1d.png">
<h2 id="1-preparation">1. Preparation</h2>
+<p>Optional: You can use <a href="https://desktop.github.com/">GitHub desktop</a> to greatly simplify the commit and update process.</p>
<p>We can contribute by reporting issues, submitting code patches or any other feedback.</p>
<p>Before submitting the code, we need to do some preparation:</p>
<ol>
@@ -843,7 +844,6 @@
</span></span><span style="display:flex;"><span>git config user.email <span style="color:#4e9a06">"{email-address-of-github}"</span> <span style="color:#8f5902;font-style:italic"># like "jermy@apache.org"</span>
</span></span></code></pre></div></li>
</ol>
-<p>Optional: You can use <a href="https://desktop.github.com/">GitHub desktop</a> to greatly simplify the commit and update process.</p>
<h2 id="2-create-an-issue-on-github">2. Create an Issue on GitHub</h2>
<p>If you encounter bugs or have any questions, please go to <a href="https://github.com/apache/incubator-hugegraph/issues">GitHub Issues</a> to report them and feel free to <a href="https://github.com/apache/hugegraph/issues/new">create an issue</a>.</p>
<h2 id="3-make-changes-of-code-locally">3. Make changes of code locally</h2>
@@ -900,8 +900,6 @@
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163524204-7fe0e6bf-9c8b-4b1a-ac65-6a0ac423eb16.png"></p>
<h2 id="4-create-a-pull-request">4. Create a Pull Request</h2>
<p>Go to the web page of GitHub fork repo, there would be a chance to create a Pull Request after pushing to a new branch, just click button “Compare & pull request” to do it. Then edit the description for proposed changes, which can just be copied from the commit message.</p>
-<p>Please sign the HugeGraph CLA when contributing code for the first time. You can sign the CLA by just posting a Pull Request Comment same as the below format:</p>
-<p><code>I have read the CLA Document and I hereby sign the CLA</code></p>
<p>Note: please make sure the email address you used to submit the code is bound to the GitHub account. For how to bind the email address, please refer to <a href="https://github.com/settings/emails">https://github.com/settings/emails</a>:
<img width="1280" alt="image" src="https://user-images.githubusercontent.com/9625821/163522445-2a50a72a-dea2-434f-9868-3a0d40d0d037.png"></p>
<h2 id="5-code-review">5. Code review</h2>
diff --git a/en/sitemap.xml b/en/sitemap.xml
index 9851a407c..7ec348cee 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -1 +1 @@
-/docs/guides/architectural/2023-06-25T21:06:07+08:00/docs/config/config-guide/2023-06-21T14:48:04+08:00/docs/language/hugegraph-gremlin/2023-05-14T07:29:41-05:00/docs/contribution-guidelines/contribute/2023-06-26T14:59:53+08:00/docs/performance/hugegraph-benchmark-0.5.6/2023-05-14T22:31:02-05:00/docs/quickstart/hugegraph-server/2023-06-25T21:06:07+08:00/docs/introduction/readme/2023-06-18T14:57:33+08:00/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/docs/clients/restful-api/2023-07-31T23:55:30+08:00/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-05-15T22:47:44-05:00/docs/config/config-option/2023-02-08T20:56:09+08:00/docs/guides/desgin-concept/2023-05-14T07:20:21-05:00/docs/download/download/2023-06-17T14:43:04+08:00/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/docs/clients/hugegraph-client/2023-01-01T16:16:43+08:00/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/docs/changelog/hugegraph-0.12.0-release-notes/2023-05-18T06:11:19-05:00/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-05-16T23:30:00-05:00/docs/config/config-authentication/2023-05-19T05:12:35-05:00/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/docs/guides/custom-plugin/2023-05-14T07:22:46-05:00/docs/performance/hugegraph-loader-performance/2023-05-18T00:34:48-05:00/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/docs/quickstart/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/docs/clients/restful-api/vertexlabel/2023-05-19T04:03:23-05:00/docs/guides/backup-restore/2023-05-14T07:26:12-05:00/docs/config/2022-04-17T11:36:55+08:00/docs/config/config-https/2023-05-19T05:04:16-05:00/docs/clients/restful-api/edgelabel/2023-05-19T05:17:26-05:00/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/docs/quickstart/hugegraph-hubble/2023-01-04T22:59:07+08:00/docs/clients/2022-04-17T11:36:55+08:00/docs/config/config-computer/2023-01-01T16:16:43+08:00/docs/guides/faq/2023-05-14T07:28:41-05:00/docs/clients/restful-api/indexlabel/2023-05-19T05:18:17-05:00/docs/quickstart/hugegraph-client/2023-05-14T22:39:27+08:00/docs/guides/2022-04-17T11:36:55+08:00/docs/clients/restful-api/rebuild/2022-05-09T18:43:53+08:00/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/docs/language/2022-04-17T11:36:55+08:00/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/docs/performance/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/2022-12-30T19:36:31+08:00/docs/clients/restful-api/traverser/2023-05-20T06:12:55-05:00/docs/changelog/2022-04-28T21:26:41+08:00/docs/clients/restful-api/rank/2022-09-15T12:59:59+08:00/docs/clients/restful-api/variable/2023-05-21T04:38:57-05:00/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/docs/clients/restful-api/task/2022-09-15T12:59:59+08:00/docs/clients/restful-api/gremlin/2023-05-21T04:39:11-05:00/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/docs/2022-12-30T19:57:48+08:00/blog/news/2022-03-21T18:55:33+08:00/blog/releases/2022-03-21T18:55:33+08:00/blog/2018/10/06/easy-documentation-with-docsy/2022-03-21T18:55:33+08:00/blog/2018/10/06/the-second-blog-post/2022-03-21T18:55:33+08:00/blog/2018/01/04/another-great-release/2022-03-21T18:55:33+08:00/docs/cla/2022-03-21T19:51:14+08:00/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T12:59:59+08:00/docs/summary/2023-07-31T23:55:30+08:00/blog/2022-03-21T18:55:33+08:00/categories//community/2022-03-21T18:55:33+08:00/2023-01-15T13:44:01+00:00/search/2022-03-21T18:55:33+08:00/tags/
\ No newline at end of file
+/docs/guides/architectural/2023-06-25T21:06:07+08:00/docs/config/config-guide/2023-06-21T14:48:04+08:00/docs/language/hugegraph-gremlin/2023-05-14T07:29:41-05:00/docs/contribution-guidelines/contribute/2023-09-09T20:50:32+08:00/docs/performance/hugegraph-benchmark-0.5.6/2023-05-14T22:31:02-05:00/docs/quickstart/hugegraph-server/2023-06-25T21:06:07+08:00/docs/introduction/readme/2023-06-18T14:57:33+08:00/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/docs/clients/restful-api/2023-07-31T23:55:30+08:00/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-05-15T22:47:44-05:00/docs/config/config-option/2023-02-08T20:56:09+08:00/docs/guides/desgin-concept/2023-05-14T07:20:21-05:00/docs/download/download/2023-06-17T14:43:04+08:00/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/docs/clients/hugegraph-client/2023-01-01T16:16:43+08:00/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/docs/changelog/hugegraph-0.12.0-release-notes/2023-05-18T06:11:19-05:00/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-05-16T23:30:00-05:00/docs/config/config-authentication/2023-05-19T05:12:35-05:00/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/docs/guides/custom-plugin/2023-05-14T07:22:46-05:00/docs/performance/hugegraph-loader-performance/2023-05-18T00:34:48-05:00/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/docs/quickstart/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/docs/clients/restful-api/vertexlabel/2023-05-19T04:03:23-05:00/docs/guides/backup-restore/2023-05-14T07:26:12-05:00/docs/config/2022-04-17T11:36:55+08:00/docs/config/config-https/2023-05-19T05:04:16-05:00/docs/clients/restful-api/edgelabel/2023-05-19T05:17:26-05:00/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/docs/quickstart/hugegraph-hubble/2023-01-04T22:59:07+08:00/docs/clients/2022-04-17T11:36:55+08:00/docs/config/config-computer/2023-01-01T16:16:43+08:00/docs/guides/faq/2023-05-14T07:28:41-05:00/docs/clients/restful-api/indexlabel/2023-05-19T05:18:17-05:00/docs/quickstart/hugegraph-client/2023-05-14T22:39:27+08:00/docs/guides/2022-04-17T11:36:55+08:00/docs/clients/restful-api/rebuild/2022-05-09T18:43:53+08:00/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/docs/language/2022-04-17T11:36:55+08:00/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/docs/performance/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/2022-12-30T19:36:31+08:00/docs/clients/restful-api/traverser/2023-05-20T06:12:55-05:00/docs/changelog/2022-04-28T21:26:41+08:00/docs/clients/restful-api/rank/2022-09-15T12:59:59+08:00/docs/clients/restful-api/variable/2023-05-21T04:38:57-05:00/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/docs/clients/restful-api/task/2022-09-15T12:59:59+08:00/docs/clients/restful-api/gremlin/2023-05-21T04:39:11-05:00/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/docs/2022-12-30T19:57:48+08:00/blog/news/2022-03-21T18:55:33+08:00/blog/releases/2022-03-21T18:55:33+08:00/blog/2018/10/06/easy-documentation-with-docsy/2022-03-21T18:55:33+08:00/blog/2018/10/06/the-second-blog-post/2022-03-21T18:55:33+08:00/blog/2018/01/04/another-great-release/2022-03-21T18:55:33+08:00/docs/cla/2022-03-21T19:51:14+08:00/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T12:59:59+08:00/docs/summary/2023-07-31T23:55:30+08:00/blog/2022-03-21T18:55:33+08:00/categories//community/2022-03-21T18:55:33+08:00/2023-01-15T13:44:01+00:00/search/2022-03-21T18:55:33+08:00/tags/
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index ad44381f2..cd15f2aeb 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-/en/sitemap.xml2023-07-31T23:55:30+08:00/cn/sitemap.xml2023-07-31T23:55:30+08:00
\ No newline at end of file
+/en/sitemap.xml2023-09-09T20:50:32+08:00/cn/sitemap.xml2023-09-09T20:50:32+08:00
\ No newline at end of file