You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@giraph.apache.org by "Nitay Joffe (JIRA)" <ji...@apache.org> on 2013/01/04 01:46:12 UTC

[jira] [Updated] (GIRAPH-409) Refactor / cleanups

     [ https://issues.apache.org/jira/browse/GIRAPH-409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nitay Joffe updated GIRAPH-409:
-------------------------------

    Attachment: GIRAPH-409.patch

This implements #1,2,4. There is NO logic change.

The main cleanup is around the "o.a.g.graph" package that currently has a ton of classes. This diff adds the packages o.a.g.{combiner,master,vertex,time,worker} and moves most of the classes from o.a.g.graph to those and/or the existing packages. Classes are now located more appropriately where they belong.
                
> Refactor / cleanups
> -------------------
>
>                 Key: GIRAPH-409
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-409
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Nitay Joffe
>            Assignee: Nitay Joffe
>            Priority: Minor
>         Attachments: GIRAPH-409.patch
>
>
> Some general thoughts I've jotted down while going through the code. Writing them here to start tracking progress for them.
> 1. Refactor giraph.graph to giraph.master, giraph.worker. The whole giraph.graph package name is bad in general I think.
> 2. Cleanup giraph.utils. For example move timers stuff to giraph.time.
> 3. Change module names to be more maven-esque, that is something like giraph-root, giraph-core, giraph-formats.
> 4. Remove WorkerClientServer. Is this needed anymore?
> 5. Cleanup MasterThread#run: long convoluted method.
> 6. Cleanup BspService#process: lots of duplication. Use a vector of events or something.
> 7. Cleanup Vertex class: seems to me it has too many methods and should be a simpler interface (maybe even eventually an actual interface! not an abstract class). Add something like a Vertexes/Vertices class with helper methods that use can use.
> 8. {Master,Worker}Observer. Discussed elsewhere already. ALlow users to easily plug in code at various points in the system. Essentially a cleaner implementation of e.g. WorkerContext
> 9. Cleanup GraphMapper. I don't see why we even call a map() method seeing as we are overriding run(). We are clearly not particularly "mapreduce-y" so we should make it our entry point more clear than a map(). Also I think we should have something like a WorkerThread similar to MasterThread and clean up all of this to just creare whichever threads the node is assigned roles of. 
> 10. Move examples and anything else not needed for a giraph library out into it's own package (like giraph-examples)?
> If someone +1s the ideas I'll work up some patches. Feel free to add other cleanup things here as well.

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