It's been a few days since the last comments. KIP-72 vote seems to have passed so if I don't get any new comments I'll start the vote on Monday. Thanks
On Mon, Nov 14, 2016 at 6:25 PM, radai <radai.rosenbl...@gmail.com> wrote: > +1 - there's is a need for an effective way to control kafka memory > consumption - both on the broker and on clients. > i think we could even reuse the exact same param name - *queued.max.bytes *- > as it would serve the exact same purpose. > > also (and again its the same across the broker and clients) this bound > should also cover decompression, at some point. > the problem with that is that to the best of my knowledge the current wire > protocol does not declare the final, uncompressed size of anything up front > - all we know is the size of the compressed buffer. this may require a > format change in the future to properly support? > > On Mon, Nov 14, 2016 at 10:03 AM, Mickael Maison <mickael.mai...@gmail.com> > wrote: > >> Thanks for all the replies. >> >> I've updated the KIP: >> https://cwiki.apache.org/confluence/display/KAFKA/KIP- >> 81%3A+Bound+Fetch+memory+usage+in+the+consumer >> The main point is to selectively read from sockets instead of >> throttling FetchRequests sends. I also mentioned it will be reusing >> the MemoryPool implementation created in KIP-72 instead of adding >> another memory tracking method. >> >> Please have another look. As always, comments are welcome ! >> >> On Thu, Nov 10, 2016 at 2:47 AM, radai <radai.rosenbl...@gmail.com> wrote: >> > selectively reading from sockets achieves memory control (up to and not >> > including talk of (de)compression) >> > >> > this is exactly what i (also, even mostly) did for kip-72 - which i hope >> in >> > itself should be a reason to think about both KIPs at the same time >> because >> > the changes will be similar (at least in intent) and might result in >> > duplicated effort. >> > >> > a pool API is a way to "scale" all the way from just maintaining a >> variable >> > holding amount of available memory (which is what my current kip-72 code >> > does and what this kip proposes IIUC) all the way up to actually re-using >> > buffers without any changes to the code using the pool - just drop in a >> > different pool impl. >> > >> > for "edge nodes" (producer/consumer) the performance gain in actually >> > pooling large buffers may be arguable, but i suspect for brokers >> regularly >> > operating on 1MB-sized requests (which is the norm at linkedin) the >> > resulting memory fragmentation is an actual bottleneck (i have initial >> > micro-benchmark results to back this up but have not had the time to do a >> > full profiling run). >> > >> > so basically I'm saying we may be doing (very) similar things in mostly >> the >> > same areas of code. >> > >> > On Wed, Nov 2, 2016 at 11:35 AM, Mickael Maison < >> mickael.mai...@gmail.com> >> > wrote: >> > >> >> electively reading from the socket should enable to >> >> control the memory usage without impacting performance. I've had look >> >> at that today and I can see how that would work. >> >> I'll update the KIP accordingly tomorrow. >> >> >>