Dlmuthu,

This explains your need. Could you please point me to the code? I was
wondering, where and how are we registering callbacks for the participants?

On Thu, Nov 16, 2017 at 7:16 PM, DImuthu Upeksha <dimuthu.upeks...@gmail.com
> wrote:

> Adding Helix Dev
>
> Hi Ajinkya
>
> Thank you for the explanation.
>
> Let me explain my requirement. [1] is the correct task registry
> configuration in a working participant code. All the transition call backs
> are registered in this code. The problem here is, we have to bundle
> binaries of all the tasks into a single Participant. If we want to change
> one task, we need to rebuild the participant with other tasks as well. What
> I thought is, why can't we build Participants that only do specific set of
> tasks. For example, in the cluster there are 3 participants, Participant 1
> [2], Participant 2 [3] and Participant 3 [4]. If we want to change the
> DataCollecting task, we only need to re build Participant 2. I got above
> error, once I run 3 participants in above configuration. I can understand
> this is due to the missing transition callback of CommandTask in
> Participant 1 as I have purposely commented out it. What I need to know is
> that, is this configuration allowed in Helix architecture or do we have to
> implement Participants that contain all the task implementations as in [1].
> Workflow configuration for both scenarios is here [5].
>
> [1] https://gist.github.com/DImuthuUpe/41c0db579e7d86d101d112f07ed6ea00
> [2] https://gist.github.com/DImuthuUpe/ec72df1ec3207ce2dce88ff7f1756da4
> [3] https://gist.github.com/DImuthuUpe/4d193a3dff3008315efa2e31f6209cac
> [4] https://gist.github.com/DImuthuUpe/872c432935b8d33944dd571b3ac4207b
> [5] https://gist.github.com/DImuthuUpe/f61851b68b685b8d6744689dc130babd
>
> Thanks
> Dimuthu
>
> On Fri, Nov 17, 2017 at 3:21 AM, Ajinkya Dhamnaskar <adham...@umail.iu.edu
> > wrote:
>
>> Hey Dlmuthu,
>>
>> Not an expert in Helix, but from exceptions it seems, system is entering
>> in a state not expected by reflection. I feel https://github.com/apache
>> /helix/blob/master/helix-core/src/main/java/org/apache/helix
>> /messaging/handling/HelixStateTransitionHandler.java#L295 is triggering
>> this exception.
>> As mentioned in the later part of the stack trace and from Helix Apache
>> Docs <http://helix.apache.org/0.7.1-docs/tutorial_agent.html> *("Helix
>> is built on the following assumption: if your distributed resource is
>> modeled by a finite state machine, then Helix can tell participants when
>> they should transition between states. In the Java API, this means
>> implementing transition callbacks. In the Helix agent API, this means
>> providing commands than can run for each transition"),* did you
>> implement *transition callback* for these tasks?
>>
>> On Thu, Nov 16, 2017 at 10:01 AM, DImuthu Upeksha <
>> dimuthu.upeks...@gmail.com> wrote:
>>
>>> Hi Devs,
>>>
>>> I'm working on the technology evaluation to re architecture Apache
>>> Airavata task execution framework and Helix seems like a good candidate for
>>> that as it has an in built distributed generic workflow execution
>>> capability. After going through several tutorials, I tried to implement a
>>> simple workflow on Helix to demonstrate following transition
>>>
>>> Data Collecting Job -> Command Executing Job -> Data Uploading Job
>>>
>>> I managed to implement this using a Participant node that includes all
>>> the tasks required for above workflow. However my goal is to implement
>>> specialized Participants for each Job type. For example, Participant 1
>>> knows only about the tasks to perform Data Collecting Job and Participant
>>> knows only about the task to perform Command Executing Job. When I tried to
>>> implement such Participants, I got following error from Participant 1. I
>>> can share the code samples that I have tried but before that I need to know
>>> whether my approach is compatible with Helix's design? Does Helix require
>>> all the Participants to be homogeneous?
>>>
>>> Executing data collecting
>>> 675892 [pool-2-thread-8] ERROR org.apache.helix.messaging.han
>>> dling.HelixStateTransitionHandler  - Exception while executing a state
>>> transition task Airavata_Workflow_commandExecuteJob_0
>>> java.lang.reflect.InvocationTargetException
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>>> ssorImpl.java:62)
>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>>> thodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>> at org.apache.helix.messaging.handling.HelixStateTransitionHand
>>> ler.invoke(HelixStateTransitionHandler.java:344)
>>> at org.apache.helix.messaging.handling.HelixStateTransitionHand
>>> ler.handleMessage(HelixStateTransitionHandler.java:290)
>>> at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:84)
>>> at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:41)
>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>> Executor.java:1149)
>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>> lExecutor.java:624)
>>> at java.lang.Thread.run(Thread.java:748)
>>> Caused by: java.lang.IllegalStateException: No callback implemented for
>>> task COMMAND
>>> at org.apache.helix.task.TaskStateModel.startTask(TaskStateMode
>>> l.java:302)
>>> at org.apache.helix.task.TaskStateModel.onBecomeRunningFromInit
>>> (TaskStateModel.java:69)
>>> ... 12 more
>>> 675900 [pool-2-thread-8] ERROR 
>>> org.apache.helix.participant.statemachine.StateModel
>>> - Default rollback method invoked on error. Error Code: ERROR
>>> 675908 [pool-2-thread-8] ERROR org.apache.helix.messaging.handling.HelixTask
>>> - Message execution failed. msgId: 8d9a08c9-0ae7-419a-8940-6b8e6e7c1ecb,
>>> errorMsg: java.lang.reflect.InvocationTargetException
>>> 675922 [pool-2-thread-8] ERROR org.apache.helix.messaging.han
>>> dling.HelixStateTransitionHandler  - Skip internal error. errCode:
>>> ERROR, errMsg: null
>>>
>>> Thanks
>>> Dimuthu
>>>
>>
>>
>>
>> --
>> Thanks and regards,
>>
>> Ajinkya Dhamnaskar
>> Student ID : 0003469679
>> Masters (CS)
>> +1 (812) 369- 5416 <(812)%20369-5416>
>>
>
>


-- 
Thanks and regards,

Ajinkya Dhamnaskar
Student ID : 0003469679
Masters (CS)
+1 (812) 369- 5416

Reply via email to