[
https://issues.apache.org/jira/browse/BOOKKEEPER-912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15229993#comment-15229993
]
Flavio Junqueira commented on BOOKKEEPER-912:
---------------------------------------------
I think one of the difficulties here is to keep bookie "labels" updated. First,
you need to think how to you'd label bookies, If you're labeling according to
tenant, then would you pre-select bookies and label them when the tenant is
created in the system?
Second, if you keep this information in ZK, then you'd need to fetch all
bookies and create a small inverted index locally mapping labels to bookies.
Ideally, we could have ZK filtering by label when requesting children. Perhaps
a feature to think about for ZK if the idea sounds good.
Third, what happens when labels change? Do we tell all clients through
notifications? There is also the possibility that labels of a bookie conflict.
For the sake of example, let's say that a bookie has labels A and B, but
whatever client that uses label A can 't use label B. There might be rules that
need to be verified when assigning labels to bookies.
So those are some thoughts on the issue. Otherwise, I think the multi-tenancy
direction is great.
> Allow EnsemblePlacementPolicy to choose bookies using ledger custom data
> (multitenancy support)
> -----------------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-912
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-912
> Project: Bookkeeper
> Issue Type: New Feature
> Components: bookkeeper-client
> Affects Versions: 4.4.0
> Reporter: Enrico Olivelli
> Fix For: 4.5.0
>
>
> I would like to restrict the set of bookies to be used for a specific ledger.
> Actually a single EnsemblePlacementPolicy is used for all the ledgers.
> This is because I want to create a ledger only using a dedicated set of
> machines/bookies which are dedicated to the 'tenant' for which I'm creating
> the ledger.
> We can add an optional (byte[]) parameter to asyncCreateLedger which in turn
> is to be passed to the configured EnsemblePlacementPolicy which in turn will
> be able to decide which are the most suitable bookies for the tenant.
> This parameter must be stored on ledger metadata, in order to be used in
> replaceBookie.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)