[jira] [Assigned] (GIRAPH-174) ConnectedComponentsVertex for loops can be replaced with for-each loops

2012-04-30 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi reassigned GIRAPH-174:
---

Assignee: Roman K

 ConnectedComponentsVertex for loops can be replaced with for-each loops
 ---

 Key: GIRAPH-174
 URL: https://issues.apache.org/jira/browse/GIRAPH-174
 Project: Giraph
  Issue Type: Improvement
Reporter: Jakob Homan
Assignee: Roman K
Priority: Trivial
  Labels: newbie
 Attachments: GIRAPH-174.patch


 {code}// First superstep is special, because we can simply look at the 
 neighbors
 if (getSuperstep() == 0) {
   for (IteratorIntWritable edges = iterator(); edges.hasNext();) {
 int neighbor = edges.next().get();
 if (neighbor  currentComponent) {
   currentComponent = neighbor;
 }
   }
   // Only need to send value if it is not the own id
   if (currentComponent != getVertexValue().get()) {
 setVertexValue(new IntWritable(currentComponent));
 for (IteratorIntWritable edges = iterator();
 edges.hasNext();) {
   int neighbor = edges.next().get();
   if (neighbor  currentComponent) {
 sendMsg(new IntWritable(neighbor), getVertexValue());
   }
 }
   }{code}
 Both of the for loops in this chunk from ConnectedComponentsVertex can be 
 replaced with for(IntWritable i : iterator()) loops to be more idiomatic.

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




[jira] [Commented] (GIRAPH-185) Improve concurrency of putMsg / putMsgList

2012-04-25 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13262278#comment-13262278
 ] 

Hyunsik Choi commented on GIRAPH-185:
-

If there is a trade-off relationship between the performance and memory 
consumption, the memory consumption seems more important in the current giraph 
implementation. Also, I agree that some benchmarks are necessary.

 Improve concurrency of putMsg / putMsgList
 --

 Key: GIRAPH-185
 URL: https://issues.apache.org/jira/browse/GIRAPH-185
 Project: Giraph
  Issue Type: Improvement
  Components: graph
Affects Versions: 0.2.0
Reporter: Bo Wang
Assignee: Bo Wang
 Fix For: 0.2.0

 Attachments: GIRAPH-185.patch, GIRAPH-185.patch

   Original Estimate: 2h
  Remaining Estimate: 2h

 Currently in putMsg / putMsgList, a synchronized closure is used to protect 
 the whole transientInMessages when adding the new message. This lock prevents 
 other concurrent calls to putMsg/putMsgList and increases the response time. 
 We should use fine-grain locks to allow high concurrency in message 
 communication.

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




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-09-26 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13114646#comment-13114646
 ] 

Hyunsik Choi commented on GIRAPH-12:


I'm sorry too for late response. I was out of town due to my personal work. I 
just come to home. 
The previous experiments are too simple. Actually, that experiment cannot show 
any meaningful result. I sorry for that. As to the question 3, this issue was 
originated from the memory usage.  I should have measured the memory usage. 
Sooner, I'll answer your 3 questions :)

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch, GIRAPH-12_2.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-09-26 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13114709#comment-13114709
 ] 

Hyunsik Choi commented on GIRAPH-12:


I have thought about question 3. That is, how we can measure the memory usage 
while Giraph is running.

