Skip to content

Enable parallel predicate moves across Alpha groups to remove single-threaded constraint and accelerate cluster reorganization #9785

Description

@rahst12

Problem Statement

Dgraph Zero currently enforces a strict global lock allowing only one predicate move at a time across the entire cluster. When rebalancing or reorganizing clusters containing dozens or hundreds of predicates, processing them in a strictly serial, non-concurrent fashion is prohibitively time-consuming, taking days or even weeks to complete.

Impact

  • Operational Bottlenecks: Cluster maintenance, node decommissioning, and rebalancing operations are blocked by single-file predicate transfers.
  • Prohibitive Execution Times: Even if individual predicate moves are optimized, transferring multiple predicates sequentially creates unacceptable operational overhead and unnecessarily long maintenance windows. Writes to the predicate are fully blocked until the predicate moves. In a schema with lots of interconnection, this block expands to large amounts of predicates, causing unknown transaction issues to users. Directly, this error is never surfaced to the client. (See PR starting to address this: feat(txn): surface transaction abort reasons to clients #9747)

Desired Outcome

Dgraph Zero should support concurrent predicate moves across the cluster, allowing operators to move multiple predicates in parallel while maintaining cluster stability and data integrity.

Acceptance Criteria

  • Multiple predicate moves can execute concurrently across the cluster.
  • Total cluster rebalancing duration is significantly reduced compared to the single-threaded serial baseline.
  • Data integrity and tablet ownership state remain consistent during concurrent moves.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions