+1 for option #1 with a default of None.

On Wed, Jan 28, 2015 at 8:12 AM, Maxim Khutornenko <ma...@apache.org> wrote:

> Thanks David, I agree. Unless there are other opinions, I will proceed
> with #1.
>
> On Tue, Jan 27, 2015 at 11:04 AM, David McLaughlin
> <da...@dmclaughlin.com> wrote:
> > The heartbeat requirement feature should be disabled by default, so I
> think
> > it's best to just do [1] and make it None by default in UpdateConfig and
> > optional field in the thrift API.
> >
> > On Tue, Jan 27, 2015 at 10:21 AM, Maxim Khutornenko <ma...@apache.org>
> > wrote:
> >
> >> We are working on AURORA-690 to support external service coordinated
> >> job updates. The feature design was proposed in [1] and discussed in
> >> [2].
> >>
> >> The one remaining question I would like to discuss here is how to
> >> expose the coordinated update configuration to the user. The
> >> approaches as I see:
> >>
> >> 1. Expose "blockIfNoPulsesAfterMs" directly in UpdateConfig requiring
> >> user to supply its value to indicate a coordinated update:
> >>     ...
> >>     update_config = UpdateConfig(pulse_interval_secs=60)
> >>     ...
> >> While the most straightforward to implement, it may not deliver on
> >> user's expectations. The external service may be unable to match a
> >> requested job health refresh rate and potentially waste scheduler
> >> performance with unnecessary pulseJobUpdate RPC calls. We may limit
> >> the lower configurable bound for pulse_interval_secs to something sane
> >> to address the latter but it will still not address the unmatched
> >> health refresh rate issue.
> >>
> >>
> >> 2. Expose a flag in UpdateConfig and hardcode a large enough (e.g. 1
> >> minute) interval internally. The Aurora client would then populate
> >> "blockIfNoPulsesAfterMs" to default interval in case the
> >> require_update_pulse flag is set:
> >> ...
> >> update_config = UpdateConfig(require_update_pulse=True)
> >> ...
> >> This is more user friendly but less flexible in terms of requirement
> >> changes and still does not protect against external service health
> >> refresh rate changes.
> >>
> >>
> >> 3. Do not expose any coordinated update settings in a public schema
> >> and require external service to act as a job update request proxy
> >> mutating job update config on the fly before passing it to the
> >> scheduler.
> >> This is ideal from the external service controlling the health refresh
> >> rate but may require too much hacking as we don't have a private job
> >> config schema and relaying user's identity via an external service is
> >> no fun from security perspective.
> >>
> >>
> >> Any other options? I am personally leaning towards #1 with hardcoded
> >> min value validation as the simplest solution. Users will be required
> >> to have a knowledge of what refresh rate their health monitoring
> >> system is capable of to configure pulse_interval_secs accordingly.
> >> Thoughts?
> >>
> >> Thanks,
> >> Maxim
> >>
> >>
> >> [1] -
> >>
> https://github.com/maxim111333/incubator-aurora/blob/hb_doc/docs/update-heartbeat.md
> >>
> >> [2] -
> >>
> http://mail-archives.apache.org/mod_mbox/aurora-dev/201410.mbox/%3ccaotkfx7x2oipk4zfysos0uwzrizonkja3y15pvew5k4ynuh...@mail.gmail.com%3E
> >>
>

Reply via email to