Hi Lin,

I noticed the PIP is updated, and thanks for addressing my comments.
It looks good to me now.

+1 (binding)

Regards,
Penghui

On Mon, May 8, 2023 at 5:16 PM PengHui Li <peng...@apache.org> wrote:

> I'm sorry for not getting back to you sooner.
>
> From the description of the proposal. You have figured out the problems
> with the current
> solution. From my understanding, only the first one is in the scope of
> this proposal.
> The other two problems, one is about the issue from ThresholdShedder and
> another
> one is about the load data sync issue.
>
> It would be better to have a section "Scope" to underline that the
> proposal is
> trying to resolve the first issue. Or we can just describe it in the
> motivation section like
>
> ---
> There are a couple of problems with the current load balancer 1, 2, 3.
> This proposal is
> trying to resolve the first issue by introducing a pluggable topic bundle
> assigner to
> allow users to customize the topic bundle assignment according to their
> use case.
> Problem 2 and 3 is not in the scope of this proposal.
> ---
>
> Just to make it more clear for reviewers to understand what is in the
> scope and not in
> the scope.
>
> I remember there was an implementation section for assigning partitions to
> different bundles. It will be an excellent example for users to understand
> what a customized
> topic bundle assigner looks like. I think we can add it back as an example
> (not implementation)
>
> For the newly introduced configuration in broker.conf.
> I think we'd better use `topicBundleAssignmentStrategy` instead of `
> partitionAssignerClassName.`
> because it is only for partitions. Users can also implement their own 
> BundleAssignmentStrategy
> for
> non-partitioned topics.
>
> For the new methods in the new strategy class:
>
> ---
>     void onBundleSplit(NamespaceBundle bundle);
>     void onBundleUnload(NamespaceBundle bundle);
>     void onBundleOwned(NamespaceBundle namespaceBundle);
> ---
>
> If I understand correctly, there are some cases users might need to handle
> the above events
> to do some topics unloading or other operations. Is it better to
> introduce a listener interface
> to the LoadManager? So that we don't need to add the above method in the
> AssignmentStrategy
> class. For example:
>
> ---
> new MyTopicBundleAssignmentStrategy(PulsarService pulsar) {
>       pulsar.getLoadManager().registerListener(...)
> }
> ---
>
> Not all TopicBundleAssignmentStrategy implementations need to handle the
> events, right?
> So that we can make the new interface better to follow the SRP (Single
> Responsibility Principle).
>
> Thanks,
> Penghui
>
> On Fri, Apr 21, 2023 at 1:50 PM linlin <lin...@apache.org> wrote:
>
>> Hi Pulsar Community,
>>
>> This thread is to start the vote for PIP 255.
>> After discussion, we believe that it is a better way to plug-in the
>> partition assignment strategy,
>> and let customers complete the specific implementation.
>>
>> So the title is change from "Assign topic partitions to bundle by round
>> robin" to
>> "Make the partition assignment strategy pluggable"
>>
>> Discussion:
>> https://lists.apache.org/thread/pxx715jrqjc219pymskz8xcz57jdmcfy
>> Issue: https://github.com/apache/pulsar/issues/19806
>>
>> Thanks,
>> Lin Lin
>>
>

Reply via email to