bitflicker64 commented on PR #3237:
URL: https://github.com/apache/hugegraph/pull/3237#issuecomment-5855900242
Stage A of the design above is pushed: `7f5672a7c..8d6e18684`. These are
master bugs that stand on their own, so they land before the protocol.
| Commit | Fix |
|---|---|
| `be867b28c` | hstore truncate no longer calls `resetIdByKey` for the
schema store, so new schema ids cannot reuse the ids of elements that survived
the truncate |
| `c26d96130` | the graphspace auth clear deletes `.../AUTH/` instead of
`.../AUTH`, which also matched graphs named like `AUTHx` |
| `2d3dd41a8` | `IdMetaStore.getId` waits for a raft ReadIndex before
reading the counter, so a leader elected a moment ago cannot hand out the same
id range twice |
| `1d4335fdd` | `onSnapshotSave` takes the RocksDB checkpoint on the state
machine thread, so a snapshot cannot hold entries past its index; a failed
checkpoint now completes once with an error instead of reporting an error and
then success |
| `8d6e18684` | new `raft.rpc-connect-timeout` (default 1000 ms), which
removes the 11 s election after the first leader's host is lost.
`raft.rpc-install-snapshot-timeout` is split out too, and its default of 0
keeps today's value, `raft.rpc-timeout`. Both are in
`hugegraph-pd/docs/configuration.md` and the yml templates |
Tests on a local 1 PD, 1 Store run, Java 11, 2026-09-27: PD common 83
passed, PD core 118 passed (2 skipped as before), unit 776 passed, hstore core
817 passed. Each commit adds tests that fail with its fix reverted (5 PD core
failures, and the truncate and auth tests fail).
What is left on this PR:
- **B:** copy-on-write for schema elements. Builders and jobs change cached
objects before the PD write succeeds today, and `copy()` is shallow.
- **C:** the PD commit layer, off behind a flag until every PD node supports
it:
- the TXN op with the per-graph record, compares and request-id dedup;
- the member check before enable;
- refusing plain writes to schema keys once enabled.
- **D:** Server DDL through the TXN, with compares for every DDL kind,
migration of existing graphs, system schema, and the CREATING, DROPPING and
DROPPED states. D lands together with E, so no release polls.
- **E:** `KvService.sync`, the handshake, the 12 s lease and 503 gate, the
per-graph snapshot cache with changed-key reloads, the writer's own-commit
wait, the task-start wait, and metrics. E removes the current poll, the version
key and the schema-clear event puts.
- **Docs and tests:** in-repo docs, a rewrite of apache/hugegraph-doc#498,
the fault tests on a 3 PD cluster, and a new PR description.
Separate from this PR: barrier DDL with Store-side fencing (Q4), and the
Store schema cache fix (Q3).
--
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]