[
https://issues.apache.org/jira/browse/SAMZA-348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14169568#comment-14169568
]
Chris Riccomini commented on SAMZA-348:
---------------------------------------
bq. How does the control-job.sh script use the SystemConsumer/SystemProducer?
A third solution to this problem would be to define the ConfigStream in code.
If we move toward doing wiring in code (rather than config) as part of
SAMZA-40, we could also define the ConfigStream in code. At first, this might
sound rather distasteful, since it will require a full rebuild of code in order
to change a ConfigStream, but if you bend your thinking a bit, the ConfigStream
is actually closer to wiring than config, so it might be OK to require this.
This would also require the control-job.sh script to download the job that it's
controlling, or to have the job's jars on its classpath, so that it would know
how to talk to the ConfigStream as well.
I like this approach, except for the complexity it introduces in
control-job.sh. Not sure if we can solve this, though. If not, then
SystemFactory.getConfig still seems the least distasteful.
> Configure Samza jobs through a stream
> -------------------------------------
>
> Key: SAMZA-348
> URL: https://issues.apache.org/jira/browse/SAMZA-348
> Project: Samza
> Issue Type: Bug
> Affects Versions: 0.7.0
> Reporter: Chris Riccomini
> Labels: project
> Attachments: DESIGN-SAMZA-348-0.md, DESIGN-SAMZA-348-0.pdf,
> DESIGN-SAMZA-348-1.md, DESIGN-SAMZA-348-1.pdf
>
>
> Samza's existing config setup is problematic for a number of reasons:
> # It's completely immutable once a job starts. This prevents any dynamic
> reconfiguration and auto-scaling. It is debatable whether we want these
> feature or not, but our existing implementation actively prevents it. See
> SAMZA-334 for discussion.
> # We pass existing configuration through environment variables. YARN exports
> environment variables in a shell script, which limits the size to the varargs
> length on the machine. This is usually ~128KB. See SAMZA-333 and SAMZA-337
> for details.
> # User-defined configuration (the Config object) and programmatic
> configuration (checkpoints and TaskName:State mappings (see SAMZA-123)) are
> handled differently. It's debatable whether this makes sense.
> In SAMZA-123, [~jghoman] and I propose implementing a ConfigLog. This log
> would replace both the checkpoint topic and the existing config environment
> variables in SamzaContainer and Samza's YARN AM.
> I'd like to keep this ticket's scope limited to just the implementation of
> the ConfigLog, and not re-designing how Samza's config is used in the code
> (SAMZA-40). We should, however, discuss how this feature would affect dynamic
> reconfiguration/auto-scaling.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)