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

Martin Kleppmann commented on SAMZA-42:
---------------------------------------

I noticed that KafkaCheckpointManager checks whether it is responsible for 
partition 0, and only creates the topic if that is the case. Using the fact 
that partition 0 always exists and is always assigned to exactly one container, 
that provides a simple way of performing a startup task in just one container.

Is that approach sufficient, or are there use cases that are not covered by the 
partition-0 trick?

> Add a job setup phase to Samza
> ------------------------------
>
>                 Key: SAMZA-42
>                 URL: https://issues.apache.org/jira/browse/SAMZA-42
>             Project: Samza
>          Issue Type: Bug
>          Components: container
>    Affects Versions: 0.6.0
>            Reporter: Chris Riccomini
>
> We have several use cases for doing things once at the beginning of a Samza 
> job's execution (before containers start). Examples:
> * Validate or create checkpoint topic (if using KafkaCheckpointManager)
> * Validate or create state topic (if using LoggedStore)
> Right now, we have to do this in the container, which means that there's a 
> race condition when running on YARN, as each container will try to create the 
> same topic.
> Initially, I thought this logic could be put in the YARN AM, but then we'd 
> have to put corresponding logic in the LocalJobFactory. This gets problematic 
> if we implement SAMZA-41, since there would no longer be a central place to 
> do a "before job starts" operation with the LocalJobFactory. If we don't do 
> SAMZA-41, then we should be fine putting this logic in the YARN AM and 
> LocalJobFactory.
> Alternatively, we could put this logic in JobRunner. One downside to this is 
> that it would mean the JobRunner would need full access to the grid that it 
> was trying to execute on (not just the RM) so that it could talk to 
> Kafka/ZooKeeper (for example). I think this is actually fine, since we always 
> execute our jobs from a spot that has access to the full grid.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to