<div dir="auto">Hello Core Libs Dev Team,<div dir="auto"><br></div><div dir="auto">I was trying out Gatherers for a project at work, and ran into a rather sad scenario.</div><div dir="auto"><br></div><div dir="auto">I need to process a large file in batches. Each batch is small enough that I can hold it in memory, but I cannot hold the entire file (and thus, all of the batches) in memory at once.</div><div dir="auto"><br></div><div dir="auto">Looking at the Gatherers API, I saw windowFixed and thought that it would be a great match for my use case.</div><div dir="auto"><br></div><div dir="auto">However, when trying it out, I was disappointed to see that it ran out of memory very quickly. Here is my attempt at using it.</div><div dir="auto"><br></div><div dir="auto">stream</div><div dir="auto">.parallel()</div><div dir="auto">.unordered()</div><div dir="auto">.gather(Gatherers.windowFixed(BATCH_SIZE))</div><div dir="auto">.forEach(eachList -> println(eachList.getFirst()))</div><div dir="auto">;</div><div dir="auto"><br></div><div dir="auto">As you can see, I am just splitting the file into batches, and printing out the first of each batch. This is purely for example's sake, of course. I had planned on building even more functionality on top of this, but I couldn't even get past this example.</div><div dir="auto"><br></div><div dir="auto">But anyways, not even a single one of them printed out. Which leads me to believe that it's pulling all of them in the Gatherer.</div><div dir="auto"><div dir="auto"><br></div><div dir="auto">I can get it to run successfully if I go sequentially, but not parallel. Parallel gives me that out of memory error.</div><div dir="auto"><br></div></div><div dir="auto">Is there any way for me to be able to have the Gatherer NOT pull in everything while still remaining parallel and unordered?</div><div dir="auto"><br></div><div dir="auto">Thank you for your time and help.</div><div dir="auto">David Alayachew</div></div>