Probably, the most basic way is to use the hadoop metrics 
(http://www.cloudera.com/blog/2009/03/hadoop-metrics/). However, this way needs 
to change _hadoop-metrics.properties_ file. So, it may be restricted for most 
large clusters; e.g., Yahoo! cluster that Avery can access. 

If the above way is impossible, we can implement a thread class mimic to hadoop 
metric in order to measure the memory usage on JVM periodically and sends that 
to a specific remote server.

What do you think about that?

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch, GIRAPH-12_2.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (GIRAPH-12) Investigate communication improvements

2011-09-21 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi updated GIRAPH-12:
---

Attachment: GIRAPH-12_2.patch

I attach the second patch.

I have benchmarked this patch via GIRAPH-32. The results are shown as the 
below. In the results, the improved version is slightly better than current 
implementation. As Avery mentioned, the improved one makes threads 
controllable, so it is an improve. 

Users can adjust the number of core threads and max threads by using 
GiraphJob's constants, such as MSG_FLUSHER_CORE_SIZE and MSG_FLUSHER_MAX_SIZE. 
This setting can affect the performance. So, we may need to guide users to find 
the best parameters.

But, this experiment may be not enough to evaluate this approach because this 
experiment is conducted in small cluster.

*the result of original version*
{noformat}
org.apache.giraph.benchmark.RandomMessageBenchmark -e 2 -s 3 -w 6 -b 4 -n 150 
-V 30 -v

= 1st =
11/09/22 00:55:06 INFO mapred.JobClient: Total (milliseconds)=63096
11/09/22 00:55:06 INFO mapred.JobClient: Superstep 3 (milliseconds)=551
11/09/22 00:55:06 INFO mapred.JobClient: Setup (milliseconds)=1331
11/09/22 00:55:06 INFO mapred.JobClient: Shutdown (milliseconds)=1008
11/09/22 00:55:06 INFO mapred.JobClient: Vertex input superstep 
(milliseconds)=516
11/09/22 00:55:06 INFO mapred.JobClient: Superstep 0 (milliseconds)=16079
11/09/22 00:55:06 INFO mapred.JobClient: Superstep 2 (milliseconds)=25657
11/09/22 00:55:06 INFO mapred.JobClient: Superstep 1 (milliseconds)=17950

= 2rd =
11/09/22 00:58:13 INFO mapred.JobClient: Total (milliseconds)=62771
11/09/22 00:58:13 INFO mapred.JobClient: Superstep 3 (milliseconds)=600
11/09/22 00:58:13 INFO mapred.JobClient: Setup (milliseconds)=1290
11/09/22 00:58:13 INFO mapred.JobClient: Shutdown (milliseconds)=950
11/09/22 00:58:13 INFO mapred.JobClient: Vertex input superstep 
(milliseconds)=614
11/09/22 00:58:13 INFO mapred.JobClient: Superstep 0 (milliseconds)=15654
11/09/22 00:58:13 INFO mapred.JobClient: Superstep 2 (milliseconds)=25157
11/09/22 00:58:13 INFO mapred.JobClient: Superstep 1 (milliseconds)=18499
{noformat}

*the result of patched version*
{noformat}
= 1st =
11/09/22 00:59:41 INFO mapred.JobClient: Total (milliseconds)=60068
11/09/22 00:59:41 INFO mapred.JobClient: Superstep 3 (milliseconds)=542
11/09/22 00:59:41 INFO mapred.JobClient: Setup (milliseconds)=1219
11/09/22 00:59:41 INFO mapred.JobClient: Shutdown (milliseconds)=1025
11/09/22 00:59:41 INFO mapred.JobClient: Vertex input superstep 
(milliseconds)=616
11/09/22 00:59:41 INFO mapred.JobClient: Superstep 0 (milliseconds)=15887
11/09/22 00:59:41 INFO mapred.JobClient: Superstep 2 (milliseconds)=23149
11/09/22 00:59:41 INFO mapred.JobClient: Superstep 1 (milliseconds)=17626

= 2rd =
11/09/22 01:01:05 INFO mapred.JobClient: Total (milliseconds)=60359
11/09/22 01:01:05 INFO mapred.JobClient: Superstep 3 (milliseconds)=510
11/09/22 01:01:05 INFO mapred.JobClient: Setup (milliseconds)=1399
11/09/22 01:01:05 INFO mapred.JobClient: Shutdown (milliseconds)=956
11/09/22 01:01:05 INFO mapred.JobClient: Vertex input superstep 
(milliseconds)=550
11/09/22 01:01:05 INFO mapred.JobClient: Superstep 0 (milliseconds)=16054
11/09/22 01:01:05 INFO mapred.JobClient: Superstep 2 (milliseconds)=23049
11/09/22 01:01:05 INFO mapred.JobClient: Superstep 1 (milliseconds)=17835
{noformat}

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch, GIRAPH-12_2.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (GIRAPH-32) Implement benchmarks to evaluate the performance of message passing

2011-09-19 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi resolved GIRAPH-32.


Resolution: Fixed

Because this issue got +1, I just committed.

 Implement benchmarks to evaluate the performance of message passing 
 

 Key: GIRAPH-32
 URL: https://issues.apache.org/jira/browse/GIRAPH-32
 Project: Giraph
  Issue Type: Task
  Components: benchmark
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
 Fix For: 0.70.0

 Attachments: GIRAPH-32.patch, GIRAPH-32_2.patch


 Message passing framework plays an important role in Giraph.
 We need some benchmark programs to evaluate the improvement related to 
 message passing method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (GIRAPH-32) Implement benchmarks to evaluate the performance of message passing

2011-09-18 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi updated GIRAPH-32:
---

Attachment: GIRAPH-32_2.patch

Good idea! According to which InputFormat we use, we could choose the 
distribution of destination vertices.

I attach the patch that corrected coding convention.

 Implement benchmarks to evaluate the performance of message passing 
 

 Key: GIRAPH-32
 URL: https://issues.apache.org/jira/browse/GIRAPH-32
 Project: Giraph
  Issue Type: Task
  Components: benchmark
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
 Fix For: 0.70.0

 Attachments: GIRAPH-32.patch, GIRAPH-32_2.patch


 Message passing framework plays an important role in Giraph.
 We need some benchmark programs to evaluate the improvement related to 
 message passing method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (GIRAPH-32) Implement benchmarks to evaluate the performance of message passing

2011-09-17 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi updated GIRAPH-32:
---

Attachment: GIRAPH-32.patch

I attach the patch about this issue.

This patch includes a benchmark class. In this benchmark, for each vertex, the 
compute function sends a meaningless message into all edges of the vertex. 
Actually, I intend this benchmark to send messages into random workers. 
PseudoRandomVertexInputFormat already generates random edges. I employed it.

This benchmark allows users to set the size of message bytes and the number of 
sending messages per edge. This is because I think they are basic factors to 
evaluate the behavior and performance of some message delivery system. Besides, 
users can adjust the number of edges per vertex rather than adjusting the 
number of sending messages per. It allows users to make the sending pattern 
either more spread or more skewed.

Anyone can review this?

 Implement benchmarks to evaluate the performance of message passing 
 

 Key: GIRAPH-32
 URL: https://issues.apache.org/jira/browse/GIRAPH-32
 Project: Giraph
  Issue Type: Task
  Components: benchmark
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
 Fix For: 0.70.0

 Attachments: GIRAPH-32.patch


 Message passing framework plays an important role in Giraph.
 We need some benchmark programs to evaluate the improvement related to 
 message passing method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-09-17 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13107061#comment-13107061
 ] 

