hama-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Jungblut (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HAMA-642) Make GraphRunner disk based
Date Tue, 18 Sep 2012 08:14:07 GMT

    [ https://issues.apache.org/jira/browse/HAMA-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13457687#comment-13457687
] 

Thomas Jungblut commented on HAMA-642:
--------------------------------------

Partitioning was one problem, the multisteps solved it pretty much.
The next thing is the hashmap that holds the whole vertex. 
In my 10gb dataset (which was unusually dense) it totally failed because the edges consumed
too much memory. < this should be solved by spilling to disk

In SSSP, you send a message for each edge it has which is quite large as well. This overflows
the local memory as well. 

The message bundling makes it even worse. I think we can improve this by redesigning a bit.
(making the outgoingQueues in the message manager disk based, do a smarter bundling without
HashMaps, bundle can directly make byte[] out of it instead of holding the batch in memory
twice)
So we should focus more on scalability first and then make a scalable solution faster for
future things. 

bq. I love JDBM local database.

that's good ;)

Any other opinions?
                
> Make GraphRunner disk based
> ---------------------------
>
>                 Key: HAMA-642
>                 URL: https://issues.apache.org/jira/browse/HAMA-642
>             Project: Hama
>          Issue Type: Improvement
>          Components: graph
>            Reporter: Thomas Jungblut
>         Attachments: HAMA-642_unix_1.patch, HAMA-scale_1.patch, HAMA-scale_2.patch, HAMA-scale_3.patch,
HAMA-scale_4.patch
>
>
> To improve scalability we can improve the graph runner to be disk based.
> Which basically means:
> - We have just a single Vertex instance that get's refilled.
> - We directly write vertices to disk after partitioning
> - In every superstep we iterate over the vertices on disk, fill the vertex instance and
call the users compute functions
> Problems:
> - State other than vertex value can't be stored easy
> - How do we deal with random access after messages have arrived?
> So I think we should make the graph runner more hybrid, like using the queues we have
implemented in the messaging. So the graphrunner can be configured to run completely on disk,
in cached mode or in in-memory mode.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message