Anton,

Very good point. Valentin is already doing per-partition topic in his work
for Continuous Queries:
https://issues.apache.org/jira/browse/IGNITE-104

Perhaps it makes sense for both of you to sync up.

Also, as a side note, whenever starting a dev list discussion about a
ticket, it always helps to include a link to the dev list thread into Jira
(I already did it for IGNITE-1093).

D.

On Thu, Jul 30, 2015 at 11:31 AM, Anton Vinogradov <avinogra...@gridgain.com
> wrote:

> Hello,
>   I think that speed of rebalancing can be increased by parallel handling
> of supply messages.
>   Main Idea is to use per-partition topics.
>
>   At the start of DemandPool we can create topics for every partition and
> handle each partition's supply messages at separated listener. In this case
> only one thread will request lock for partition it have to relocate.
>
>   Also we can do the same at SupplyPool, and make supply messages in
> parallel way.
>
>   Amount of simultaneous messages should be limited to prevent overloading.
> Current idea is to request N partitions at start and request one next
> partition when one of prevous relocated.
>
>   Per-partition listeners can be created this way:
> for (int p = 0; p <= maxP; p++) {
>     cctx.io().addOrderedHandler(topic(p), new CI2<UUID,
> GridDhtPartitionSupplyMessage>() {
>         @Override public void apply(UUID nodeId,
> GridDhtPartitionSupplyMessage msg) {
>             handleSupplyMessage(new SupplyMessage(nodeId, msg));
>         }
>     });
> }
>
> Thoughts?
>

Reply via email to