Hyunsik Choi commented on GIRAPH-12:


(a note for sharing)

Graph mutation functions (e.g., addVertexRequest, addEdgeRequest..) directly 
invoke RPC functions. 
This approach incurs RPC round-trip overheads during processing. Especially 
when many workers try to mutate vertices or edges, synchronization overheads 
may also occur in receiving sides. It may be severe as the size of cluster 
increases.

If we change graph mutation API to asynchronous messages, it would be more 
efficient. If possible, graph mutation messages and value messages (i.e., 
sendMsg) can be integrated into one message passing API.

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-09-17 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13107063#comment-13107063
 ] 

Hyunsik Choi commented on GIRAPH-12:


(a note for sharing)

In current implementation, outgoing messages are sent to other peers in only 
two triggers:
1) When the number of outgoing messages for a specific peer exceeds the a 
threshold (i.e., maxSize), the outgoing messages for the peer are transmitted 
to the peer.
2) When one super step is finished, the entire messages are flushed to other 
peers.

In the case 1, however, the current implementation only consider the number of 
messages instead of the size of messages. The outgoing messages reside in main 
memory until they are sent to other peers. It is another important factor to 
consume main memory. It would be good to consider not only the number of 
messages but also the size of messages.

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-35) Modifying the site to indicated that Jake Mannix and Dmitriy Ryaboy are now Giraph committers

2011-09-15 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-35?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13105795#comment-13105795
 ] 

Hyunsik Choi commented on GIRAPH-35:


+1

Welcome new committers :)

 Modifying the site to indicated that Jake Mannix and Dmitriy Ryaboy are now 
 Giraph committers
 -

 Key: GIRAPH-35
 URL: https://issues.apache.org/jira/browse/GIRAPH-35
 Project: Giraph
  Issue Type: Task
