Hi Joshua,

that is correct. Delta iterations cannot spill to disk. The solution set is
managed in an in-memory hash table.
Spilling that hash table to disk would have a significant impact on the
performance.

By default the hash table is organized in Flink's managed memory.
You can try to increase the managed memory size (tweaking managed memory
vs. heap memory, increasing heap memory, ...) or add more resources and
increase the parallelism.
Alternatively, it is possible to store the solution set in a Java HashMap
on the heap by setting the solution set to unManaged
(DeltaIteration.setSolutionSetUnManaged(true)).

Best, Fabian


2017-10-24 21:09 GMT+02:00 Joshua Griffith <jgriff...@campuslabs.com>:

> I’m currently using a delta iteration within a batch job and received the
> following error:
>
> java.lang.RuntimeException: Memory ran out. Compaction failed.
> numPartitions: 32 minPartition: 11 maxPartition: 24 number of overflow
> segments: 0 bucketSize: 125 Overall memory: 23232512 Partition memory:
> 18350080 Message: null
> at org.apache.flink.runtime.operators.hash.CompactingHashTable.
> insertRecordIntoPartition(CompactingHashTable.java:457)
> at org.apache.flink.runtime.operators.hash.CompactingHashTable.
> insertOrReplaceRecord(CompactingHashTable.java:392)
> at org.apache.flink.runtime.iterative.io.SolutionSetUpdateOutputCollect
> or.collect(SolutionSetUpdateOutputCollector.java:54)
> at org.apache.flink.runtime.operators.util.metrics.
> CountingCollector.collect(CountingCollector.java:35)
> at org.apache.flink.runtime.operators.NoOpDriver.run(NoOpDriver.java:96)
> at org.apache.flink.runtime.operators.BatchTask.run(BatchTask.java:490)
> at org.apache.flink.runtime.iterative.task.AbstractIterativeTask.run(
> AbstractIterativeTask.java:146)
> at org.apache.flink.runtime.iterative.task.IterationTailTask.run(
> IterationTailTask.java:107)
> at org.apache.flink.runtime.operators.BatchTask.invoke(BatchTask.java:355)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:702)
> at java.lang.Thread.run(Thread.java:748)
>
>
> It looks like the job ran out of Flink managed memory. Can delta
> iterations not spill to disk?
>
> Thanks,
>
> Joshua
>

Reply via email to