I previously sent a proposal about scaling Airflow, I created Jira tickets
around that time. For this particular one, it is AIRFLOW-2760
<https://issues.apache.org/jira/browse/AIRFLOW-2760>. We've finished
testing it in Airbnb and plan to bake it for some time while I work on open
source the change.

Cheers,
Kevin Y

On Wed, Aug 22, 2018 at 6:45 PM Taylor Edmiston <tedmis...@gmail.com> wrote:

> Kevin - Is there a Jira issue one can follow for this?
>
> On Wed, Aug 22, 2018 at 5:29 PM Ruiqin Yang <yrql...@gmail.com> wrote:
>
> > I'm working on spliting the DAG parsing manager to a subprocess and with
> > that we don't need to worry about scheduler doing non-supervisor stuff
> nor
> > prolong scheduler loop duration. I can make a follow up PR to address
> this
> > once I have the original PR published if you guys don't have plan to work
> > on it in the very near future.
> >
> > Cheers,
> > Kevin Y
> >
> > On Wed, Aug 22, 2018 at 1:00 PM Dan Davydov <ddavy...@twitter.com.invalid
> >
> > wrote:
> >
> > > Agreed on delegation to a subprocess but I think that can come as part
> > of a
> > > larger redesign (maybe along with uploading DAG import errors etc). The
> > > query should be quite fast so it should not have a significant impact
> on
> > > the Scheduler times.
> > >
> > > On Wed, Aug 22, 2018 at 3:52 PM Maxime Beauchemin <
> > > maximebeauche...@gmail.com> wrote:
> > >
> > > > I'd rather the scheduler delegate that to one of the minions
> > (subprocess)
> > > > if possible. We should keep everything we can off the main thread.
> > > >
> > > > BTW I've been speaking about renaming the scheduler to "supervisor"
> > for a
> > > > while now. While renaming may be a bit tricky (updating all
> references
> > in
> > > > the code), we should think of the scheduler as more of a supervisor
> as
> > it
> > > > takes on all sorts of supervision-related tasks.
> > > >
> > > > Tangent: we need to start thinking about allowing for a distributed
> > > > scheduler too, and I'm thinking we need to be careful around the
> tasks
> > > that
> > > > shouldn't be parallelized (this may or may not be one of them).
> We'll
> > > need
> > > > to do very basic leader election and taking/releasing locks while
> > running
> > > > these tasks. I'm thinking we can just set flags in the database to do
> > > that.
> > > >
> > > > Max
> > > >
> > > > On Wed, Aug 22, 2018 at 12:19 PM Taylor Edmiston <
> tedmis...@gmail.com>
> > > > wrote:
> > > >
> > > > > I'm not super familiar with this part of the scheduler.  What
> exactly
> > > are
> > > > > the implications of doing this mid-loop vs at scheduler
> termination?
> > > > > Is there a use case where DAGs hit this besides having been
> deleted?
> > > > >
> > > > > The deactivate_stale_dags call doesn't appear to be super expensive
> > or
> > > > > anything like that.
> > > > >
> > > > > This seems like a reasonable idea to me.
> > > > >
> > > > > *Taylor Edmiston*
> > > > > Blog <https://blog.tedmiston.com/> | CV
> > > > > <https://stackoverflow.com/cv/taylor> | LinkedIn
> > > > > <https://www.linkedin.com/in/tedmiston/> | AngelList
> > > > > <https://angel.co/taylor> | Stack Overflow
> > > > > <https://stackoverflow.com/users/149428/taylor-edmiston>
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Aug 22, 2018 at 2:32 PM Dan Davydov
> > > <ddavy...@twitter.com.invalid
> > > > >
> > > > > wrote:
> > > > >
> > > > > > I see some PRs creating endpoints to delete DAGs and other things
> > > > related
> > > > > > to manually deleting DAGs from the DB, but is there a good reason
> > why
> > > > we
> > > > > > can't just move the deactivating DAG logic into the main
> scheduler
> > > > loop?
> > > > > >
> > > > > > The scheduler already has some code like this, but it only runs
> > when
> > > > the
> > > > > > Scheduler terminates:
> > > > > >       if all_files_processed:
> > > > > >             self.log.info(
> > > > > >                 "Deactivating DAGs that haven't been touched
> since
> > > %s",
> > > > > >                 execute_start_time.isoformat()
> > > > > >             )
> > > > > >             models.DAG.deactivate_stale_dags(execute_start_time)
> > > > > >
> > > > >
> > > >
> > >
> >
> --
> *Taylor Edmiston*
> Blog <https://blog.tedmiston.com/> | CV
> <https://stackoverflow.com/cv/taylor> | LinkedIn
> <https://www.linkedin.com/in/tedmiston/> | AngelList
> <https://angel.co/taylor> | Stack Overflow
> <https://stackoverflow.com/users/149428/taylor-edmiston>
>

Reply via email to