[fix][broker] Immediately tombstone Deleted and Free state bundles and enable MultiPhaseBundleUnload for non-transfer unloading
Motivation
-
Extensible Load Balancer cannot split bundles when a namespace is recreated. The old parent bundle before split (in the Deleted state) could block the next split operation until they are tombstoned by the leader monitor bundle cleanup job.
-
Extensible Load Balancer delays bundle cleanups when a namespace is deleted. Those deleted bundles are stuck in Free state until they are tombstoned by the leader monitor bundle cleanup job. Although this delayed tombstone was introduced for non-transfer unloading, these lingering bundles are not ideal when the namespace is deleted.
-
Extensible Load Balancer does not enable MultiPhaseBundleUnload for non-transfer unloading. Realized that we could enable MultiPhaseBundleUnload for the non-transfer unloading as well for more graceful unloading, as per pip-307(e.g. make sure to close ledgers before lookup).
Modifications
- Immediately Tombstone Deleted and Free state bundles.
- Enable MultiPhaseBundleUnload for non-transfer unload
Verifying this change
- [x] Make sure that the change passes the CI checks.
Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
- [ ] Dependencies (add or upgrade a dependency)
- [ ] The public API
- [ ] The schema
- [ ] The default values of configurations
- [ ] The threading model
- [ ] The binary protocol
- [ ] The REST endpoints
- [ ] The admin CLI options
- [ ] The metrics
- [ ] Anything that affects deployment
Documentation
- [ ]
doc - [ ]
doc-required - [x]
doc-not-needed - [ ]
doc-complete
Matching PR in forked repository
PR in forked repository: https://github.com/heesung-sn/pulsar/pull/67