Yes, largely different. I was expecting for the solution set to be spillable.
This is somehow very hard limitation, the layout of the data makes the 
difference.

By contract, I am able to run successfully CC on the synthetic data but RDDs 
are persisted in memory or on disk.

Best,
Ovidiu

> On 14 Mar 2016, at 18:48, Ufuk Celebi <u...@apache.org> wrote:
> 
> Probably the limitation is that the number of keys is different in the
> real and the synthetic data set respectively. Can you confirm this?
> 
> The solution set for delta iterations is currently implemented as an
> in-memory hash table that works on managed memory segments, but is not
> spillable.
> 
> – Ufuk
> 
> On Mon, Mar 14, 2016 at 6:30 PM, Ovidiu-Cristian MARCU
> <ovidiu-cristian.ma...@inria.fr> wrote:
>> 
>> This problem is surprising as I was able to run PR and CC on a larger graph 
>> (2bil edges) but with this synthetic graph (1bil edges groups of 10) I ran 
>> out of memory; regarding configuration (memory and parallelism, other 
>> internals) I was using the same.
>> There is some limitation somewhere I will try to understand more what is 
>> happening.
>> 
>> Best,
>> Ovidiu
>> 
>>> On 14 Mar 2016, at 18:06, Martin Junghanns <m.jungha...@mailbox.org> wrote:
>>> 
>>> Hi,
>>> 
>>> I understand the confusion. So far, I did not run into the problem, but I 
>>> think this needs to be adressed as all our graph processing abstractions 
>>> are implemented on top of the delta iteration.
>>> 
>>> According to the previous mailing list discussion, the problem is with the 
>>> solution set and its missing ability to spill.
>>> 
>>> If this is the still the case, we should open an issue for that. Any 
>>> further opinions on that?
>>> 
>>> Cheers,
>>> Martin
>>> 
>>> 
>>> On 14.03.2016 17:55, Ovidiu-Cristian MARCU wrote:
>>>> Thank you for this alternative.
>>>> I don’t understand how the workaround will fix this on systems with 
>>>> limited memory and maybe larger graph.
>>>> 
>>>> Running Connected Components on the same graph gives the same problem.
>>>> 
>>>> IterationHead(Unnamed Delta Iteration)(82/88) switched to FAILED
>>>> java.lang.RuntimeException: Memory ran out. Compaction failed. 
>>>> numPartitions: 32 minPartition: 31 maxPartition: 32 number of overflow 
>>>> segments: 417 bucketSize: 827 Overall memory: 149159936 Partition memory: 
>>>> 65601536 Message: Index: 32, Size: 31
>>>>        at 
>>>> org.apache.flink.runtime.operators.hash.CompactingHashTable.insertRecordIntoPartition(CompactingHashTable.java:469)
>>>>        at 
>>>> org.apache.flink.runtime.operators.hash.CompactingHashTable.insertOrReplaceRecord(CompactingHashTable.java:414)
>>>>        at 
>>>> org.apache.flink.runtime.operators.hash.CompactingHashTable.buildTableWithUniqueKey(CompactingHashTable.java:325)
>>>>        at 
>>>> org.apache.flink.runtime.iterative.task.IterationHeadTask.readInitialSolutionSet(IterationHeadTask.java:212)
>>>>        at 
>>>> org.apache.flink.runtime.iterative.task.IterationHeadTask.run(IterationHeadTask.java:273)
>>>>        at 
>>>> org.apache.flink.runtime.operators.BatchTask.invoke(BatchTask.java:354)
>>>>        at org.apache.flink.runtime.taskmanager.Task.run(Task.java:584)
>>>>        at java.lang.Thread.run(Thread.java:745)
>>>> 
>>>> Best,
>>>> Ovidiu
>>>> 
>>>>> On 14 Mar 2016, at 17:36, Martin Junghanns <m.jungha...@mailbox.org> 
>>>>> wrote:
>>>>> 
>>>>> Hi
>>>>> 
>>>>> I think this is the same issue we had before on the list [1]. Stephan 
>>>>> recommended the following workaround:
>>>>> 
>>>>>> A possible workaround is to use the option 
>>>>>> "setSolutionSetUnmanaged(true)"
>>>>>> on the iteration. That will eliminate the fragmentation issue, at least.
>>>>> 
>>>>> Unfortunately, you cannot set this when using graph.run(new PageRank(...))
>>>>> 
>>>>> I created a Gist which shows you how to set this using PageRank
>>>>> 
>>>>> https://gist.github.com/s1ck/801a8ef97ce374b358df
>>>>> 
>>>>> Please let us know if it worked out for you.
>>>>> 
>>>>> Cheers,
>>>>> Martin
>>>>> 
>>>>> [1] 
>>>>> http://mail-archives.apache.org/mod_mbox/flink-user/201508.mbox/%3CCAELUF_ByPAB%2BPXWLemPzRH%3D-awATeSz4sGz4v9TmnvFku3%3Dx3A%40mail.gmail.com%3E
>>>>> 
>>>>> On 14.03.2016 16:55, Ovidiu-Cristian MARCU wrote:
>>>>>> Hi,
>>>>>> 
>>>>>> While running PageRank on a synthetic graph I run into this problem:
>>>>>> Any advice on how should I proceed to overcome this memory issue?
>>>>>> 
>>>>>> IterationHead(Vertex-centric iteration 
>>>>>> (org.apache.flink.graph.library.PageRank$VertexRankUpdater@7712cae0 | 
>>>>>> org.apache.flink.graph.library.PageRank$RankMesseng$
>>>>>> java.lang.RuntimeException: Memory ran out. Compaction failed. 
>>>>>> numPartitions: 32 minPartition: 24 maxPartition: 25 number of overflow 
>>>>>> segments: 328 bucketSize: 638 Overall memory: 115539968 Partition 
>>>>>> memory: 50659328 Message: Index: 25, Size: 24
>>>>>>        at 
>>>>>> org.apache.flink.runtime.operators.hash.CompactingHashTable.insertRecordIntoPartition(CompactingHashTable.java:469)
>>>>>>        at 
>>>>>> org.apache.flink.runtime.operators.hash.CompactingHashTable.insertOrReplaceRecord(CompactingHashTable.java:414)
>>>>>>        at 
>>>>>> org.apache.flink.runtime.operators.hash.CompactingHashTable.buildTableWithUniqueKey(CompactingHashTable.java:325)
>>>>>>        at 
>>>>>> org.apache.flink.runtime.iterative.task.IterationHeadTask.readInitialSolutionSet(IterationHeadTask.java:212)
>>>>>>        at 
>>>>>> org.apache.flink.runtime.iterative.task.IterationHeadTask.run(IterationHeadTask.java:273)
>>>>>>        at 
>>>>>> org.apache.flink.runtime.operators.BatchTask.invoke(BatchTask.java:354)
>>>>>>        at org.apache.flink.runtime.taskmanager.Task.run(Task.java:584)
>>>>>>        at java.lang.Thread.run(Thread.java:745)
>>>>>> 
>>>>>> Thanks!
>>>>>> 
>>>>>> Best,
>>>>>> Ovidiu
>>>>>> 
>>>> 
>>>> 
>> 

Reply via email to