Sorry for the typo. I mean WQ > AQ.

Thanks for your information, Lari!

Let me try to reconsider this proposal with the watermark way.

Yong

On Thu, Sep 29, 2022 at 21:11 Enrico Olivelli <eolive...@gmail.com> wrote:

> Il giorno gio 29 set 2022 alle ore 15:06 Dave Fisher
> <wave4d...@comcast.net> ha scritto:
> >
> >
> > >
> > > I think I need to change this proposal title to `BookKeeper client
> write
> > > memory
> > > limits` to make it clearly. What we observed is bookie will easily OOM
> when
> > > WQ < AQ. So the main problem we want to use this proposal to resolve is
> > > limit
> > > the adds request memory usage.
> >
> > What is the use case for WQ < AQ?
>
> it is a typo, WQ must be always >= QA
>
> Enrico
> >
> > Best,
> > Dave
> > >
> > > Thanks,
> > > Yong
> > >
> > >
> > >> On Thu, 29 Sept 2022 at 12:30, Michael Marshall <mmarsh...@apache.org
> >
> > >> wrote:
> > >>
> > >> I support adding back pressure based on client memory limits to the
> > >> bookkeeper client.
> > >>
> > >> My biggest concern is how the back pressure is propagated to the
> > >> client application. If I am reading the draft implementation
> > >> correctly, it is via a blocking operation on the calling thread for
> > >> the `BookieClientImpl#addEntry` method.
> > >>
> > >> In my use case (the Pulsar broker), I think a blocking implementation
> > >> will make this feature very hard to use. One quick thought is that
> > >> maybe some kind of event or listener could meet the requirements
> > >> without also blocking an application? The implementation could be
> > >> something similar to Netty's channel writability events. Then, client
> > >> applications could reactively get notified of the bookie client's
> > >> state. Non blocking back pressure allows for client applications to
> > >> continue processing other
> > >>
> > >> Additionally, I think client memory limits should affect the bookie
> > >> client reading from the inbound connection. Otherwise, the bookie
> > >> client could dispatch many read requests and then end up filling up
> > >> memory when the requests arrive in the client's direct memory. When
> > >> the bookie is starting to exceed its memory consumption, it'd be
> > >> beneficial to stop reading from the connection and to let the TCP
> > >> connection propagate back pressure to the server. In this case, we
> > >> would need a reactive solution since it is an anti-pattern to block on
> > >> a netty event loop.
> > >>
> > >> Thanks,
> > >> Michael
> > >>
> > >>> On Wed, Sep 28, 2022 at 4:36 AM Enrico Olivelli <eolive...@gmail.com
> >
> > >>> wrote:
> > >>>
> > >>> Yong,
> > >>>
> > >>> Il giorno mer 28 set 2022 alle ore 10:23 Yong Zhang
> > >>> <zhangyong1025...@gmail.com> ha scritto:
> > >>>>
> > >>>> We have improved the memory issue with backpressure with PR
> > >>>> https://github.com/apache/bookkeeper/pull/3324
> > >>>>
> > >>>> The backpressure way can prevent there have too many Add requests
> > >>>> pending to the client and waiting for the response. It makes the add
> > >>>> requests
> > >>>> fail fast, so if the channel is not writable, it will fail the
> request
> > >> as
> > >>>> soon as
> > >>>> possible and then release the memory.
> > >>>>
> > >>>> But that depends on the time. If your throughput is very smooth, and
> > >> you
> > >>>> have enough memory for the bookie client. With backpressure, it
> would
> > >> work
> > >>>> fine.
> > >>>> If you have a huge adds to the bookie in a very short time, it
> > >> acquires a
> > >>>> lot of
> > >>>> memory, then the bookie crashed with OOM.
> > >>>> So we still need this proposal.
> > >>>>
> > >>>> I will continue to work on this. If there haven't objected, I will
> > >> start a
> > >>>> VOTE later
> > >>>
> > >>> Thanks
> > >>>
> > >>> Enrico
> > >>>
> > >>>> Thanks,
> > >>>> Yong
> > >>>>
> > >>>> On Thu, 21 Apr 2022 at 19:17, r...@apache.org <
> ranxiaolong...@gmail.com
> > >>>
> > >>>> wrote:
> > >>>>
> > >>>>> Hello Yong:
> > >>>>>
> > >>>>> It seems to be a very useful feature. In the production
> environment,
> > >> you
> > >>>>> can often see similar phenomena happening.
> > >>>>>
> > >>>>> +1 (non-binding)
> > >>>>>
> > >>>>> --
> > >>>>> Thanks
> > >>>>> Xiaolong Ran
> > >>>>>
> > >>>>> Yong Zhang <y...@apache.org> 于2022年4月21日周四 18:29写道:
> > >>>>>
> > >>>>>> Hi all,
> > >>>>>>
> > >>>>>> The BP-51 BookKeeper client memory limits is ready for review.
> > >>>>>> The proposal is here:
> > >> https://github.com/apache/bookkeeper/issues/3231
> > >>>>>> And the PR is here:
> https://github.com/apache/bookkeeper/pull/3139
> > >>>>>>
> > >>>>>> Please help to review this proposal.
> > >>>>>>
> > >>>>>> Thanks!
> > >>>>>> Yong
> > >>>>>>
> > >>>>>
> > >>
>

Reply via email to