[
https://issues.apache.org/jira/browse/SAMZA-899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jagadish updated SAMZA-899:
---------------------------
Summary: Re-design the JobModel class to be immutable (was: Re-design the
JobModel class)
> Re-design the JobModel class to be immutable
> --------------------------------------------
>
> Key: SAMZA-899
> URL: https://issues.apache.org/jira/browse/SAMZA-899
> Project: Samza
> Issue Type: Bug
> Reporter: Jagadish
>
> The current design of the JobModel class takes in a LocalityManager instance.
> The JobModel class also populates and mutates the container host mappings by
> reading from the LocalityManager. This state in the class is also mutated by
> the methods that make a call to populateContainerToHost mappings.
> The JobModel class should *not* know who its LocalityManager is. The JobModel
> class must merely take in a *final* container-host mapping as a part of its
> constructor. (as opposed to taking in a LocalityManager and mutating state)
> The JobModel class is currently shared from multiple threads, hence it's
> dangerous to expose public methods that mutate state without proper
> synchronization.
> This re-design will ensure that the JobModel will be immutable and merely
> expose getters. This is important as the JobModel evolves into a standard
> interface that all systems that integrate with Samza will have to provide.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)