Skip to content

ATLAS-5362: Atlas Modular Runtime Architecture — Service Decomposition, Graph-Native Coordination, Active-Active HA, and RunMode-Driven Execution - #711

Open
jackhalfalltrades wants to merge 9 commits into
apache:masterfrom
jackhalfalltrades:ATLAS-5362

Conversation

@jackhalfalltrades

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

ATLAS-5362: Merge latest master updates into the active-active workstream and align active-active runtime behavior, patch execution safety, and docker/dev setup.

This PR includes

  • Active-active runtime and HA updates, including activation flow and request filtering/security alignment.
  • Patch/maintenance reliability improvements:
    • CAS-based handling for patch state.
    • Guardrails for terminal patch states.
    • Re-index/composite-index status patch handling improvements.
  • Task execution resiliency updates:
    • stale claim recovery for in-progress tasks after node failure.
    • executor/task-management/task-registry updates.
  • TypeDef sync and bootstrap controls:
    • TypeDef notifier/consumer additions and bootstrap control changes.
  • Docker/dev-support refresh for active-active and monolithic topologies:
    • updated compose files, scripts, nginx configs, and docs for HBase/Postgres variants.
  • Tests and cleanup:
    • added/updated unit and integration tests around tasking, patching, typedef sync, HA/service state.
    • removed obsolete elector/setup-related tests and classes replaced by newer flow.

How was this patch tested?

  • Verified patch series applies successfully on branch ATLAS-5362.
  • Confirmed resulting commit chain is complete and branch tip updates as expected.
  • Validated repository state after apply (git status) with no tracked-file conflicts remaining.
  • Test coverage updates included in this PR:
  • new/updated tests for patch manager/registry/service, task executor/registry/management, typedef sync, service state, and activation flow.

Chandrakanth Peravelli and others added 8 commits August 17, 2026 13:34
The claim mechanism was covered by GraphClaimTest with a mocked graph, which
can only show that a refusal is interpreted correctly once the store issues
one, and by sequential tests that claim as one node and then try as another.
Neither uses the store, so neither shows that the claim key is really unique
or that dropping a claim leaves the name usable.

GraphClaimConcurrencyTest exercises the primitives against the store: a claim
already held is refused and the refusal reaches the caller as a lost claim, a
released claim can be taken again rather than stranding its uniqueness entry,
and repeated handovers leave no claim vertices behind.

ClusterClaimCoordinationTest covers the relationships between the deferred
startup activities, which the per-activity tests leave untested.  Two
activities sharing a claim name would serialise work meant to run in parallel
with every existing test still passing; index setup and recovery sharing one
is deliberate and would be easy to "fix" into a bug.

Who wins when nodes claim at the same instant is not covered.  Unit tests run
on BerkeleyJE, which reports transaction isolation to JanusGraph, so the
uniqueness constraint is only checked against committed data and a race there
admits several winners whatever the code does.  The production backends do
arbitrate, and verifying that needs one of them.

Co-authored-by: Cursor <cursoragent@cursor.com>
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