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

Alessandro Presta commented on GIRAPH-249:
------------------------------------------

Thanks Claudio, good observation.
You got me curious so I quickly ran a shortest paths benchmark.

500k vertices, 100 edges/vertex, 10 workers

This is with trunk:

{code}
hadoop jar giraph-trunk.jar org.apache.giraph.benchmark.ShortestPathsBenchmark 
-Dgiraph.useNetty=true -v -V 500000 -e 100 -w 10
{code}

{code}
Superstep 3 (milliseconds)      5,394
Superstep 4 (milliseconds)      5,650
Superstep 23 (milliseconds)     1,100
Superstep 20 (milliseconds)     1,108
Superstep 31 (milliseconds)     1,192
Setup (milliseconds)    3,297
Shutdown (milliseconds) 2,309
Superstep 27 (milliseconds)     1,135
Superstep 7 (milliseconds)      4,476
Superstep 9 (milliseconds)      3,400
Superstep 8 (milliseconds)      4,043
Superstep 16 (milliseconds)     1,184
Superstep 14 (milliseconds)     2,251
Superstep 6 (milliseconds)      5,150
Superstep 24 (milliseconds)     1,167
Superstep 18 (milliseconds)     1,176
Superstep 5 (milliseconds)      5,483
Superstep 1 (milliseconds)      1,125
Superstep 21 (milliseconds)     1,192
Total (milliseconds)    85,757
Superstep 15 (milliseconds)     1,375
Superstep 22 (milliseconds)     1,159
Vertex input superstep (milliseconds)   11,644
Superstep 25 (milliseconds)     1,058
Superstep 17 (milliseconds)     1,075
Superstep 26 (milliseconds)     1,051
Superstep 12 (milliseconds)     2,342
Superstep 10 (milliseconds)     3,192
Superstep 19 (milliseconds)     1,092
Superstep 11 (milliseconds)     2,533
Superstep 30 (milliseconds)     1,126
Superstep 0 (milliseconds)      821
Superstep 28 (milliseconds)     1,184
Superstep 29 (milliseconds)     1,116
Superstep 2 (milliseconds)      1,165
Superstep 13 (milliseconds)     1,983
{code}

And with 5 partitions out-of-core:

{code}
hadoop jar giraph-249.jar org.apache.giraph.benchmark.ShortestPathsBenchmark 
-Dgiraph.useNetty=true -Dgiraph.useOutOfCoreGraph=true 
-Dgiraph.maxPartitionsInMemory=5 -v -V 500000 -e 100 -w 10
{code}

{code}
Superstep 3 (milliseconds)      27,407
Superstep 4 (milliseconds)      26,620
Superstep 23 (milliseconds)     20,906
Superstep 20 (milliseconds)     21,324
Superstep 31 (milliseconds)     21,055
Setup (milliseconds)    2,639
Superstep 7 (milliseconds)      25,819
Superstep 27 (milliseconds)     20,790
Shutdown (milliseconds) 175
Superstep 16 (milliseconds)     21,434
Superstep 8 (milliseconds)      24,434
Superstep 9 (milliseconds)      24,183
Superstep 14 (milliseconds)     22,401
Superstep 6 (milliseconds)      25,948
Superstep 24 (milliseconds)     20,968
Superstep 18 (milliseconds)     21,179
Superstep 5 (milliseconds)      27,134
Superstep 1 (milliseconds)      20,315
Superstep 21 (milliseconds)     21,442
Total (milliseconds)    729,459
Superstep 15 (milliseconds)     22,198
Superstep 22 (milliseconds)     20,875
Vertex input superstep (milliseconds)   19,595
Superstep 25 (milliseconds)     20,829
Superstep 17 (milliseconds)     21,617
Superstep 12 (milliseconds)     22,548
Superstep 26 (milliseconds)     20,763
Superstep 19 (milliseconds)     21,302
Superstep 10 (milliseconds)     23,823
Superstep 11 (milliseconds)     22,908
Superstep 0 (milliseconds)      10,836
Superstep 30 (milliseconds)     21,014
Superstep 28 (milliseconds)     21,109
Superstep 29 (milliseconds)     21,158
Superstep 13 (milliseconds)     21,974
Superstep 2 (milliseconds)      20,726
{code}

So yeah, this is more like an order of magnitude. Of course this is nothing 
scientific.
                
> Move part of the graph out-of-core when memory is low
> -----------------------------------------------------
>
>                 Key: GIRAPH-249
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-249
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Alessandro Presta
>            Assignee: Alessandro Presta
>         Attachments: GIRAPH-249.patch, GIRAPH-249.patch, GIRAPH-249.patch, 
> GIRAPH-249.patch, GIRAPH-249.patch, GIRAPH-249.patch
>
>
> There has been some talk about Giraph's scaling limitations due to keeping 
> the whole graph and messages in RAM.
> We need to investigate methods to fall back to disk when running out of 
> memory, while gracefully degrading performance.
> This issue is for graph storage. Messages should probably be a separate 
> issue, although the interplay between the two is crucial.
> We should also discuss what are our primary goals here: completing a job 
> (albeit slowly) instead of failing when the graph is too big, while still 
> encouraging memory optimizations and high-memory clusters; or restructuring 
> Giraph to be as efficient as possible in disk mode, making it almost a 
> standard way of operating.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to