Mercurial > hg > Database > Alice
annotate src/main/java/alice/topology/manager/CreateTreeTopology.java @ 523:145c425db88d dispose
add CompressedLDSM
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 09 Apr 2015 18:36:26 +0900 |
parents | fc313323c53b |
children | 0832af83583f 767d93626b88 1a860019b2fe 2df12c110ebc |
rev | line source |
---|---|
472 | 1 package alice.topology.manager; |
2 | |
3 import java.util.HashMap; | |
4 import org.msgpack.type.ValueFactory; | |
5 | |
6 import alice.codesegment.CodeSegment; | |
7 import alice.datasegment.CommandType; | |
8 import alice.datasegment.DataSegment; | |
9 import alice.datasegment.Receiver; | |
10 import alice.topology.HostMessage; | |
11 | |
514 | 12 public class CreateTreeTopology extends CodeSegment{ |
472 | 13 |
14 private Receiver info = ids.create(CommandType.TAKE); | |
15 private Receiver info1 = ids.create(CommandType.TAKE); | |
16 private Receiver info2 = ids.create(CommandType.TAKE); // HashMap | |
17 private Receiver info3 = ids.create(CommandType.TAKE); // MD5 | |
18 private Receiver info4 = ids.create(CommandType.TAKE); | |
475 | 19 private Receiver info6 = ids.create(CommandType.TAKE); |
472 | 20 |
514 | 21 public CreateTreeTopology(){ |
472 | 22 info.setKey("newHost"); |
23 info1.setKey("hostCount"); | |
475 | 24 info2.setKey("nameTable"); |
472 | 25 info3.setKey("MD5"); |
26 info4.setKey("absCookieTable"); | |
475 | 27 info6.setKey("parentManager"); |
472 | 28 } |
29 | |
30 @SuppressWarnings("unchecked") | |
31 @Override | |
32 public void run() { | |
33 String cookie = info3.asString(); | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
518
diff
changeset
|
34 System.out.println(cookie); |
472 | 35 HostMessage host = info.asClass(HostMessage.class); |
36 int comingHostCount = info1.asInteger(); | |
475 | 37 ParentManager manager = info6.asClass(ParentManager.class); |
472 | 38 |
475 | 39 HashMap<String, HostMessage> nameTable = info2.asClass(HashMap.class); |
472 | 40 HashMap<String, String> absCookieTable = info4.asClass(HashMap.class); |
41 | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
518
diff
changeset
|
42 String nodeName = "node"+comingHostCount; |
472 | 43 // Manager connect to Node |
480 | 44 DataSegment.connect(nodeName, nodeName, host.name, host.port); |
472 | 45 ods.put(nodeName, "host", nodeName); |
46 ods.put(nodeName, "cookie", cookie); | |
47 | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
518
diff
changeset
|
48 absCookieTable.put(cookie, nodeName); |
472 | 49 ods.put(info4.key, absCookieTable); |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
518
diff
changeset
|
50 ods.put(info1.key, comingHostCount+1); |
482 | 51 host.alive = true; |
475 | 52 nameTable.put(nodeName, host); |
53 manager.register(nodeName); | |
472 | 54 |
55 if (comingHostCount!=0) { | |
475 | 56 // put parent information own |
57 String parentAbsName = manager.getMyParent(); | |
58 HostMessage parent = nameTable.get(parentAbsName); | |
59 int num = manager.getMyNumber(); | |
60 | |
61 HostMessage newHost = new HostMessage(parent.name, parent.port, "parent", "child"+num); | |
62 newHost.absName = parentAbsName; | |
63 newHost.remoteAbsName = nodeName; // address | |
64 ods.put(newHost.remoteAbsName, newHost); | |
523
145c425db88d
add CompressedLDSM
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
518
diff
changeset
|
65 |
475 | 66 ods.put("nodeInfo", newHost); |
67 new RecodeTopology(); | |
68 | |
69 // put own information parent | |
70 newHost = new HostMessage(host.name, host.port, "child"+num, "parent"); | |
71 newHost.absName = nodeName; | |
72 newHost.remoteAbsName = parentAbsName; | |
73 | |
74 ods.put(newHost.remoteAbsName, newHost); | |
75 ods.put("nodeInfo", newHost); | |
76 new RecodeTopology(); | |
77 | |
472 | 78 } |
79 | |
475 | 80 ods.put(info2.key, nameTable); |
81 ods.put(info6.key, manager); | |
472 | 82 ods.put(nodeName, ValueFactory.createNilValue()); |
83 if (comingHostCount==0) | |
84 ods.put("start", ValueFactory.createNilValue()); | |
85 } | |
86 } |