Skip to content

docs: redraw the disaster recovery diagrams as SVG - #2869

Merged
fengjiachun merged 6 commits into
mainfrom
docs/dr-diagrams-svg
Sep 12, 2026
Merged

docs: redraw the disaster recovery diagrams as SVG#2869
fengjiachun merged 6 commits into
mainfrom
docs/dr-diagrams-svg

Conversation

@fengjiachun

@fengjiachun fengjiachun commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Twelve PNG diagrams in the DR docs were still in an older visual style, while the same docset had already moved to hand-authored SVG — img/active-active-forwarding.svg (#2689) and the concepts pages. This redraws all twelve in that style: vector, Arial, the #6f6fff palette, title and desc for accessibility.

Two kinds of change

The eight overview diagrams keep their content unchanged — same boxes, same labels, same numbers. Only the drawing changes.

The four cross-region diagrams are remodelled to use the element set of Single-region-single-cluster.svg, so the overview and the cross-region page read as one family: Metasrv and Frontend over AZ frames holding one Datanode per DC, a Region Failover, and one shared Remote WAL / object storage / metadata backend tier.

What that trades away, deliberately:

  • leader and follower roles on the Metasrv and WAL broker pills — the 2-2-1 majority is now carried by the per-region Metasrv × N counts
  • the split between wal metasrv and wal brokers, and the per-AZ broker placement — folded into the single Remote WAL element
  • two Datanodes per AZ — one per DC now, as in the single-region diagram
  • T1-1 style table shard ids — now Region N, with colour still grouping the regions of one table

What it adds: the object storage and metadata backend tiers, which the page's own prose requires but the diagrams never showed, and a Region Failover, which none of them showed.

Errors found in the current diagrams

  • BR-explain: "dowload" — fixed.
  • Cross-region-single-cluster: Region 2-2 on both Datanode 2 and Datanode 3 — fixed. Table 2 sits on Datanodes 1, 2, 3 and 5, and now runs 2-1 to 2-4 in Datanode order, the way table 1 runs 1-1 to 1-5 and table 3 runs 3-1 to 3-4.
  • BR-DR: Region 1-2 twice inside Cluster 2's Datanode — fixed. Cluster 1 holds Region 1-1 on Datanode 1 and Region 1-2 on Datanode 2, so the restored Datanode carries 1-1 and 1-2.

Correct them in review if the intended distribution was different.

Scope

Nightly and 1.2. Version 1.2 referenced the same twelve PNGs and its cross-region page is word for word the nightly one, so that swap is a reference change only. The PNGs stay in static/ for 1.1 and older, which still reference them.

Chinese variants (*.zh.svg, the pattern the August concepts diagrams use) are not part of this PR — both locales share the English SVGs, exactly as they share the PNGs today.

Checks

  • DOC_LANG=en pnpm check:links passes
  • DOC_LANG=zh pnpm check:links passes
  • git diff --check clean; no lockfile or generated files touched

The DR docs carried twelve PNG diagrams in an older visual style, while
the same docset had already moved to hand-authored SVG in
img/active-active-forwarding.svg and in the concepts pages. Redraw all
twelve in that style: vector, Arial, the #6f6fff palette, and a title
and desc for accessibility.

The eight overview diagrams keep their content unchanged. The four
cross-region diagrams are remodelled to use the element set of
Single-region-single-cluster.svg so the two pages read as one family:
Metasrv and Frontend over AZ frames holding one Datanode per DC, a
Region Failover, and one shared Remote WAL, object storage and metadata
backend tier. That trades away the leader and follower roles, the split
between the wal metasrv and the wal brokers, and the per-AZ broker
placement; it adds the object storage and metadata backend tiers, which
the page's prose requires but the diagrams never showed.

Fix one spelling error found while redrawing: "dowload" in BR-explain.
Two duplicated region numbers, in Cross-region-single-cluster and in
BR-DR, are reproduced as they are today rather than guessed at.

Only the nightly docs point at the SVGs. The PNGs stay because the
versioned docs still reference them.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 12, 2026

Copy link
Copy Markdown

Deploying greptime-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 4d61064
Status: ✅  Deploy successful!
Preview URL: https://20290a68.greptime-docs.pages.dev
Branch Preview URL: https://docs-dr-diagrams-svg.greptime-docs.pages.dev

View logs

@killme2008 killme2008 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost LGTM

Comment thread static/active-active-failover.svg
Comment thread static/BR-explain.svg
Comment thread static/Component-architecture.svg
@killme2008

Copy link
Copy Markdown
Member

Don't forget to backport them into v1.2

- active-active-failover: drop the Region 1 / Region 2 labels and the
  divider. Active-active failover does not generally replicate across
  regions, so the diagram no longer implies it.
- BR-explain: the backup storage holds more than SST files, so the
  files are labelled "Backup file".
- Component-architecture: the WAL and the object storage are both shared
  by every Datanode. Draw them as two full-width bars with an arrow from
  each Datanode, the way Cross-region-single-cluster.svg does, instead of
  two bars of different widths wired to one Datanode each.
Version 1.2 referenced the same twelve PNGs, and its cross-region page is
word for word the nightly one, so the swap is a reference change only.
The PNGs stay for 1.1 and older.
@fengjiachun

Copy link
Copy Markdown
Contributor Author

Extended to 1.2 in c335c86. Version 1.2 referenced the same twelve PNGs and its cross-region page is word for word the nightly one, so that commit only swaps the references — no prose changes, no new files. The PNGs stay in static/ for 1.1 and older, which still point at them.

The Datanode frames carried 54px of dead space under the last Region, so
the double-headed arrows below them were 42px long — shorter than the two
arrowheads together, which made them read as diamonds rather than lines.
Tighten the frames and let the arrows run the extra distance.
Both duplicates predate this PR; the first redraw reproduced them rather
than guess. Resolve them with the smallest change that restores unique
ids, leaving every other label alone:

- Cross-region-single-cluster: table 2 sits on Datanodes 1, 2, 3 and 5,
  so it needs four partition ids. 2-1, 2-2 and 2-3 were already taken by
  Datanodes 1, 2 and 5, so Datanode 3 carries 2-4 instead of a second 2-2.
- BR-DR: cluster 1 holds Region 1-1 on Datanode 1 and Region 1-2 on
  Datanode 2, so the restored Datanode in cluster 2 carries 1-1 and 1-2
  rather than 1-2 twice. The ids it shares with cluster 1 are the point:
  they are the same regions, restored from backup.
@fengjiachun

fengjiachun commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the two duplicated region ids in 701512a, then corrected the numbering in 4d61064.

  • Cross-region-single-cluster: table 2 sits on Datanodes 1, 2, 3 and 5 and now runs 2-1 to 2-4 in Datanode order, so Datanode 3 carries 2-3 and Datanode 5 carries 2-4. That matches how the other tables are numbered: table 1 runs 1-1 to 1-5 across the Datanodes, table 3 runs 3-1 to 3-4, table 4 runs 4-1 to 4-2. My first attempt only renumbered Datanode 3, which restored uniqueness but left table 2 out of order.
  • BR-DR: cluster 1 holds Region 1-1 on Datanode 1 and Region 1-2 on Datanode 2, so the restored Datanode in cluster 2 carries 1-1 and 1-2 instead of 1-2 twice. The ids it shares with cluster 1 are deliberate — they are the same regions, restored from backup.

Correct these in review if the intended distribution was different.

The previous commit kept Datanode 5 untouched and gave Datanode 3 the id
2-4, which restored uniqueness but broke the ordering every other table
follows: table 1 runs 1-1 to 1-5 across the Datanodes, table 3 runs 3-1 to
3-4, table 4 runs 4-1 to 4-2. Table 2 now does the same, 2-1 to 2-4, so
Datanode 3 carries 2-3 and Datanode 5 carries 2-4.
@fengjiachun
fengjiachun merged commit 7c76735 into main Sep 12, 2026
8 checks passed
@fengjiachun
fengjiachun deleted the docs/dr-diagrams-svg branch September 12, 2026 11:21
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.

2 participants