Hello,
      I'm trying to run a graph job. But i have got some problems.
      I want to use member variable in vertex class, the code is as follow. I 
have changed the value of the member variable in one superstep. But when I use 
this member variable in next superstep, the value of this member variable is 
still the defalult value. For example, "match" is the member variable. I have 
changed the value of "match" to be ture in superstep 0, but when I print 
"match" in superstep 1, the result was "match: false". 
      Could anyone tell me why the value of member variable is changed? Thanks 
very much. 
      Best wishes.


      public static class ProbMatchVertex extends Vertex<Text, NullWritable, 
TriTextPair> {
                private boolean match = false;


                @Override
                public void compute(Iterable<TriTextPair> messages) throws 
IOException {
                        if (getSuperstepCount() == 0) {
                                match = true;
                                sendMessageToNeighbors(new 
TriTextPair(getVertexID(),
                                                getVertexLabel(), new 
Text("")));
                        } else if(getSuperstepCount() == 1){
                                System.out.println("match:" +  match);
                                parents = new ArrayList<TriTextPair>();
                                for(TriTextPair msg : messages){
                                        parents.add(msg);
                                        sendMessage(msg.getFirst(), new 
TriTextPair(getVertexID(), getVertexLabel(), new Text("")));
                                }
                        } 
                }




Ping Liu

Reply via email to