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

   ## Summary
   
   Adds PIP-474, a sub-PIP of [PIP-460: Scalable 
Topics](https://github.com/apache/pulsar/blob/master/pip/pip-460.md), 
describing the migration path from regular (partitioned or non-partitioned) 
topics to scalable topics.
   
   The document covers:
   
   - **V5 SDK resolution rule** — the V5 SDK opens a single scalable-topic 
lookup session for any input form (`topic://`, `persistent://`, or short name); 
the broker responds with either a real DAG layout or a synthetic layout that 
wraps the existing partitions as **special segments**. No probe call, no 
client-side TTL, no separate v4-wrapper code path.
   - **Migration protocol** — an admin command (`pulsar-admin scalable-topics 
migrate-to-scalable`) that flips a topic from regular to scalable in a single 
metadata-store CAS, with no data copy and no cursor migration. Each old 
partition becomes a sealed parent segment in the new DAG; new active children 
with range-based routing are created alongside, and the existing 
subscription-controller drain-before-assign protocol preserves per-key ordering 
across the migration boundary.
   - **Migration safety** — the migration command is API-enforced: it rejects 
with HTTP 409 if any v4 producer/consumer connections are still attached, 
ensuring all clients have been upgraded before the metadata flip.
   - **Broker-side v4 guard** — once a topic is scalable, the broker returns 
`TopicMigrated` to v4 lookups for the equivalent `persistent://` name, making 
"once scalable, always scalable" robust against stale v4 clients and tooling.
   - **Public-facing changes** — new admin REST endpoint, 
`ScalableTopics.migrateToScalable(...)` admin client method, `pulsar-admin 
scalable-topics migrate-to-scalable` CLI, broker config kill switch, and the 
`migratedFrom` informational field on `ScalableTopicMetadata`.
   
   This PIP only changes documentation under `pip/`. Implementation will land 
in subsequent PRs against the parent PIP-460 tracking issue.
   
   ## Test plan
   - [ ] Review the document on the PIP mailing list thread (TBD link to be 
added once thread is open).


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