Jia thank you for raising this up.

A couple of comments here

1. technically you don't need a consistent hashing mechanism for dividing
hash ranges for consumers. Any hash mechanism that can map a key to a
consumer should work here. The only advantage of consistent hashing
mechanism is to reduce the disruptions when a consumer joins and leaves. So
I would prefer making the hashing mechanism pluggable.

2. regarding using key or introducing a new ordering key. I would prefer
using `key` here. having two `keys` actually makes people confused. The
`key` was used for compaction but the compaction doesn't mutate the
original data. it just creates a new compacted ledger. in most of the time,
when people use `key_failover`, they are probably accessing the original
data. Event they are trying to subscribe to compacted topic using
`key_failover`, the ordering of messages by key will still be true. so I
wouldn't worry about this part that much.

3. in `failover` there is a consumer listener that listens on the partition
assignment changes. Is there any requirements or plans on adding similar
listeners for `key_failover`?

Thanks,
Sijie

On Wed, Apr 3, 2019 at 2:09 AM Jia Zhai <zhai...@apache.org> wrote:

> Hi all,
>
> I would like to init a discuss of "PIP 34: Add new subscribe type --
> Key_Failover" here.
>
> At present, there are 3 kinds of subscription modes: exclusive, shared, and
> failover. Shared mode subscription is used a lot, because consumers could
> effectively parallel consume messages of same partition.  But using shared
> mode will not keep the message order of same key, It would be good to
> leverage share mode, while also keeping the ordering of messages.
>
> This Proposal trying to introduce a new subscribe type Key_Failover to
> extend shared type. By Key_Failover, one partition could have several
> consumers to parallel consume messages, while all messages with the same
> key will be dispatched to only one consumer.
>
> Here is the link contains more information of this PIP:
>
> https://github.com/apache/pulsar/wiki/PIP-34%3A-Add-new-subscribe-type-Key_Failover
>
> Thanks.
>

Reply via email to