Fork me on GitHub

Hello all, I've already used Onyx for very simple jobs some time ago, I think it was 0.6(?). Today I'm in charge of a PoC around streaming frameworks on image processing use cases (think earth observation satellites and drones). I must compare several frameworks such as Storm, Spark Streaming and Flink. Of course I know some the theory and I've extensively read the docs of each but in practice and especially for image processing it's another story. At some point if time allows I'd like to throw Onyx into the mix. Does anyone have experience running heavy tasks such as image processing in an Onyx job? And how it does compared to other frameworks. Broad question, I know... Any pointer would help really 😉


What’s your definition of “heavy tasks”?


Imaging processing, we struggled with large file processing. Getting the mix of heartbeat timesout, Aeron buffer config and so on was difficult. Onyx thrives on small message sizes where it’s brilliant.


This is actually the main bulk of my talk at ClojureX in December.


were you putting the image binaries in onyx segments @jasonbell ?


no, it was handling various sized zip files. Fun fun fun 🙂


Well I guess I don't know precisely, it's very subjective but I have a use case as a starting point that tends to exhaust a 12 cores i7 + 30GB mem when processing more than a dozen of imgs but the use case is particularly relying on shared buffers. The current system was designed for a single machine and the poc is about taking a look at streaming frameworks, and if relevant see what kind of jobs we can do.


Your talk is "Introducing Streaming Processing with Kafka and the Onyx Platform" - Dec. 16, 2016 ?


that’s correct


but I’m doing another one this year with my experiences of various streaming things including Onyx.


Cool, looking forward to it, in the meantime I'll watch this one, thanks.


@arnaud_bos This might be helpful too, but more as an experience.


Memory management will be hard for this case, whatever distributed system you use, but Onyx does likely make it more complex, because of the messaging aspect.


@jasonbell is right that designds that send large messages from peer to peer is not very suitable for Onyx


KStreams likely worked a lot better there because it’ll horizontally scale out workers for each partition, without any messaging between each other. We’ve been discussing having a mode that would work like that with Onyx, where there wouldn’t be any messaging, and all of the tasks would collapse into a single peer.