Matteo Merli
Matteo Merli
@rdhabalia The change in #7406 is to avoid any contention in write path and to impose a global max.
> g: 1gb across 30 IO threads means 1 IO thread can only do 33MB it means as a user I have to create multiple connections and hope it will...
> don't want to restrict throughput per thread and that requires user to create multiple connections t @rdhabalia It does not impact the throughput once you have a minimum of...
@rdhabalia Have tried with #7406 which is already in 2.8? I still think we shouldn't add contended counters. We have validated that previous OOMs are not happening anymore in 2.8....
I don't think that applies well to multi tenant env. In a multi-tenant broker, the load is usually well spread across all IO threads. This could more of an issue...
> how do we train broker to adjust per-thread quotas dynamically? Most of rate limiting implementations are based on variations of Token-Bucket: https://en.wikipedia.org/wiki/Token_bucket Eg: even in the per-namespace rate limiting...
> @merlimat > > > I still think we shouldn't add contended counters. We have validated that previous OOMs are not happening anymore in 2.8. Even then, I still believe...
> > since the check is done in background every few seconds (given that LongAdder.sum() is expensive). It's very possible that a traffic spike will to cause an OOM between...
Yes, one idea was to use a crc based on the past entries of the log as well. (eg: similar to git history). That would help in identifying any issues...
@lsytj0413 Perhaps we can start with a proposal and design doc for how to implement the change. We can use discussions. eg: https://github.com/streamnative/oxia/discussions/new?category=proposal