Thats a really good idea. Unfortunately, it doesn't work that way
currently. The Execution.withFilter API takes a set. Each element of that
set is treated like a key.

Barry Oglesby
GemFire Advanced Customer Engineering (ACE)
For immediate support please contact Pivotal Support at
http://support.pivotal.io/


On Wed, Jan 27, 2016 at 12:05 PM, Hovhannes Antonyan <[email protected]>
wrote:

> Great, this is exactly what I need.
>
> So then filter always has to be a Set (in this case a set of
> KeyArgument objects) or I there is a way to use Map also <Key, Argument>
> as a filter (basically you could have done that automatically without
> requiring any changes in PartitionResolver) ?
>
>
> Thank you very much,
>
> Hovhannes
> ------------------------------
> *From:* Barry Oglesby <[email protected]>
> *Sent:* Wednesday, January 27, 2016 11:30 PM
> *To:* [email protected]
> *Subject:* Re: Partitioning onRegion function arguments according to keys
>
> Attached is a simple script-based example of this idea.
>
> Barry Oglesby
> GemFire Advanced Customer Engineering (ACE)
> For immediate support please contact Pivotal Support at
> http://support.pivotal.io/
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__support.pivotal.io_&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=bIt5r7erIk2FRv4Meej3vuWToY3QHT-2W8ak_AP93qs&m=ECQwf6oY6YT0dB1WIgcGbjBTv8qDbX0x8iQ7DGL1acw&s=nQvlWYSJ-vh6y7VFZCtxlTzWblbG8cBZFXVKH8wy3KM&e=>
>
>
> On Wed, Jan 27, 2016 at 9:50 AM, Barry Oglesby <[email protected]>
> wrote:
>
>> Yes, this is possible. Normally, the arguments are passed to all nodes
>> that execute the function, but the filters are split up and routed to only
>> the appropriate nodes. So, you'll need to change your filter to include not
>> only the keys but also the arguments. Then, add (or change) a
>> PartitionResolver that routes based on just the key part of that
>> key-and-argument filter. For example, if your key is a string then you'll
>> need to create a KeyWithArguments that includes the string and the
>> argument. Then add a PartitionResolver whose getRoutingObject method can
>> handle either a string or a KeyWithArguments. If the input key is a string,
>> then just return it; if the input key is a KeyWithArguments, then return
>> the string field.
>>
>> Barry Oglesby
>> GemFire Advanced Customer Engineering (ACE)
>> For immediate support please contact Pivotal Support at
>> http://support.pivotal.io/
>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__support.pivotal.io_&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=bIt5r7erIk2FRv4Meej3vuWToY3QHT-2W8ak_AP93qs&m=ECQwf6oY6YT0dB1WIgcGbjBTv8qDbX0x8iQ7DGL1acw&s=nQvlWYSJ-vh6y7VFZCtxlTzWblbG8cBZFXVKH8wy3KM&e=>
>>
>>
>> On Wed, Jan 27, 2016 at 4:48 AM, Hovhannes Antonyan <[email protected]
>> > wrote:
>>
>>> Hi,
>>>
>>>
>>>
>>> I have a question about partitioning provided arguments to corresponding
>>> keys upon onRegion call.
>>>
>>> Lets say I have 3 keys (from 1 to 3) each hosting on different node and
>>> I want to make onRegion call by passing individual argument for each key.
>>>
>>> I don't want to pass all arguments to all nodes, I want each node to
>>> receive arguments only for keys it is hosting.
>>>
>>> How can I achieve this?
>>>
>>>
>>>
>>> Thanks in advance,
>>>
>>> Hovhannes
>>>
>>
>>
>

Reply via email to