You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@giraph.apache.org by "Avery Ching (JIRA)" <ji...@apache.org> on 2012/09/19 02:02:07 UTC

[jira] [Created] (GIRAPH-329) Improve network performance

Avery Ching created GIRAPH-329:
----------------------------------

             Summary: Improve network performance
                 Key: GIRAPH-329
                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
             Project: Giraph
          Issue Type: Improvement
            Reporter: Avery Ching
            Assignee: Avery Ching


I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Eli Reisman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462932#comment-13462932 ] 

Eli Reisman commented on GIRAPH-329:
------------------------------------

Thanks again for doing this, after struggling with 214 I know how much work it is! Knowing this problem well, I have learned so much from reading your solution. I think in 214 I had an idea of the way I wanted it to be and just wouldn't let go. The 329 solution is just right.

Anyway in conclusion...shame on me! And thanks again Avery!

                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461678#comment-13461678 ] 

Avery Ching commented on GIRAPH-329:
------------------------------------

I cut this into 4 sub-tasks that need to be committed one after the other, we should get this in asap as it is a very good performance boost and makes things much more debuggable.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460343#comment-13460343 ] 

Avery Ching commented on GIRAPH-329:
------------------------------------

Actually, I've decided that we might not need to split it.  95% of the changes are related to changing configuration to be Giraph specific (inspired by GIRAPH-214).  The remaining changes are quite simple and easy to understand.

Major changes:
- Configuration have been deprecated in favor of GiraphConfiguration for easy get/set methods.  Then I have ImmutableClassesGiraphConfiguration that will generate the classes as final variables to be thread-safe.  This is a big improvement over Configuration#getClass(), which is very slow and makes deserialization very slow.  This represents the bulk of the changes as we have to change code everywhere.  All configuration variables have moved from GiraphJob to GiraphConfiguration.  Note that I didn't fix the vertex input / output APIs to use ImmutableClassesGiraphConfiguration and just generate it there for now.  That can be done in a later change.
- There is a new ImmutableClassesGiraphConfigurable that replaces Configurable and our ReflectionUtils understands this to make sure to newInstance an object and set its ImmutableClassesGiraphConfiguration if it is ImmutableClassesGiraphConfigurable.
- Upgraded/downgraded log messages to trace/debug to make debug more usable.  I'm able to run most jobs in debug with about a 10% loss in performance, not too bad.  Debug is now quite useful to figuring out performance issues, general problems.
- Added an optimization to SimpleMessageStore#addPartitionMessages to avoid getting the partition map for every vertex.  This was one of the bottlenecks.
- Added client and server ExecutionHandlers to Netty to avoid doing the business logic with I/O threads (This used to clog up the pipe)
- Added WrappedAdaptiveReceiveBufferSizePredictorFactory to debug/predict the size of the incoming messages and provide better performance tuning on the server instead of receiving a bunch of small messages.

Minor changes:
- Added BspUtilsTest to try various ways of testing class creation, performance and correctness.
- Upgrade junit from 4.0 -> 4.8 to allow getting the test name (See BspUtilsTest.java).
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460283#comment-13460283 ] 

Avery Ching commented on GIRAPH-329:
------------------------------------

This is a very large patch, I will be trying to split it up into a few smaller patches.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Updated] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Avery Ching updated GIRAPH-329:
-------------------------------

    Attachment: NettyImprovements.xlsx

Here is an excel sheet of the performance improvement.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Updated] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Avery Ching updated GIRAPH-329:
-------------------------------

    Attachment: nettyImprovement.png

PNG of the improvement
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Eli Reisman (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462054#comment-13462054 ] 

Eli Reisman commented on GIRAPH-329:
------------------------------------

Thats great, I'm glad to see this happening. I think avoiding endless getters and setters for config stuff as 214 did makes this a lot cleaner solution. I also like caching the classes instead of using utils all the time. nice!

                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460943#comment-13460943 ] 

Avery Ching commented on GIRAPH-329:
------------------------------------

As per Eugene's request, I will be splitting this into several patches.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Updated] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Avery Ching updated GIRAPH-329:
-------------------------------

    Attachment: GIRAPH-329.patch

Here is the patch, while there are a lot of lines, it's mostly configuration changes.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Eugene Koontz (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461147#comment-13461147 ] 

Eugene Koontz commented on GIRAPH-329:
--------------------------------------

Thanks Avery. I will review Monday night.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13463040#comment-13463040 ] 

Avery Ching commented on GIRAPH-329:
------------------------------------

Thanks for your comments Eli, I'm glad you liked it.
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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

[jira] [Commented] (GIRAPH-329) Improve network performance

Posted by "Avery Ching (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/GIRAPH-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460344#comment-13460344 ] 

Avery Ching commented on GIRAPH-329:
------------------------------------

Please take a look!  This is pretty important for improving performance.  I have run a few more tests showing this can significantly improve performance in some cases (i.e. 2-10x) at very small numbers of workers and when we get close to the memory limit by not overloading Netty.

https://reviews.apache.org/r/7206/
                
> Improve network performance
> ---------------------------
>
>                 Key: GIRAPH-329
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-329
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Avery Ching
>            Assignee: Avery Ching
>         Attachments: GIRAPH-329.patch, nettyImprovement.png, NettyImprovements.xlsx
>
>
> I have been working on some network improvements that appear to give 1.5x to 2x.  Unfortunately, this is a very large change and very hard to split out.  Will give an update soon.

--
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