I'm trying to rework a hazelcast Jet 0.3 DAG system I wrote a few weeks ago into v0.4 as a first step of changing it from batch to stream. Interestingly all of a sudden I'm experiencing some weird behavior, where I can't be sure that vertices work as expected. Trying to get down on what's happening, I fail to find an option on how to peek into the the inner workings of each vertex. Is there a way to get at least some error messages out of them?
In an attempt to isolate the problem I tried to dumb it down to a very simplistic "read from list, map it to a map write to map" DAG. But still no success on getting anything out.
Below my dumbed down example, maybe I make a very simple mistake that someone more knowledgable will see right away?
Publisher:
// every second via executorservice:
final IStreamMap<Long, List<byte[]>> data = jet.getMap("data");
data.set(jet.getHazelcastInstance().getAtomicLong("key").getAndIncrement(), myByteArray);
Analyzer:
jet.getList(key.toString()).addAll((List<byte[]>) jet.getMap("data").get(key));
jet.getMap("data").remove(key);
logger.debug("List {} has size: {}", key, jet.getList(key.toString()).size());
final Vertex sourceDataMap = this.newVertex("sourceDataMap", readList(key.toString())).localParallelism(1);
final Vertex parseByteArrayToMap = this.newVertex("parseByteArrayToMap", map(
(byte[] e) -> new AbstractMap.SimpleEntry<>(jet.getHazelcastInstance().getAtomicLong("counter").getAndIncrement(), e)));
final Vertex sinkIntoResultMap = this.newVertex("sinkIntoResultMap", writeMap("result"));
this.edge(between(sourceDataMap, parseByteArrayToMap))
.edge(between(parseByteArrayToMap, sinkIntoResultMap));
Listener:
jet.getMap("result").addEntryListener((EntryAddedListener<Long, byte[]>)
(EntryEvent<Long, byte[]> entryEvent)
-> logger.debug("Got result: {} at {}",entryEvent.getValue().length, System.currentTimeMillis())
, true);
The data generation works just fine, everything is ok till the DAG should take over... but no error messages or anything coming from the DAG. Any suggestions?