Skip to content

doc(server): sync pd with master - #485

Open
bitflicker64 wants to merge 1 commit into
apache:masterfrom
bitflicker64:doc-sync/server-pd
Open

doc(server): sync pd with master#485
bitflicker64 wants to merge 1 commit into
apache:masterfrom
bitflicker64:doc-sync/server-pd

Conversation

@bitflicker64

Copy link
Copy Markdown
Contributor

Syncs the HugeGraph-PD quickstart page (en and cn) with apache/hugegraph master. Every change below traces to a file on master; no other page is touched.

page what was wrong what changed source (file:line on master)
quickstart/hugegraph/hugegraph-pd.md The application.yml sample put initial-store-count: 1 under store:. No such key exists; PD only binds pd.initial-store-count. Removed it, and the sample now mirrors the shipped file exactly, including the management, logging and license blocks it was missing. hugegraph-pd/hg-pd-dist/src/assembly/static/conf/application.yml:22-79; hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/config/PDConfig.java:52
quickstart/hugegraph/hugegraph-pd.md The verification section used curl http://localhost:8620/v1/stores with no credentials. PD registers a REST interceptor on /**, so that request answers {"status":-1,"error":"Unauthorized!"}. Added section 7.1 on REST authentication (HTTP Basic, user name must be one of hg, store, hubble, vermeer, password not validated yet), listed the exempt paths, and changed every example to curl -u store:admin, the credentials the Server's own wait script uses. hugegraph-pd/hg-pd-service/src/main/java/org/apache/hugegraph/pd/rest/interceptor/AuthenticationConfigurer.java:33-36; .../rest/interceptor/RestAuthentication.java:48-60; .../service/interceptor/Authentication.java:62-87; hugegraph-server/hugegraph-dist/src/assembly/static/bin/wait-storage.sh:42
quickstart/hugegraph/hugegraph-pd.md /actuator/health was the only health check shown. /v1/health is the endpoint the image healthcheck and the release test script actually use, and it is the one that needs no credentials. Documented GET /v1/health first, kept /actuator/health as the more readable alternative. hugegraph-pd/Dockerfile:68-69; docker/docker-compose-hstore.yml:47; hugegraph-server/hugegraph-dist/src/assembly/travis/test-start-hugegraph-pd.sh:103-104
quickstart/hugegraph/hugegraph-pd.md The config section listed 12 keys with no defaults and no note of which are required. Most of application.yml was undocumented. Added section 4.1, a full reference for every key PD binds, split into gRPC/REST, Raft, PD core, Store management, Partitions, Discovery/license/metrics and thread pools, with the shipped value, the built-in default and the meaning of each. hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/config/PDConfig.java:44-311; hugegraph-pd/hg-pd-dist/src/assembly/static/conf/application.yml:22-79
quickstart/hugegraph/hugegraph-pd.md raft.enable, raft.ip-whitelist.enabled, raft.snapshotInterval, raft.rpc-timeout, store.keepAlive-timeout, pd.cluster_id, discovery.heartbeat-try-count, auth.secret-key and the thread-pool keys were absent. All added, with defaults from the binding class. The Raft IP allowlist entry explains that it drops non-peer connections and that a peer keeping its hostname but changing IP needs a restart. PDConfig.java:141-153, 175, 44, 291, 72, 129-134, 307-311; hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/raft/auth/IpAuthHandler.java:62-93; .../raft/RaftEngine.java:154-182
quickstart/hugegraph/hugegraph-pd.md The page had no cluster example at all, only "For multi-node deployment, you need to modify the port and address configurations for each node". Added 4.2 single-node and 4.3 three-node cluster configurations, with the per-node files, the identical raft.peers-list rule, the all-on-one-host port layout, and the Docker bridge equivalent. hugegraph-pd/hg-pd-core/.../PDConfig.java:145-150; docker/docker-compose-3pd-3store-3server.yml:96-148
quickstart/hugegraph/hugegraph-pd.md Only -d was documented for start-hugegraph-pd.sh. Added -g, -j and -y with their accepted values, the DAEMON/GC_OPTION/USER_OPTION/OPEN_TELEMETRY/JAVA_OPTIONS/STDOUT_MODE environment equivalents, the 512 MB to 32 GB heap sizing, the already-running guard, and what stop-hugegraph-pd.sh does with bin/pid. Noted that -g g1 aborts the start, only zgc/ZGC or no flag are accepted. hugegraph-pd/hg-pd-dist/src/assembly/static/bin/start-hugegraph-pd.sh:20-42, 70-72, 107-123, 166-199; .../bin/stop-hugegraph-pd.sh:35-48; .../bin/util.sh:180-198, 374-396
quickstart/hugegraph/hugegraph-pd.md Nothing said where PD sits in the cluster startup sequence. Added section 6 with the PD, Store, Server order, what to wait for at each step, how Compose enforces it, and the reverse shutdown order. docker/docker-compose-hstore.yml:46-60, 84-86; docker/docker-compose-3pd-3store-3server.yml:39-44, 51-54, 79-82; hugegraph-server/hugegraph-dist/docker/docker-entrypoint.sh:189; hugegraph-server/hugegraph-dist/src/assembly/static/bin/wait-storage.sh:100-118
quickstart/hugegraph/hugegraph-pd.md No list of PD REST endpoints, so there was no way to tell which paths exist. Added section 7.5 listing every mapping in hg-pd-service, with the request bodies for the POST endpoints and a note on which paths skip authentication. Also added 7.3 for /v1/members, /v1/cluster and /. hugegraph-pd/hg-pd-service/src/main/java/org/apache/hugegraph/pd/rest/ (IndexAPI, MemberAPI, StoreAPI, ShardAPI, PartitionAPI, GraphAPI, GraphSpaceAPI, RegistryAPI, TaskAPI, SDConfigAPI)
quickstart/hugegraph/hugegraph-pd.md The Docker section did not mention the image healthcheck, the -d false entrypoint, or what happens when a required variable is missing. Added the healthcheck parameters, the SPRING_APPLICATION_JSON mechanism, the required-variable check, JAVA_OPTS passthrough, and the HG_PD_* to application.yml key mapping in the variable table. hugegraph-pd/Dockerfile:42-72; hugegraph-pd/hg-pd-dist/docker/docker-entrypoint.sh:44-85
quickstart/hugegraph/hugegraph-pd.md The build step named only two output paths and no way to build PD alone. Listed all three outputs, noted the PD-only tarball is produced on Linux build hosts only, added the layout of the unpacked distribution and the -pl hugegraph-pd/hg-pd-dist -am command. hugegraph-pd/pom.xml:47; hugegraph-pd/hg-pd-dist/pom.xml:33, 40-46, 61-67, 95-125; install-dist/pom.xml:32, 47-62; hugegraph-pd/hg-pd-dist/src/assembly/descriptor/server-assembly.xml:26-55
quickstart/hugegraph/hugegraph-pd.md The overview did not say what PD stores or which ports it opens, and the sample store response referenced 1.5.0 paths while the download step uses 1.7.0. Added the storage layout, the port table, and updated the sample deployPath to 1.7.0. hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/store/HgKVStoreImpl.java:70; .../raft/RaftEngine.java:96, 113-117; PDConfig.java:145, 157, 162
quickstart/hugegraph/hugegraph-pd.md (cn) The cn page was missing the sample /v1/stores response that the en page has. Added it, and mirrored every change above into the cn page. n/a

Also removed the em dashes that were already in both files, so the pages use plain ASCII punctuation.

Rewrote the PD quickstart configuration, startup and verification
sections against hugegraph master. Removed the non-existent
store.initial-store-count key, added a full application.yml reference
with the defaults from PDConfig, added single-node and three-node
cluster examples, documented the -g/-j/-y start flags alongside -d,
added the cluster startup order relative to Store and Server, and
documented that PD REST requires HTTP Basic auth for every path
except /v1/health, /actuator/* and /v1/prom/targets/*, so the
verification curl commands now pass credentials. Also added the PD
REST endpoint list, the port table, the Docker healthcheck and
entrypoint behaviour, and the build output paths.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant