bitflicker64 opened a new pull request, #538:
URL: https://github.com/apache/hugegraph-doc/pull/538

   ## Purpose of the PR
   
   - link apache/hugegraph#3368
   
   Docs for apache/hugegraph#3368 
(https://github.com/apache/hugegraph/pull/3368), which splits PD's single Raft 
RPC timeout. The Raft table in section 4.1 of the PD quickstart says 
`raft.rpc-timeout` is the "Raft RPC connect, request and install-snapshot 
timeout", which stops being true with that PR.
   
   Updated in both EN and CN, in `quickstart/hugegraph/hugegraph-pd.md`:
   
   - `raft.rpc-timeout`: the timeout of a Raft RPC between PD nodes, and now 
also the deadline of the ReadIndex wait that PD runs before it reads an id 
counter. Id allocation fails when the wait takes longer.
   - `raft.rpc-connect-timeout` (new, default `1000`): the timeout of the Ping 
that opens a Raft connection to a peer. A candidate connects to its peers one 
at a time, so an election waits this long for each peer that accepts the TCP 
connection but does not answer.
   - `raft.rpc-install-snapshot-timeout` (new, default `0`, which uses 
`raft.rpc-timeout`).
   - A line under the table: both new options exist only in versions after 
1.7.0, where `raft.rpc-timeout` is also the connect and install-snapshot 
timeout.
   - The sentence above the tables that says they were checked at master commit 
`2f827d6e` now adds that the three `raft.rpc-*` rows were checked against 
apache/hugegraph#3368.
   
   How the rows were checked, against apache/hugegraph#3368 at 0e42a32d0:
   
   - The second column stays "not set" for all three. PD starts with 
`-Dspring.config.location=conf/application.yml`, and the `hg-pd-dist` 
`application.yml` sets none of them; the PR adds the two new keys only to 
`application.yml.template` and to the jar's own `application.yml`, which that 
start script does not read.
   - The defaults are the `@Value` defaults in `PDConfig.Raft`. A value of `0` 
or less for the install-snapshot timeout falls back to `raft.rpc-timeout` 
(`getRpcInstallSnapshotTimeout()`).
   - The ReadIndex deadline: `RaftEngine.waitReadIndex()` calls 
`waitReadIndex(this.config.getRpcTimeout())`; a wait that times out throws, and 
`IdMetaStore` does not retry it.
   - jraft-core 1.3.14 bytecode: `AbstractClientService.connect()` sends a 
`PingRequest` with `getRpcConnectTimeoutMs()`, and `NodeImpl.electSelf()` calls 
it for each peer while it holds the node's write lock.
   
   This should merge after apache/hugegraph#3368, since no released PD has the 
two new options.
   
   Checks: `git diff --check`, `bash dist/validate-links.sh` (passed), and 
`scripts/hugo.sh build` (strict build, exit 0); both rendered pages show the 
three rows in the Raft table.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to