> Does cancelling an active task cancels the threads being used internally
> for query execution (threads in query pool) or cache put/delete operation?
>
> Thanks,
> Prasad
>
> On Sat, Nov 23, 2019 at 8:26 PM Mikael <mikael-arons...@telia.com> wrote:
>
>> The whole idea with a future is that it is a small lightweight compact
>> object, and you still have Igor's suggestion:
>>
>> Collection<Map<IgniteUuid, ComputeTaskFuture<Object>>> result =
>> ignite.compute().broadcast(() -> ignite.compute().activeTaskFutures());
>>
>> If you would have to implement a cluster wide listening mechanism in the
>> futures you would add a terrible amount of overhead to it, and you would
>> cause a lot of problems, what if you try to deserialize a future on a
>> computer that is in another cluster, it may not even be an Ignite
>> application, what if you deserialize a future that was created 2 years ago
>> and the "id" of the future is now being reused for another future that has
>> nothing to do with the original one, what if you deserialize it in a
>> different cluster where that id is something different and not the same you
>> submitted on the other cluster, yes all these things can be handled but
>> once again you would turn a small nice simple object into a complex beast.
>> Den 2019-11-23 kl. 15:00, skrev Prasad Bhalerao:
>>
>> By member you meant the output of the thread right?
>>
>> If yes, can we keep the member at centralised location like an internal
>> cache?
>> (May be we can provide the flag if turned on then the member can be
>> broadcasted to whoever is listening to it or centralised cache location)
>> I am considering future as a handle to the task which can be used to
>> cancel the task even if the submitter node goes down.
>>
>>
>>
>> On Sat 23 Nov, 2019, 7:21 PM Mikael <mikael-arons...@telia.com wrote:
>>
>>> Well, the thread has to set a member in the future when it is finished,
>>> if you serialize the future and send it somewhere else, how is the thread
>>> going to be able to tell the future it had finished ?
>>> Den 2019-11-23 kl. 14:31, skrev Prasad Bhalerao:
>>>
>>> Can someone please explain why Active task futures can't be serialized?
>>>
>>> If we loose the future then we don't have the way to cancel the active
>>> task if it's taking too long. I think this is important feature.
>>>
>>>
>>>
>>> Thanks,
>>> Prasad
>>>
>>> On Thu 21 Nov, 2019, 5:16 AM Denis Magda <dma...@apache.org wrote:
>>>
>>>> I think that you should broadcast another task that will simply ask
>>>> every node if taskA is already running or not every time the topology
>>>> changes. If the response from all the nodes is empty then you need to
>>>> reschedule taskA, otherwise, you will skip this procedure.
>>>>
>>>> -
>>>> Denis
>>>>
>>>>
>>>> On Wed, Nov 20, 2019 at 9:28 AM Prasad Bhalerao <
>>>> prasadbhalerao1...@gmail.com> wrote:
>>>>
>>>>> That means I can't do this..
>>>>>
>>>>> Collection<Map<IgniteUuid, ComputeTaskFuture<Object>>> result =
>>>>> ignite.compute().broadcast(() -> ignite.compute().activeTaskFutures());
>>>>>
>>>>> Is there any way to get list futures of all active tasks running on
>>>>> all nodes of the cluster?
>>>>>
>>>>> Thanks,
>>>>> Prasad
>>>>>
>>>>>
>>>>> On Wed 20 Nov, 2019, 10:51 PM Mikael <mikael-arons...@telia.com wrote:
>>>>>
>>>>>> Hi!
>>>>>>
>>>>>> No you cannot serialize any future object.
>>>>>>
>>>>>> Mikael
>>>>>>
>>>>>>
>>>>>> Den 2019-11-20 kl. 17:59, skrev Prasad Bhalerao:
>>>>>>
>>>>>> Thank you for the suggestion. I will try this.
>>>>>>
>>>>>> I am thinking to store the task future object in a (replicated)cache
>>>>>> against a jobId. If the node goes down as described in case (b), I will 
>>>>>> get
>>>>>> the task's future object from this  cache using a jobId and will invoke 
>>>>>> the
>>>>>> get method on it.
>>>>>>
>>>>>> But I am not sure about this approach, whether a future object can be
>>>>>> serialized and send it over the wire to another node and deserialize it 
>>>>>> and
>>>>>> then invoke the get API on it.
>>>>>>
>>>>>> I will try to implement it tomorrow.
>>>>>>
>>>>>> Thanks,
>>>>>> Prasad
>>>>>>
>>>>>>
>>>>>> On Wed 20 Nov, 2019, 9:06 PM Igor Belyakov <igor.belyako...@gmail.com
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Prasad,
>>>>>>>
>>>>>>> I think that you can use compute().broadcast() for collecting
>>>>>>> results of activeTaskFutures() from all the nodes:
>>>>>>> Collection<Map<IgniteUuid, ComputeTaskFuture<Object>>> result =
>>>>>>> ignite.compute().broadcast(() -> ignite.compute().activeTaskFutures());
>>>>>>>
>>>>>>> Regards,
>>>>>>> Igor Belyakov
>>>>>>>
>>>>>>> On Wed, Nov 20, 2019 at 5:27 PM Prasad Bhalerao <
>>>>>>> prasadbhalerao1...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I want to get the active tasks running in cluster (tasks running on
>>>>>>>> all nodes in cluster)
>>>>>>>>
>>>>>>>> IgniteCompute interface has method "activeTaskFutures" which
>>>>>>>> returns tasks future for active tasks started on local node.
>>>>>>>>
>>>>>>>> Is there anyway to get the task futures for all active tasks of
>>>>>>>> whole cluster?
>>>>>>>>
>>>>>>>> My use case is as follows.
>>>>>>>>
>>>>>>>> a) The node submits the affinity task and task runs on some other
>>>>>>>> node in the cluster and the node which submitted the task dies.
>>>>>>>>
>>>>>>>> b) The node submits the affinity task and the task runs on the same
>>>>>>>> node and the same node dies.
>>>>>>>>
>>>>>>>> The task consumers running on all ignite grid nodes consumes tasks
>>>>>>>> from kafka topic. If the node which submitted the affinity task dies, 
>>>>>>>> kafka
>>>>>>>> re-assigns the partitions to another consumer (running on different
>>>>>>>> node) as part of its partition rebalance process. In this case my job 
>>>>>>>> gets
>>>>>>>> consumed one more time,
>>>>>>>>
>>>>>>>> But in this scenario that job might be already running on one of
>>>>>>>> the node case (a) or already died as mentioned case (b).
>>>>>>>>
>>>>>>>> So I want to check if the job is still running on one of the node
>>>>>>>> or it is already died. For this I need the active job list running on 
>>>>>>>> all
>>>>>>>> nodes.
>>>>>>>>
>>>>>>>> Can someone please advise?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Prasad
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Prasad
>>>>>>>>
>>>>>>>>
>>>>>>>>

Reply via email to