merlimat opened a new pull request, #25559:
URL: https://github.com/apache/pulsar/pull/25559

   ## Summary
   
   First PR in the PIP-468 series introducing scalable topics. This PR lands
   the core broker-side infrastructure:
   
   - `ScalableTopicController` — per-topic coordinator with leader election,
     consumer session management, and layout tracking.
   - `SegmentLayout` — pure data/math for the hash-range segment DAG.
   - `SubscriptionCoordinator` — in-memory consumer-assignment tracking
     per subscription.
   - `ScalableTopicService` — per-broker service managing controller
     lifecycle (get/release controllers, lifecycle hooks on `BrokerService`).
   - Metadata-store resources: `ScalableTopicResources`,
     `ScalableTopicMetadata`, `ConsumerRegistration`, `SubscriptionMetadata`,
     `SubscriptionType`.
   - Unit tests for `SegmentLayout` and `SubscriptionCoordinator`.
   
   ## Tests
   
   Only the self-contained pure-data components have unit tests in this PR
   (`SegmentLayoutTest`, `SubscriptionCoordinatorTest`).
   
   End-to-end tests of `ScalableTopicController` and `ScalableTopicService`
   are deferred to subsequent PRs because their setup depends on code that
   lands later:
   - The tests mock `PulsarAdmin.scalableTopics()`, a type added by the
     admin-API PR.
   - `splitSegment`/`mergeSegments` live with the admin layer (they invoke
     `admin.scalableTopics().createSegmentAsync` / `terminateSegmentAsync`)
     and their tests move with them.
   
   ## Test plan
   
   - [x] `:pulsar-broker:compileJava` / `:pulsar-broker:compileTestJava`
         succeed on this commit in isolation.
   - [x] `./gradlew :pulsar-broker:test --tests 
"org.apache.pulsar.broker.service.scalable.*"`
         passes (`SegmentLayoutTest`, `SubscriptionCoordinatorTest`).


-- 
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]

Reply via email to