pulsar icon indicating copy to clipboard operation
pulsar copied to clipboard

[fix][broker] Immediately tombstone Deleted and Free state bundles and enable MultiPhaseBundleUnload for non-transfer unloading

Open heesung-sohn opened this issue 1 year ago • 0 comments

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

heesung-sohn avatar May 18 '24 13:05 heesung-sohn