annotate src/main/java/christie/topology/manager/SearchHostName.java.orig @ 168:c7300be0fff6

fix incomingHosts end message
author akahori
date Tue, 22 Jan 2019 16:00:29 +0900
parents 443bf8351933
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
143
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 package christie.topology.manager;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import christie.annotation.Peek;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 import christie.annotation.Take;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 import christie.codegear.CodeGear;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 import christie.codegear.CodeGearManager;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 import christie.topology.HostMessage;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 //import org.msgpack.type.ValueFactory;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 import java.util.HashMap;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 import java.util.LinkedList;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 public class SearchHostName extends CodeGear {
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 @Take // reconnect NodeInfo
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 HostMessage reconnectHost;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 @Peek
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 HashMap<String, LinkedList<HostMessage>> topology;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 @Peek
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 boolean running;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 public SearchHostName(){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 @Override
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 protected void run(CodeGearManager cgm) {
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 // Question: remove処理 どうしようか. いらない気もする.
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 // DataSegment.remove(hostInfo.absName);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 String nodeName = reconnectHost.getNodeName();
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 String hostName = reconnectHost.getHostName();
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 int port = reconnectHost.getPort();
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 cgm.createRemoteDGM(nodeName, hostName, port);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 getDGM(nodeName).put("nodeName", nodeName);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 // put Host dataSegment on reconnect node
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 if (topology.containsKey(nodeName)) {
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 // Question: これはバグ...?
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 // ods.put(reconnectHost.absName, "dummy"); // this is bug
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 if (running){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 getLocalDGM().put(nodeName, "");
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 LinkedList<HostMessage> hostList = topology.get(nodeName);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 for (HostMessage host : hostList){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 getLocalDGM().put(nodeName, host);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 System.out.println("put data in "+ nodeName);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 // update topology information
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 for (LinkedList<HostMessage> list :topology.values()){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 for (HostMessage host : list){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 // find and update old info
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 if (!nodeName.equals(host.getNodeName())) continue;
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 if (!hostName.equals(host.getHostName()) || port != host.getPort()){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 host.setHostAndPort(hostName, port);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 getLocalDGM().put(host.getNodeName(), host);
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 } else {
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 // nothing to do ?
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 for (LinkedList<HostMessage> list :topology.values()){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 System.out.print(list.get(0).getRemoteNodeName()+" : ");
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 for (HostMessage host : list){
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 System.out.print("[ "+host.getNodeName() +" "
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 +host.getHostName() +" "
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 +host.getPort() +" "
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 +host.getConnectionName()+" "
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 +host.getRemoteNodeName()+" ]");
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 System.out.println();
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 }
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
443bf8351933 add FizzBuzz
ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 }