Hi, community
I've just finished drilling a small page [1] about Ignite data streaming and I want to share my impressions. The situation is common for many Ignite documentation pages, impressions are the same. My problem was to adapt IgniteDataStreamer to data loading using the binary format as described in my article [2]. I try to use the same approach: 1) load data on the client node; 2) convert it to the binary form; 3) use IgniteDataStreamer/StreamReceiver pair (instead of ComputeTaskAdapter/ComputeJobAdapter) to ingest data in the cache. I modified my production code using IgniteDataStreamer<BinaryObject, BinaryObject> and StreamReceiver<BinaryObject, BinaryObject>, tried to start on the dev cluster made of 2 server nodes and 1 client node. That is it: ClassNotFoundException for the class that exists on the client node only. The solution to the problem seems to be in setting streamer.keepBinary(true), but page [1] never says about it. I found that setter in the IgniteDataStreamer source code after a single day of troubleshooting. Definitely, "In Ignite We Trust" - what else reason would drive me to spend so much time? The code snippets on the page [1] are hard to implement in real-world applications because of using only primitive types String, Integer, etc. These are more like unit tests. My proposal - it would be great to create a small GitHub repo containing a complete compilable code example, one repo for every page. I think such repos will keep the newbie Ignite users inside the project and prevent them from leaving. Regards, Vladimir Tchernyi -- [1] https://ignite.apache.org/docs/latest/data-streaming [2] https://www.gridgain.com/resources/blog/how-fast-load-large-datasets-apache-ignite-using-key-value-api