Reporter: Avery Ching
Assignee: Avery Ching
 Attachments: GIRAPH-35.patch




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-09-14 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13104340#comment-13104340
 ] 

Hyunsik Choi commented on GIRAPH-12:


You mean that we need some benchmark program to test the performance and 
scalability of message passing methods. If so, I'll add two benchmarking 
programs, which are sending messages to peers in random and skewed distribution 
respectively. For this, I'll create another issue.

Let me know what you think :)

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (GIRAPH-32) Implement benchmarks to evaluate the performance of message passing

2011-09-14 Thread Hyunsik Choi (JIRA)
Implement benchmarks to evaluate the performance of message passing 


 Key: GIRAPH-32
 URL: https://issues.apache.org/jira/browse/GIRAPH-32
 Project: Giraph
  Issue Type: Task
  Components: benchmark
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
 Fix For: 0.70.0


Message passing framework plays an important role in Giraph.
We need some benchmark programs to evaluate the improvement related to message 
passing method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (GIRAPH-33) Missing license header of GraphState.java

2011-09-14 Thread Hyunsik Choi (JIRA)
Missing license header of GraphState.java
-

 Key: GIRAPH-33
 URL: https://issues.apache.org/jira/browse/GIRAPH-33
 Project: Giraph
  Issue Type: Task
  Components: graph
Reporter: Hyunsik Choi
Priority: Trivial
 Fix For: 0.70.0


GraphState.java doesn't contain apache license header.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (GIRAPH-33) Missing license header of GraphState.java

2011-09-14 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi updated GIRAPH-33:
---

Attachment: GIRAPH-33.patch

This patch adds apache license header.

 Missing license header of GraphState.java
 -

 Key: GIRAPH-33
 URL: https://issues.apache.org/jira/browse/GIRAPH-33
 Project: Giraph
  Issue Type: Task
  Components: graph
Reporter: Hyunsik Choi
Priority: Trivial
 Fix For: 0.70.0

 Attachments: GIRAPH-33.patch


 GraphState.java doesn't contain apache license header.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (GIRAPH-33) Missing license header of GraphState.java

2011-09-14 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi resolved GIRAPH-33.


Resolution: Fixed

This is a trivial fix.
I just committed.

 Missing license header of GraphState.java
 -

 Key: GIRAPH-33
 URL: https://issues.apache.org/jira/browse/GIRAPH-33
 Project: Giraph
  Issue Type: Task
  Components: graph
Reporter: Hyunsik Choi
Priority: Trivial
 Fix For: 0.70.0

 Attachments: GIRAPH-33.patch


 GraphState.java doesn't contain apache license header.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-09-12 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13102682#comment-13102682
 ] 

Hyunsik Choi commented on GIRAPH-12:


Like the current PeerThread, initially each PeerConnection gets one established 
RPC proxy. These connections are kept during whole processing. So, there is no 
connection overhead. 

If you test this code on Yahoo!'s clusters, I'll appreciate your help. And, 
next week I can access to my lab's hadoop cluster. At that time, I'll also do 
some tests.

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (GIRAPH-12) Investigate communication improvements

2011-09-11 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi updated GIRAPH-12:
---

Attachment: GIRAPH-12_1.patch

As Avery mentioned, in the current architecture, each worker requires N threads 
that communicate with N remote peers. This may incur severe context-switching 
overheads (especially when all messages are flushed) and more memory 
consumption. Firstly, I considered about replacing RPC system to another one. 
However, it is not simple work. I need more time.

Instead, I have considered an alternative way to employ ThreadPoolExecutor in 
order to adjust active threads. When Giraph deals with large graphs, the 
performance of Giraph is usually bounded on network bandwidth. I think that 
this approach would be effective. In addition, I tried to reduce the 
synchronization area, where BasicRPCCommunicator (374-394 lines) sends large 
buffered messages to specific peers.

I attached the patch in progress. Now, I cannot access to real hadoop cluster 
for one week. I didn't test this in real cluster. Besides, all unit test are 
passed.

How about this approach? Could you review this?

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (GIRAPH-12) Investigate communication improvements

2011-09-11 Thread Hyunsik Choi (JIRA)

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

Hyunsik Choi updated GIRAPH-12:
---

Component/s: bsp

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
  Components: bsp
