[ 
https://issues.apache.org/jira/browse/FALCON-1108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14372684#comment-14372684
 ] 

Ajay Yadava commented on FALCON-1108:
-------------------------------------

[~sriksun] I think I haven't completely understood your concern about 
resources. I think there is a gap in our understanding of recipes. I think a 
design doc is missing here (there are several discussions but no final design 
doc) and we should first finalise on that before starting the implementations.

It will help me (and others) if you can share these concerns with some concrete 
examples by explaining the flow for a recipe. I will try to crudely explain my 
understanding (based on FALCON-634 & FALCON-636)

* Falcon server has a repository of recipes on HDFS.
* A recipe is a template of a Falcon process. There are delimiters to identify 
the variables to be processed by Recipe Cooker. e.g. ##valueToBeReplaced##. 
* Recipe client requests Recipe Cooker to cook a recipe by giving a unique 
identifier(name/path), and a given properties file. 
* Recipe Cooker cooks the recipe. Cooking is essentially replacing these 
variables in the template file using the properties file provided and returns a 
falcon readable process definition in xml format.
* Client takes that xml and asks falcon to submit and/or schedule the resulting 
process.

Let me know if this understanding is not correct. Based on this understanding I 
don't see any class libraries/dependencies conflicts entering in the Recipe 
Cooker.  Execution of the final process doesn't happen in falcon. Can you 
please provide an example where Recipe Cooker will need to deal with 
conflicting libraries.

Similarly I fail to see the need for launching separate JVM to maintain memory 
/ CPU isolation for Recipe Cooker. Can you please provide an example to 
illustrate high memory consumption / CPU utilization.

Assuming there are serious memory and CPU constraints I fail to see how 
launching separate JVMs and communicating between them is resource efficient in 
terms of CPU, memory and network usage. On the other hand if I take the 95% use 
case of sane templates and no memory leaks. How many JVMs will you be able to 
launch on a shared host hosting falcon. With 256MB for each JVM, on a machine 
with 2GB memory I will be able to launch only 9 JVMs. Each JVM will take some 
extra resources for itself apart from just processing the recipe. How is this 
more efficient and maintainable? Will it not affect falcon server.

Also, just to clarify I am proposing a separate Recipe Server. It can be 
deployed on a separate box and will not affect Falcon Server under any 
circumstances. We can't guarantee this even with launching separate JVMs from 
falcon server as long as they are on same machine. 







> Custom recipe processing
> ------------------------
>
>                 Key: FALCON-1108
>                 URL: https://issues.apache.org/jira/browse/FALCON-1108
>             Project: Falcon
>          Issue Type: Sub-task
>    Affects Versions: 0.6
>            Reporter: Sowmya Ramesh
>              Labels: Recipe
>             Fix For: 0.7
>
>
> Custom recipe cooking to be done on the server side in a separate independent 
> process than Falcon process I.e. It runs in a different JVM. For more details 
> refer [FALCON-1107|https://issues.apache.org/jira/browse/FALCON-1107]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to