diff options
Diffstat (limited to 'src/main/java/pl/edu')
5 files changed, 30 insertions, 2 deletions
| diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/EventBus.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/EventBus.java index 0e972f4..3d3d279 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/EventBus.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/EventBus.java @@ -49,7 +49,6 @@ public class EventBus implements Runnable {      }      public void routeMessage(AgentMessage msg) throws InterruptedException { -        System.out.println("Event bus routing message");          executors.get(msg.getDestinationModule()).addMessage(msg);      } diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirl.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirl.java index e795b83..440df33 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirl.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirl.java @@ -37,6 +37,7 @@ public class GossipGirl extends Module {      }      public void handleTyped(GossipGirlMessage message) throws InterruptedException, InvalidMessageType { +        System.out.println("INFO: got GossipGirlMessage " + message.getType());          switch(message.getType()) {              case INITIATE:                  initiateGossip((InitiateGossipMessage) message); @@ -64,6 +65,7 @@ public class GossipGirl extends Module {      public void handleTyped(ResponseMessage message) throws InterruptedException, InvalidMessageType {          switch(message.getType()) {              case STATE: +                System.out.println("INFO: GossipGirl got a StateMessage");                  setState((StateMessage) message);                  break;              default: @@ -77,6 +79,7 @@ public class GossipGirl extends Module {          gossipStates.put(gossipId, new GossipGirlState(gossipId, message.getOurPath(), message.getTheirContact(), true));          GetStateMessage getState = new GetStateMessage("", 0, ModuleType.GOSSIP, gossipId); +        System.out.println("INFO: GossipGirl sending GetStateMessage when initiating");          sendMessage(getState);      } @@ -94,12 +97,14 @@ public class GossipGirl extends Module {          gossipStates.get(gossipId).handleHejka(message);          GetStateMessage getState = new GetStateMessage("", 0, ModuleType.GOSSIP, gossipId); +        System.out.println("INFO: GossipGirl sending GetStateMessage when responding");          sendMessage(getState);      }      private void setState(StateMessage message) throws InterruptedException {          GossipGirlState state = gossipStates.get(message.getRequestId());          if (state != null) { +            System.out.println("INFO: setting state in gossip " + Long.toString(message.getRequestId()));              state.setLastAction();              state.setState(message.getZMI(), message.getQueries());              if (state.state == GossipGirlState.State.SEND_HEJKA) { @@ -113,6 +118,7 @@ public class GossipGirl extends Module {                          state.getQueryTimestampsToSend()                  );                  UDUPMessage udupMessage = new UDUPMessage("", 0, state.theirContact, hejka); +                System.out.println("INFO: GossipGirl sending HejkaMessage");                  sendMessage(udupMessage);                  state.sentHejka();              } else if (state.state == GossipGirlState.State.SEND_NO_CO_TAM) { @@ -127,6 +133,7 @@ public class GossipGirl extends Module {                          state.hejkaReceiveTimestamp                  );                  UDUPMessage udupMessage = new UDUPMessage("", 0, state.theirContact, noCoTam); +                System.out.println("INFO: GossipGirl sending NoCoTamMessage");                  sendMessage(udupMessage);                  state.sentNoCoTam();              } @@ -138,24 +145,30 @@ public class GossipGirl extends Module {      private void handleNoCoTam(NoCoTamMessage message) throws InterruptedException {          GossipGirlState state = gossipStates.get(message.getReceiverGossipId());          if (state != null) { +            System.out.println("INFO: handling NoCoTamMessage in" + Long.toString(message.getReceiverGossipId()));              state.setLastAction();              state.handleNoCoTam(message); +            System.out.println("DEBUG: handled NoCoTam in GossipGirlState");              sendInfo(state); +            System.out.println("DEBUG: sent info after NoCoTam");          } else {              System.out.println("ERROR: GossipGirl got state for a nonexistent gossip");          }      }      private void sendInfo(GossipGirlState state) throws InterruptedException { +        System.out.println("DEBUG: about to send info");          for (ZMI zmi : state.getZMIsToSend()) {              AttributesMessage attributesMessage = new AttributesMessage("", 0, zmi.getPathName(), zmi.getAttributes(), state.theirGossipId);              UDUPMessage udupMessage = new UDUPMessage("", 0, state.theirContact, attributesMessage); +            System.out.println("INFO: GossipGirl sending AttributesMessage");              sendMessage(udupMessage);          }          for (Entry<Attribute, ValueQuery> query : state.getQueriesToSend()) {              QueryMessage queryMessage = new QueryMessage("", 0, query.getKey(), query.getValue(), state.theirGossipId);              UDUPMessage udupMessage = new UDUPMessage("", 0, state.theirContact, queryMessage); +            System.out.println("INFO: GossipGirl sending QueryMessage");              sendMessage(udupMessage);          }          state.sentInfo(); @@ -164,12 +177,14 @@ public class GossipGirl extends Module {      private void handleAttributes(AttributesMessage message) throws InterruptedException {          GossipGirlState state = gossipStates.get(message.getReceiverGossipId());          if (state != null) { +            System.out.println("INFO: handling Attributes in " + Long.toString(message.getReceiverGossipId()));              state.setLastAction();              state.gotAttributes(message);              if (state.state == GossipGirlState.State.SEND_INFO || state.state == GossipGirlState.State.SEND_INFO_AND_FINISH) {                  sendInfo(state);              }              UpdateAttributesMessage updateMessage = new UpdateAttributesMessage("", 0, message.getPath().toString(), message.getAttributes()); +            System.out.println("INFO: GossipGirl sending UpdateAttributesMessage");              sendMessage(updateMessage);              if (state.state == GossipGirlState.State.FINISHED) {                  gossipStates.remove(message.getReceiverGossipId()); @@ -182,6 +197,7 @@ public class GossipGirl extends Module {      private void handleQuery(QueryMessage message) throws InterruptedException {          GossipGirlState state = gossipStates.get(message.getReceiverGossipId());          if (state != null) { +            System.out.println("INFO: handling Query in " + Long.toString(message.getReceiverGossipId()));              state.setLastAction();              state.gotQuery(message.getName());              Map<Attribute, Entry<ValueQuery, ValueTime>> queries = new HashMap(); @@ -190,6 +206,7 @@ public class GossipGirl extends Module {                  new SimpleImmutableEntry(message.getQuery(), state.getTheirQueryTimestamp(message.getName()))              );              UpdateQueriesMessage updateMessage = new UpdateQueriesMessage("", 0, queries); +            System.out.println("INFO: GossipGirl sending UpdateQueriesMessage");              sendMessage(updateMessage);              if (state.state == GossipGirlState.State.FINISHED) {                  gossipStates.remove(message.getReceiverGossipId()); diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirlState.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirlState.java index 70d57d9..e9bc02a 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirlState.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/GossipGirlState.java @@ -60,6 +60,7 @@ public class GossipGirlState {          this.gossipId = gossipId;          this.ourPath = ourPath;          this.theirContact = theirContact; +        System.out.println("INFO: initializing Gossip state, their contact " + theirContact.toString());          if (initiating) {              state = State.WAIT_FOR_STATE_INITIALIZER;          } else { @@ -129,16 +130,20 @@ public class GossipGirlState {      }      public void handleNoCoTam(NoCoTamMessage message) { +        System.out.println("DEBUG: in GossipGirlState handleNoCoTam");          switch (state) {              case WAIT_FOR_NO_CO_TAM: +                System.out.println("DEBUG: lets do this");                  theirGossipId = message.getSenderGossipId();                  theirZoneTimestamps = message.getZoneTimestamps();                  theirQueryTimestamps = message.getQueryTimestamps();                  hejkaSendTimestamp = message.getHejkaSendTimestamp();                  hejkaReceiveTimestamp = message.getHejkaReceiveTimestamp(); +                System.out.println("DEBUG: set basic stuff");                  setZonesToSend();                  setQueriesToSend();                  setWaitingFor(); +                System.out.println("DEBUG: set big stuff");                  state = State.SEND_INFO;                  break;              default: @@ -168,6 +173,8 @@ public class GossipGirlState {      public Map<PathName, ValueTime> getZoneTimestampsToSend() {          Map<PathName, ValueTime> timestamps = new HashMap(); +        System.out.println("Getting zone timestamps to send to " + theirContact.getName().toString()); +        System.out.println("hierarchy is " + hierarchy.toString());          collectZoneTimestamps(timestamps, hierarchy, theirContact.getName());          return timestamps;      } @@ -183,12 +190,14 @@ public class GossipGirlState {      public void setZonesToSend() {          zonesToSend = new LinkedList(); +        System.out.println("DEBUG: timestamps to send: " + getZoneTimestampsToSend().toString());          for (Entry<PathName, ValueTime> timestampedPath : getZoneTimestampsToSend().entrySet()) {              ValueTime theirTimestamp = theirZoneTimestamps.get(timestampedPath.getKey());              if (theirTimestamp == null || ValueUtils.valueLower(theirTimestamp, timestampedPath.getValue())) {                  zonesToSend.add(timestampedPath.getKey());              }          } +        System.out.println("DEBUG: zones to send: " + zonesToSend.toString());      }      public void setQueriesToSend() { @@ -199,6 +208,7 @@ public class GossipGirlState {                  queriesToSend.add(timestampedQuery.getKey());              }          } +        System.out.println("DEBUG: Queries to send: " + queriesToSend.toString());      }      public List<ZMI> getZMIsToSend() { @@ -227,6 +237,7 @@ public class GossipGirlState {      }      public void collectZoneTimestamps(Map<PathName, ValueTime> timestamps, ZMI currentZMI, PathName recipientPath) { +        System.out.println("collecting timestamps, on " + currentZMI.getPathName().toString());          for (ZMI zmi : currentZMI.getSons()) {              if (interestedIn(recipientPath, zmi.getPathName())) {                  ValueTime timestamp = (ValueTime) zmi.getAttributes().getOrNull("timestamp"); diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java index 3b7e633..cfaa37e 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPSerializer.java @@ -159,6 +159,7 @@ public class UDUPSerializer {          kryo.register(Value.class);          kryo.register(ValueBoolean.class);          kryo.register(ValueContact.class); +        kryo.register(ValueDouble.class);          kryo.register(ValueDuration.class);          kryo.register(ValueDouble.class);          kryo.register(ValueInt.class); diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPServer.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPServer.java index 0c5bc86..3da380c 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPServer.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/UDUPServer.java @@ -23,7 +23,7 @@ public class UDUPServer implements Runnable {      private final AtomicBoolean running;      public UDUPServer(InetAddress addr, int port, int bufSize) throws SocketException { -        this.socket = new DatagramSocket(port, addr); +        this.socket = new DatagramSocket(port);          this.address = addr;          this.bufSize = bufSize;          this.partialPackets = new HashMap<>(); |