Reporter: Avery Ching
Assignee: Hyunsik Choi
Priority: Minor
 Attachments: GIRAPH-12_1.patch


 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-29) Implement TextVertexInputFormat for text-format graph data

2011-09-10 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-29?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13102111#comment-13102111
 ] 

Hyunsik Choi commented on GIRAPH-29:


I'm sorry for my big mistake. I overlookd org.apache.giraph.lib package.

I have a question. When a program use TextVertexInputFormat, the active workers 
are determined by the number of blocks? How does giraph work when the blocks 
are more than numWorkers? Should the numWorkers is set by user by considering 
both the length of input data and the number of numWorkers.



 Implement TextVertexInputFormat for text-format graph data
 --

 Key: GIRAPH-29
 URL: https://issues.apache.org/jira/browse/GIRAPH-29
 Project: Giraph
  Issue Type: New Feature
  Components: bsp
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
Priority: Minor
 Fix For: 0.70.0


 Supporting text-format graph data would be nice. It is helpful for developing 
 graph algorithms and debugging because text-format graph data are 
 human-readable and enable users to easily write sample data sets. 
 Furthermore, text-format data are exchangeable regardless of operating 
 systems or programming languages.
 So, we need a basic InputFormat to help users develop user-defined 
 InputFormat classes to deal text-represented graph data sets.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-29) Implement TextVertexInputFormat for text-format graph data

2011-09-10 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-29?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13102177#comment-13102177
 ] 

Hyunsik Choi commented on GIRAPH-29:


Thank you for your kind reply.

 Implement TextVertexInputFormat for text-format graph data
 --

 Key: GIRAPH-29
 URL: https://issues.apache.org/jira/browse/GIRAPH-29
 Project: Giraph
  Issue Type: New Feature
  Components: bsp
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
Priority: Minor
 Fix For: 0.70.0


 Supporting text-format graph data would be nice. It is helpful for developing 
 graph algorithms and debugging because text-format graph data are 
 human-readable and enable users to easily write sample data sets. 
 Furthermore, text-format data are exchangeable regardless of operating 
 systems or programming languages.
 So, we need a basic InputFormat to help users develop user-defined 
 InputFormat classes to deal text-represented graph data sets.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-9) Change Yahoo License Header to Apache License Header

2011-08-28 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-9?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13092619#comment-13092619
 ] 

Hyunsik Choi commented on GIRAPH-9:
---

Unfortunately, I didn't know that there exists such a tool.
I changed them in hand :)

 Change Yahoo License Header to Apache License Header
 

 Key: GIRAPH-9
 URL: https://issues.apache.org/jira/browse/GIRAPH-9
 Project: Giraph
  Issue Type: Task
Reporter: Hyunsik Choi
Assignee: Hyunsik Choi
 Fix For: 0.1.0

 Attachments: GIRAPH-9.patch


 All source codes contains Yahoo License Header as follows
 {noformat}
 Licensed to Yahoo! under one or more contributor license agreements. 
 ...
 {noformat}
 These license header should be as follows
 {noformat}
 Licensed to the Apache Software Foundation (ASF) under one 
 or more contributor license agreements.
 ...
 {noformat}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (GIRAPH-12) Investigate communication improvements

2011-08-28 Thread Hyunsik Choi (JIRA)

[ 
https://issues.apache.org/jira/browse/GIRAPH-12?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13092622#comment-13092622
 ] 

Hyunsik Choi commented on GIRAPH-12:


Netty seems to be good solution. Now, Apache Avro provides the netty-based 
server.
If we use Avro as a rpc mechanism among workers, we could solve this problem 
easily.

 Investigate communication improvements
 --

 Key: GIRAPH-12
 URL: https://issues.apache.org/jira/browse/GIRAPH-12
 Project: Giraph
  Issue Type: Improvement
Reporter: Avery Ching
Priority: Minor

 Currently every worker will start up a thread to communicate with every other 
 workers.  Hadoop RPC is used for communication.  For instance if there are 
 400 workers, each worker will create 400 threads.  This ends up using a lot 
 of memory, even with the option  
 -Dmapred.child.java.opts=-Xss64k.  
 It would be good to investigate using frameworks like Netty or custom roll 
 our own to improve this situation.  By moving away from Hadoop RPC, we would 
 also make compatibility of different Hadoop versions easier.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira