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

Hudson commented on GIRAPH-244:
-------------------------------

Integrated in Giraph-trunk-Commit #150 (See 
[https://builds.apache.org/job/Giraph-trunk-Commit/150/])
    GIRAPH-244: Vertex API redesign (apresta via aching). (Revision 1365352)

     Result = SUCCESS
aching : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1365352
Files : 
* /giraph/trunk/CHANGELOG
* 
/giraph/trunk/giraph-formats-contrib/src/test/java/org/apache/giraph/format/accumulo/TestAccumuloVertexFormat.java
* 
/giraph/trunk/giraph-formats-contrib/src/test/java/org/apache/giraph/format/accumulo/edgemarker/AccumuloEdgeInputFormat.java
* 
/giraph/trunk/giraph-formats-contrib/src/test/java/org/apache/giraph/format/accumulo/edgemarker/AccumuloEdgeOutputFormat.java
* 
/giraph/trunk/giraph-formats-contrib/src/test/java/org/apache/giraph/format/hbase/TestHBaseRootMarkerVertextFormat.java
* 
/giraph/trunk/giraph-formats-contrib/src/test/java/org/apache/giraph/format/hbase/edgemarker/TableEdgeInputFormat.java
* 
/giraph/trunk/giraph-formats-contrib/src/test/java/org/apache/giraph/format/hbase/edgemarker/TableEdgeOutputFormat.java
* /giraph/trunk/src/main/java/org/apache/giraph/GiraphRunner.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/HashMapVertexPageRankBenchmark.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/HashMapVertexShortestPathsBenchmark.java
* /giraph/trunk/src/main/java/org/apache/giraph/benchmark/PageRankBenchmark.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/PageRankComputation.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/PseudoRandomVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/RandomMessageBenchmark.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/ShortestPathsBenchmark.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/benchmark/ShortestPathsComputation.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/bsp/CentralizedServiceWorker.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/BasicRPCCommunications.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/comm/CommunicationsInterface.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/NettyWorkerClient.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/comm/NettyWorkerClientServer.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/NettyWorkerServer.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/SendMutationsCache.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/comm/SendPartitionMessagesRequest.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/comm/SendPartitionMutationsRequest.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/SendVertexRequest.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/ServerData.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/VertexIdMessages.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/VertexList.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/WorkerClient.java
* /giraph/trunk/src/main/java/org/apache/giraph/comm/WorkerServer.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/ConnectedComponentsVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/examples/IdentityVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/IntIntNullIntTextInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/MinimumDoubleCombiner.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleCheckpointVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleCombinerVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleFailVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleLongDoubleDoubleDoubleIdentityVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleMasterComputeVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleMsgVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleMutateGraphVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimplePageRankVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleShortestPathsVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleSuperstepVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleTextVertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleTriangleClosingVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleVertexWithWorkerContext.java
* /giraph/trunk/src/main/java/org/apache/giraph/examples/VerifyMessage.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/VertexWithComponentTextOutputFormat.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/BasicVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/BasicVertexResolver.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/BspServiceMaster.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/BspServiceWorker.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/BspUtils.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/Edge.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/EdgeListVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/GiraphJob.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/GraphMapper.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/GraphState.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/HashMapVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/IntIntNullIntVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/graph/LongDoubleFloatDoubleVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/MasterCompute.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/MutableVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/SimpleMutableVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/SimpleVertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/Vertex.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexChanges.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexMutations.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexReader.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexResolver.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexWriter.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/WorkerContext.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/partition/Partition.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/graph/partition/RangePartitionOwner.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/graph/partition/RangeSplitHint.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/AdjacencyListTextVertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/AdjacencyListVertexReader.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/IdWithValueTextOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/JsonBase64VertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/JsonBase64VertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/JsonLongDoubleFloatDoubleVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/JsonLongDoubleFloatDoubleVertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/LongDoubleDoubleAdjacencyListVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/SequenceFileVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/lib/TextDoubleDoubleAdjacencyListVertexInputFormat.java
* /giraph/trunk/src/test/java/org/apache/giraph/TestBspBasic.java
* /giraph/trunk/src/test/java/org/apache/giraph/TestVertexTypes.java
* /giraph/trunk/src/test/java/org/apache/giraph/comm/RequestTest.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/examples/SimpleShortestPathsVertexTest.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/examples/SimpleTriangleClosingVertexTest.java
* /giraph/trunk/src/test/java/org/apache/giraph/graph/TestEdgeListVertex.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/graph/TestIntIntNullIntVertex.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/lib/TestAdjacencyListTextVertexOutputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/lib/TestIdWithValueTextOutputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/lib/TestLongDoubleDoubleAdjacencyListVertexInputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/lib/TestTextDoubleDoubleAdjacencyListVertexInputFormat.java
* /giraph/trunk/src/test/java/org/apache/giraph/utils/MockUtils.java

                
> Vertex API redesign
> -------------------
>
>                 Key: GIRAPH-244
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-244
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Alessandro Presta
>            Assignee: Alessandro Presta
>         Attachments: GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, 
> GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, 
> GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, 
> GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, GIRAPH-244.patch, 
> GIRAPH-244.patch
>
>
> This is an effort to rationalize the Giraph API. I've put together a few 
> issues that we've talked about lately. I'm focusing on making Giraph 
> development even more intuitive and less error-prone, and fixing a few 
> potential sources of bugs.
> I'm sorry this is a big patch, but most of those issues are intertwined and I 
> think this might be easier to review and integrate.
> Here's an account of the changes:
> Vertex API:
> - Renamed BasicVertex to Vertex (as I understand, we used to have both and 
> then Vertex was removed).
> - Switched to Iterables instead of Iterators for both edges and messages. 
> This makes code more concise for both implementors (no need to call 
> .iterator() on collections) and users (can use foreach syntax). See also 
> GIRAPH-221.
> - Added SimpleVertex and SimpleMutableVertex classes, where there are no edge 
> values and the iterable to be implemented is getNeighbors(). We don’t have 
> multiple inheritance, so the only way I could think of was to have 
> SimpleVertex extend Vertex, SimpleMutableVertex extend MutableVertex, and 
> duplicate the code for the edges iterables.
> Also, due to type erasure, one still has to deal with Edge objects in 
> SimpleMutableVertex#initialize. Overall I think this is still an improvement 
> over the current situation.
> - Added id and value field to the base Vertex class. All other classes were 
> either writing the same boilerplate again and again, or using primitive 
> fields and then creating Writables on the fly (inefficient; there was even a 
> TODO about that). If there are any actually useful customizations here, I’ve 
> yet to see them.
> Also removed redundant “Vertex” from getters/setters (compare vertex.getId() 
> with vertex.getVertexId()).
> - Made halt a private field, and added a wakeUp() method to re-activate a 
> vertex. isHalted()/voteToHalt()/wakeUp() are just more semantically-charged 
> getter/setters.
> - Renamed number of vertices/edges in graph to getTotalNum*. The previous 
> naming (getNumEdges) was arguably confusing. If this one sucks too, please 
> suggest a better one.
> - Default implementations of hasEdge(), getEdgeValue(), getNumEdges(), 
> readFields(), write(), toString(): the implementor can still optimize when 
> there is a good opportunity. Currently we are duplicating a lot of code (see 
> GIRAPH-238) and potentially introducing bugs (see GIRAPH-239).
> HashMapVertex:
> - Switched representation from Map<I, Edge<I, E>> to Map<I, E> (GIRAPH-242)
> - Only override methods that can be optimized.
> EdgeListVertex:
> - Switched representation from two sorted lists to one list of Edge<I, E> 
> (see GIRAPH-243). Mainly this makes iteration over edges (target id and 
> value) linear instead of O(n log n). Mutations are still slow and should 
> generally be discouraged.
> - Only override methods that can be optimized.
> Small nits:
> - Our code conventions say we should try to avoid abbreviations, so I 
> eliminated a few (req -> request, msg -> message).
> - Unilaterally refer to the endpoint of an edge as targetVertex (before we 
> had a mix of destVertex and targetVertex).
> - You will notice some rearranged imports. That’s just my IDE trying to be 
> helpful (see GIRAPH-230).

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