Skip to content

HA: complete authoritative address-space hydration and CRDT sequencing #4444

Description

@marcschier

Summary

Track the distributed address-space follow-up in draft #4445: ownership,
authoritative hydration, in-place runtime graph restoration and identical wire
NodeIds across both active/passive and active/active replica sets.

The original review repairs were published in d99995003 and 79da74f14.
The replica identity implementation is included in a78d59067 and 07faf5cfd
in the current draft update.

Implemented

  • Fixed shared namespace slots established before manager construction;
    required explicit replica identity configuration and standard-factory reuse.
  • Policy-preserving rebasing/replacement, collision and writer-allocation guards,
    retained-ID reservations, and identity-preserving child hydration.
  • Protected strongly routed store contracts, explicit verified-new hybrid
    provisioning, and active/active descriptor validation before merge.
  • Namespace checks for references, type/data metadata, permissions and typed
    structured values, including arrays, matrices and method arguments.
  • Hidden-manager hydration before publication, runtime source rebinding, normal
    AddNodes capture through cached adapters, and retained IDs after successive
    manager reloads.
  • WoT stable-factory integration and runnable server/client identity examples.
  • The earlier corruption, sequence coordination, topology/incarnation, pending
    value, subtree handler and final-snapshot disposal fixes remain intact.

Validation

Selected suites pass on each of net10.0 and net48: 215 HA/identity cases,
213 factory/authoring/import/NodeManagement/adapter cases, and 68 WoT cases.
This includes real-client Browse/Read/subscription use with unchanged NodeIds in
all four deterministic modes, restart, and real AddNodes/live manager reload.

Two three-process sample cases cover active/passive Raft and active/active CRDT:
the serving replica is terminated, a different serving server is verified, and
the exact cached factory NodeIds are reused for Read/CreateMonitoredItems with
no remapping or rebrowsing. The existing NativeAOT companion host also executes
the identity/hydration test as a native win-x64 binary.

A deterministic regression reproduces and fixes accidental re-publication of
temporary hydration removals as writer deletions.

Deliberate limits and remaining readiness

Strong sequence allocation does not make eventual payload reads authoritative.
CRDT absence cannot authorize deletion, seeding or partition completion; compacted
snapshots need strong storage, and uncertain reservations need reconciliation.
Existing unbound state is not silently adopted, reminted, renumbered or erased.

Keep this issue open and #4445 in draft for full-solution CI, coverage gates and
maintainer review. Targeted framework/native results are not a claim that the
entire solution or all native platforms were validated.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    HAenhancementAPI or feature enhancement

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions