Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pulsar-broker] Introduce tenant based bookie isolation #3933

Merged
merged 1 commit into from
Jun 1, 2019

Conversation

rdhabalia
Copy link
Contributor

Motivation

Right now, broker has capability to set bookie isolation at broker level. Using which we can make broker to write into specific set of bookies by creating isolation group.
However, broker doesn't have capability to do bookie isolation based on tenant and We need tenant based bookie isolation because of multiple reasons : eg: performance and dedicated resource allocation.

Modification

Right now, user can setup rack-aware policy-group info for available bookies and user can also setup isolation group and take leverage of ZkIsolatedBookieEnsemblePlacementPolicy.

With this change:

  • broker can manage multiple EnsemblePlacementPolicy based on managed-ledger configuration

  • user can setup bookie-isolation group at namespace level.
    ./pulsar-admin namespaces set-bookie-affinity-group <namespace> --group isolated-group

  • if bookie-isolation group is defined for a namespace then broker will use ZkIsolatedBookieEnsemblePlacementPolicy with given bookie-isolation group and all writes for this namespace's topics will be written to isolated bookies

Result

  • it will not impact existing behavior but by setting bookie-affinity-group user can isolate set of bookies for a given namespace.

@rdhabalia rdhabalia added this to the 2.4.0 milestone Mar 28, 2019
@rdhabalia rdhabalia self-assigned this Mar 28, 2019
@rdhabalia
Copy link
Contributor Author

rerun java8 tests

@rdhabalia
Copy link
Contributor Author

rerun java8 tests
rerun integration tests

1 similar comment
@rdhabalia
Copy link
Contributor Author

rerun java8 tests
rerun integration tests

@rdhabalia
Copy link
Contributor Author

rerun java8 tests

@rdhabalia
Copy link
Contributor Author

rerun cpp tests

@rdhabalia rdhabalia force-pushed the bk_iso branch 2 times, most recently from 2e274eb to 04b68e9 Compare May 21, 2019 06:02
@rdhabalia
Copy link
Contributor Author

@merlimat can you please review this as we want to use it for our bookie isolation usecase.

@rdhabalia rdhabalia force-pushed the bk_iso branch 2 times, most recently from 39f7afa to 79f56db Compare May 21, 2019 19:09
@rdhabalia
Copy link
Contributor Author

rerun integration tests

@rdhabalia
Copy link
Contributor Author

@merlimat can you please review this PR, we want to use it for 2.4 release.

fix tests

add admin cli

fix test
@rdhabalia
Copy link
Contributor Author

rerun integration tests

Copy link
Contributor

@merlimat merlimat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@rdhabalia rdhabalia merged commit 5ac44fe into apache:master Jun 1, 2019
@rdhabalia rdhabalia deleted the bk_iso branch June 1, 2019 06:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants