giraph-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nishant gandhi <>
Subject Re: MessageCombiner
Date Mon, 12 May 2014 06:03:18 GMT
Let say I have 5 nodes which are sending message to 6th node.
each 5 node sending one message to 6th node containing some value.
I want to intercept all those 5 messages going towards 6th node.
after that I want to find the maximum value contained among those 5 nodes.
and send single message from combiner to 6th node which contain only the
maximum value among those messages.

I have tried to write a simple code for it but it seems not working. I dont
know what I am doing wrong.

In the code below, node 0 trying to send 3 message to node 1.
My final goal is, in superstep=1, node 1 should receive only one message
with contain 4 only.
My current code receiving all the 3 messages and hence I am getting final
value of variable:"test" as 7.

public class CombinerTest extends BasicComputation<LongWritable,
DoubleWritable, FloatWritable,DoubleWritable>

    public void compute(Vertex<LongWritable, DoubleWritable, FloatWritable>
arg0,Iterable<DoubleWritable> arg1) throws IOException {

        if(getSuperstep()==0 && (arg0.getId().get()==0))
            sendMessage(new LongWritable(1),new DoubleWritable(1));
            sendMessage(new LongWritable(1),new DoubleWritable(2));
            sendMessage(new LongWritable(1),new DoubleWritable(4));
        DoubleWritable test=new DoubleWritable(0);
            for(DoubleWritable messages :arg1)
                //    changed=true;

    public void combine(LongWritable vertexIndex, DoubleWritable
originalMessage, DoubleWritable messageToCombine)
            if(originalMessage.get() > messageToCombine.get())
     public DoubleWritable createInitialMessage()
            return new DoubleWritable(Double.MAX_VALUE);


please help me to figure out correct way to write code.
Thanks Maria.

Nishant Gandhi
M.Tech. CSE
IIT Patna

On Mon, May 12, 2014 at 11:11 AM, Maria Stylianou <> wrote:

> Hi Nishant,
> Can you be more specific? Are you trying to combine all incoming messages
> of a vertex into one message? What do you mean combine? Add values? Or
> append to a list?
> The message can be a list so you can put all values together.
> Maria
> On Sunday, May 11, 2014, nishant gandhi <> wrote:
>> Hi,
>> I am trying to write code that use Combiner. I want to combine all
>> message into one for each vertex. That one message contains message value
>> bigger than all the other message values.
>> Please help.
>> Nishant Gandhi
>> M.Tech. CSE
>> IIT Patna
> --
> Sent from Android Mobile

View raw message