And, I have updated it a bit.  Ready for review in case anyone wants to
have a look.  Basically, after this pr, to have sensor timeout enabled, a
deferrable sensor just needs to ensure that when it defers, it passes its
timeout to the trigger.  Then base sensor will detect when the trigger
ended in a timeout, and will reraise as airflow sensor timeout, and fail
immediately. To keep the PR focused, it does not change all existing
sensors; just one.  But it will be pretty straightforward to do the rest of
them.


On Fri, Nov 22, 2024 at 2:01 PM Daniel Standish <
daniel.stand...@astronomer.io> wrote:

> Alright, i can take a hint
>
> rebased https://github.com/apache/airflow/pull/33718
>
> On Wed, Nov 20, 2024 at 6:23 PM Jarek Potiuk <ja...@potiuk.com> wrote:
>
>> Also another good case that just happened -
>> https://github.com/apache/airflow/discussions/44211  a user added a very
>> valid question on overloading triggerers (i.e. trigger scalability). If we
>> are able to answer the question of the user now - this would be great (I
>> can't).
>>
>> But I think the answer won't be pretty (i.e. we can't help with that now)
>> -
>> so my question is how confident is that we can support such user's
>> questions and how confident current scalability promises for example can
>> be
>> met ?
>>
>> J.
>>
>>
>> On Wed, Nov 20, 2024 at 11:11 PM Jarek Potiuk <ja...@potiuk.com> wrote:
>>
>> > Actually that's an extremely good point and I agree with Elad here.
>> >
>> > If we commit to something as first priority, we should treat issues we
>> > have with it with priority.
>> > There is another - very similar - issue with on_kill handling for
>> > deferrables that I just recalled.
>> >
>> > The issue is here: https://github.com/apache/airflow/issues/36090 that
>> > Matthew Wicks has been following on multiple times, and proposed a way
>> to
>> > approach it in general way - but the only solution we were able to come
>> up
>> > with was to implement workaround in a few deferrable operators.
>> >
>> > I am here with Elad that until we solve this and prioritise other issues
>> > there, making deferrable a default is a bad idea.
>> >
>> > J.
>> >
>> >
>> >
>> >
>> > On Wed, Nov 20, 2024 at 6:56 PM Elad Kalif <elad...@apache.org> wrote:
>> >
>> >> I don't think deferrable can act as a replacement at this point.
>> >> Removing/changing defaults of poke and reschedule in favor of
>> deferrable
>> >> means that deferrable becomes a critical feature. This means that any
>> bug
>> >> related to it must be triaged and fixed ASAP.
>> >> We are not there yet. I don't think many maintainers know this area of
>> the
>> >> code.
>> >>
>> >> In my perspective as a user I have a functionality that is working
>> fine. I
>> >> learned to trust it. I know how it behaves and am able to write code
>> >> efficiently with it. The suggested replacement is a feature that has
>> 30ish
>> >> bug reports with little community focus. That is a lot of risk with
>> small
>> >> profit to gain. For me this is an indication of -1 to this proposal.
>> >>
>> >> For example issue https://github.com/apache/airflow/issues/36734 with
>> >> suggested PR: https://github.com/apache/airflow/pull/33718
>> >> I admit I am not into the details but if we accept this proposal this
>> bug
>> >> becomes top priority problem and this is open since 2023.
>> >>
>> >> So my position is -1 for any change about poke and reschedule (even for
>> >> changing defaults).
>> >>
>> >>
>> >>
>> >> On Thu, Nov 14, 2024 at 10:28 PM Jarek Potiuk <ja...@potiuk.com>
>> wrote:
>> >>
>> >> > > I think that if we have implemented async for an operator, we
>> should
>> >> > remove
>> >> > the non-async version.
>> >> >
>> >> > I think we all agree here. The question is only "when". I see two
>> >> options:
>> >> >
>> >> > 1) When Airflow 3 is released
>> >> > 2) When Airflow 2 stops being supported
>> >> >
>> >> > I'd be for 2) .
>> >> >
>> >> > Why? Because it has the least impact on our users while it does not
>> make
>> >> > our life much harder, while we might commit to clean-up eventually.
>> >> >
>> >> > I personally (with my ADHD personality twist) often have an urge to
>> fix
>> >> > things "now". It's very rewarding and has great "feedback" of feeling
>> >> > better. But I think the next best thing is to have a clear timeline
>> to
>> >> > remove things like that and relentlessly follow it through. And it
>> has
>> >> the
>> >> > added benefits of avoiding surprises for users who follow our
>> decisions
>> >> and
>> >> > policies.
>> >> >
>> >> > I think the biggest problem I have with things that are deprecated
>> are
>> >> not
>> >> > that they are lying around, but with the feeling that they will stay
>> >> there
>> >> > forever (aka - we will not clean our technical debt). I think having
>> a
>> >> > policy when we remove things and following that, avoids that problem
>> (as
>> >> > long as we do follow).
>> >> >
>> >> > See for example this PR for Google Provider that Max opened today:
>> >> > https://github.com/apache/airflow/pull/43953.= ~ -8000 lines of
>> code we
>> >> > will not have to maintain. and whoever followed it, they had 5 months
>> >> or so
>> >> > to adjust as Google team set some rules for that and in most cases
>> set
>> >> > the deprecation date. This is cool. Most of those warnings have a
>> >> > "planned_removal_date" set.
>> >> >
>> >> > And I think it also shows our maturity - that we do not "jump" on
>> >> changing
>> >> > something, but we plan it, we have a reason behind it, whe know why
>> we
>> >> are
>> >> > doing it. what are consequences to our users, and follow through,
>> giving
>> >> > enough warning to the users (those who care to listen).
>> >> >
>> >> > And the more we do it, the more we plan and announce in advance and
>> >> > relentlessly follow it through, the more our users will listen to
>> those
>> >> > things.
>> >> >
>> >> > J.
>> >> >
>> >> >
>> >> > On Thu, Nov 14, 2024 at 4:12 PM Daniel Standish
>> >> > <daniel.stand...@astronomer.io.invalid> wrote:
>> >> >
>> >> > > To me, I don't really mind reschedule mode so much.  But I *really
>> >> *don't
>> >> > > like that we have *both* styles implemented in operators (talking
>> >> about
>> >> > > providers here).
>> >> > >
>> >> > > I think that if we have implemented async for an operator, we
>> should
>> >> > remove
>> >> > > the non-async version.
>> >> > >
>> >> > > And we should remove the `deferrable` param for 3.0 -- this is
>> >> something
>> >> > > that to me makes no sense, since it implies that sensors should
>> have
>> >> both
>> >> > > ways implemented.
>> >> > >
>> >> > > But users should still be allowed to write rescheduling sensors.
>> >> > >
>> >> >
>> >>
>> >
>>
>

Reply via email to