changeset 547:e91a574b69de dispose

remove index
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Tue, 18 Aug 2015 16:15:17 +0900
parents 15eeb439830c
children b44a2bf16eb3
files src/main/java/alice/daemon/CommandMessage.java src/main/java/alice/daemon/IncomingTcpConnection.java src/main/java/alice/daemon/IncomingUdpConnection.java src/main/java/alice/datasegment/Command.java src/main/java/alice/datasegment/CompressedLocalDataSegmentManager.java src/main/java/alice/datasegment/CompressedRemoteDataSegmentManager.java src/main/java/alice/datasegment/DataSegmentKey.java src/main/java/alice/datasegment/LocalDataSegmentManager.java src/main/java/alice/datasegment/RemoteDataSegmentManager.java src/main/java/alice/test/codesegment/api/FlipTest.java src/main/java/alice/test/codesegment/api/PeekCodeSegment.java src/main/java/alice/test/codesegment/api/StartCodeSegment.java src/main/java/alice/test/codesegment/api/TakeCodeSegment.java src/main/java/alice/test/codesegment/api/UpdateCodeSegment.java src/main/java/alice/test/codesegment/local/SingletonTestCodeSegment.java src/main/java/alice/test/codesegment/local/StartCodeSegment.java src/main/java/alice/test/codesegment/local/TestCodeSegment.java src/main/java/alice/test/codesegment/local/bitonicsort/MakeData.java src/main/java/alice/test/codesegment/local/bitonicsort/SetTask.java src/main/java/alice/test/codesegment/local/bitonicsort/ShowData.java src/main/java/alice/test/codesegment/local/bitonicsort/SortPhase.java src/main/java/alice/test/codesegment/local/factorial/FactorialCodeSegment.java src/main/java/alice/test/codesegment/local/wordcount/CorrectResult.java src/main/java/alice/test/codesegment/local/wordcount/WordCount.java src/main/java/alice/test/codesegment/remote/RemoteIncrement.java src/main/java/alice/test/codesegment/remote/RemoteStartCodeSegment.java src/main/java/alice/test/concurrent/AliceFinish.java src/main/java/alice/test/concurrent/StartConcurrent.java src/main/java/alice/test/reflection/MetaCodeSegment.java src/main/java/alice/test/topology/aquarium/AutoIncrement.java src/main/java/alice/test/topology/aquarium/CheckLocalIndex.java src/main/java/alice/test/topology/aquarium/CheckMyName.java src/main/java/alice/test/topology/aquarium/SendLocation.java src/main/java/alice/test/topology/aquarium/SendMaxsize.java src/main/java/alice/test/topology/aquarium/SetLocation.java src/main/java/alice/test/topology/aquarium/TakeMynum.java src/main/java/alice/test/topology/aquarium/TakePnum.java src/main/java/alice/test/topology/aquarium/fx/AddObject.java src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java src/main/java/alice/test/topology/aquarium/fx/CheckAllFishInfoExist.java src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java src/main/java/alice/test/topology/aquarium/fx/CreateObject.java src/main/java/alice/test/topology/aquarium/fx/GetMyHostName.java src/main/java/alice/test/topology/aquarium/fx/MoveBeforePosition.java src/main/java/alice/test/topology/aquarium/fx/RegisterList.java src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java src/main/java/alice/test/topology/fish/AssignStartX.java src/main/java/alice/test/topology/fish/CheckMyName.java src/main/java/alice/test/topology/fish/GetStartX.java src/main/java/alice/test/topology/fish/PeekStartX.java src/main/java/alice/test/topology/fish/SendWidth.java src/main/java/alice/test/topology/fish/StartStartX.java src/main/java/alice/test/topology/fish/WidthReceiver.java src/main/java/alice/test/topology/ring/CheckMyName.java src/main/java/alice/test/topology/ring/FirstRingMessagePassing.java src/main/java/alice/test/topology/ring/RingMessagePassing.java src/main/java/alice/test/topology/ring/StartRing.java src/main/java/alice/test/topology/share/AutoIncrement.java src/main/java/alice/test/topology/share/CheckLocalIndex.java src/main/java/alice/test/topology/share/CheckMyName.java src/main/java/alice/test/topology/share/LookUpData.java src/main/java/alice/test/topology/share/SendData.java src/main/java/alice/topology/fix/FixTopology.java src/main/java/alice/topology/fix/ReceiveDisconnectMessage.java src/main/java/alice/topology/manager/CheckComingHost.java src/main/java/alice/topology/manager/ComingServiceHosts.java src/main/java/alice/topology/manager/ConfigWaiter.java src/main/java/alice/topology/manager/CreateHash.java src/main/java/alice/topology/manager/CreateTreeTopology.java src/main/java/alice/topology/manager/IncomingHosts.java src/main/java/alice/topology/manager/RecodeTopology.java src/main/java/alice/topology/manager/SearchHostName.java src/main/java/alice/topology/manager/StartTopologyManager.java src/main/java/alice/topology/manager/keeparive/CreateTask.java src/main/java/alice/topology/manager/keeparive/RemoveTask.java src/main/java/alice/topology/manager/keeparive/RespondPing.java src/main/java/alice/topology/manager/keeparive/TaskExecuter.java src/main/java/alice/topology/node/CloseRemoteDataSegment.java src/main/java/alice/topology/node/ClosedEventManager.java src/main/java/alice/topology/node/ConfigurationFinish.java src/main/java/alice/topology/node/CreateConnectionList.java src/main/java/alice/topology/node/DeleteConnection.java src/main/java/alice/topology/node/ExecuteEvent.java src/main/java/alice/topology/node/IncomingAbstractHostName.java src/main/java/alice/topology/node/IncomingConnectionInfo.java src/main/java/alice/topology/node/IncomingReverseKey.java src/main/java/alice/topology/node/PrepareToAddList.java src/main/java/alice/topology/node/PrepareToClose.java src/main/java/alice/topology/node/ReceiveCloseMessage.java src/main/java/alice/topology/node/RegisterEvent.java src/main/java/alice/topology/node/SaveCookie.java src/main/java/alice/topology/node/StartTopologyNode.java src/test/java/alice/daemon/MulticastIncrement.java src/test/java/alice/daemon/MulticastStartCodeSegment.java src/test/java/alice/daemon/ReceiveInteger.java
diffstat 95 files changed, 273 insertions(+), 300 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/alice/daemon/CommandMessage.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/daemon/CommandMessage.java	Tue Aug 18 16:15:17 2015 +0900
@@ -8,7 +8,6 @@
 @Message
 public class CommandMessage {
     public int type;//PUT, PEEKなどのコマンドタイプ
-    public int index;//キューの中でのDSの位置?
     public int seq;//DSの待ち合わせを行っているCSを表すunique number
     public String key;//DS key
     public boolean quickFlag = false;//SEDAを挟まずに処理を行うかどうか
@@ -22,10 +21,9 @@
 
     public CommandMessage() {}
 
-    public CommandMessage(int type, int index, int seq, String key
+    public CommandMessage(int type, int seq, String key
             , boolean qFlag, boolean sFlag, boolean cFlag, int datasize) {
         this.type = type;
-        this.index = index;
         this.seq = seq;
         this.key = key;
         this.quickFlag = qFlag;
--- a/src/main/java/alice/daemon/IncomingTcpConnection.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/daemon/IncomingTcpConnection.java	Tue Aug 18 16:15:17 2015 +0900
@@ -81,7 +81,7 @@
                         rData.depth = msg.depth;
                     }
 
-                    cmd = new Command(type, null, null, rData, 0, 0, null, null, reverseKey);
+                    cmd = new Command(type, null, null, rData, 0, null, null, reverseKey);
                     cmd.setCompressFlag(msg.compressed);
 
                     if (rData.compressed()){
@@ -93,7 +93,7 @@
                     break;
                 case PEEK:
                 case TAKE:
-                    cmd = new Command(type, null, null, null, msg.index, msg.seq, null, null, connection);
+                    cmd = new Command(type, null, null, null,  msg.seq, null, null, connection);
                     cmd.setCompressFlag(msg.compressed);
 
                     if (msg.compressed){
@@ -104,7 +104,7 @@
 
                     break;
                 case REMOVE:
-                    cmd = new Command(type, null, null, null, 0, 0, null, null, "");
+                    cmd = new Command(type, null, null, null, 0, null, null, "");
                     lmanager.getDataSegmentKey(msg.key).runCommand(cmd);//ToDo:fix
                     break;
                 case REPLY:
@@ -116,7 +116,7 @@
                         rData = new ReceiveData(unpacker.getSerializedByteArray(unpacker.readInt()), false, msg.dataSize);
                     }
 
-                    Command rCmd = new Command(type, null, null, rData, msg.index, msg.seq, null, null, "");
+                    Command rCmd = new Command(type, null, null, rData,  msg.seq, null, null, "");
                     cmd.setCompressFlag(msg.compressed);
                     cmd.cs.ids.reply(cmd.receiver, rCmd);
                     break;
--- a/src/main/java/alice/daemon/IncomingUdpConnection.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/daemon/IncomingUdpConnection.java	Tue Aug 18 16:15:17 2015 +0900
@@ -49,7 +49,7 @@
                 case UPDATE:
                 case PUT:
                     rData = new ReceiveData(unpacker.getSerializedByteArray(unpacker.readInt()));
-                    cmd = new Command(type, null, null, rData, 0, 0, null, null, reverseKey);
+                    cmd = new Command(type, null, null, rData, 0, null, null, reverseKey);
 
                     if (msg.compressed){
                         getCompressedLocalDataSegmentManager().getDataSegmentKey(msg.key).runCommand(cmd);
@@ -59,7 +59,7 @@
                     break;
                 case PEEK:
                 case TAKE:
-                    cmd = new Command(type, null, null, null, msg.index, msg.seq, null, null ,sender);
+                    cmd = new Command(type, null, null, null, msg.seq, null, null ,sender);
                     cmd.setQuickFlag(msg.quickFlag);
                     cmd.setCompressFlag(msg.compressed);
 
@@ -70,7 +70,7 @@
                     }
                     break;
                 case REMOVE:
-                    cmd = new Command(type, null, null, null, 0, 0, null, null, "");
+                    cmd = new Command(type, null, null, null, 0, null, null, "");
                     getLocalDataSegmentManager().getDataSegmentKey(msg.key).runCommand(cmd);
                     break;
                 case REPLY:
@@ -79,7 +79,7 @@
 
                     rData = new ReceiveData(unpacker.getSerializedByteArray(unpacker.readInt()));
 
-                    Command rCmd = new Command(type, null, null, rData, msg.index, msg.seq, null, null, "");
+                    Command rCmd = new Command(type, null, null, rData, msg.seq, null, null, "");
                     cmd.cs.ids.reply(cmd.receiver, rCmd);
                     break;
                 case PING:
--- a/src/main/java/alice/datasegment/Command.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/datasegment/Command.java	Tue Aug 18 16:15:17 2015 +0900
@@ -19,7 +19,6 @@
     public String key;
     public Receiver receiver;
     public ReceiveData rData;
-    public int index;//使ってない。アクセス用のindex。負の遺産。
     public int seq;//DSの待ち合わせを行っているCSを表すunique number。リモート用。対応コマンドを表す。
     public Connection connection; // for remote
     public BlockingQueue<Command> replyQueue;//PEEK/TAKE必要な返り値?
@@ -31,12 +30,11 @@
     /**
      * for PEEK/TAKE
      */
-    public Command(CommandType cmdType, Receiver receiver, String key, ReceiveData rData, int index, int seq, BlockingQueue<Command> replyQueue, CodeSegment cs, String reverseKey) {
+    public Command(CommandType cmdType, Receiver receiver, String key, ReceiveData rData, int seq, BlockingQueue<Command> replyQueue, CodeSegment cs, String reverseKey) {
         this.type = cmdType;
         this.receiver = receiver;
         this.key = key;
         this.rData = rData;
-        this.index = index;
         this.seq = seq;
         this.replyQueue = replyQueue;
         this.cs = cs;
@@ -46,12 +44,11 @@
     /**
      * for PUT/UPDATE/REPLY/PING/RESPONSE
      */
-    public Command(CommandType cmdType, Receiver receiver, String key, ReceiveData rData, int index, int seq, CodeSegment cs, String reverseKey, Connection connection) {
+    public Command(CommandType cmdType, Receiver receiver, String key, ReceiveData rData, int seq, CodeSegment cs, String reverseKey, Connection connection) {
         this.type = cmdType;
         this.receiver = receiver;
         this.key = key;
         this.rData = rData;
-        this.index = index;
         this.seq = seq;
         this.connection = connection;
         this.cs = cs;
@@ -67,7 +64,7 @@
         if (cs != null) {
             csName = cs.toString();
         }
-        return this.type + "\t" + key + "\t" + rData + "\tindex=" + index + "\tcs=" + csName;
+        return this.type + "\t" + key + "\t" + rData + "\tcs=" + csName;
     }
     /**
      * @return serialized ByteBuffer
@@ -104,7 +101,7 @@
                         serialized = true;
                     }
 
-                    CommandMessage cm = new CommandMessage(type.id, index, seq, key, false, serialized, compressed, rData.getDataSize());
+                    CommandMessage cm = new CommandMessage(type.id, seq, key, false, serialized, compressed, rData.getDataSize());
                     if (rData.setTime) {
                         cm.setTime = true;
                         cm.time = rData.time;
@@ -119,7 +116,7 @@
                     buf.put(data);
                     break;
                 default:
-                    header = packer.write(new CommandMessage(type.id, index, seq, key, quickFlag, false, compressFlag, 0));
+                    header = packer.write(new CommandMessage(type.id, seq, key, quickFlag, false, compressFlag, 0));
                     buf = ByteBuffer.allocate(header.length);
                     buf.put(header);
                     break;
--- a/src/main/java/alice/datasegment/CompressedLocalDataSegmentManager.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/datasegment/CompressedLocalDataSegmentManager.java	Tue Aug 18 16:15:17 2015 +0900
@@ -63,7 +63,7 @@
             }
         }
 
-        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, 0, null, null, reverseKey);
+        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, null, null, reverseKey);
         cmd.setCompressFlag(true);
 
         manager.put1(key, cmd);
@@ -84,7 +84,7 @@
             }
         }
 
-        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, 0, null, null, reverseKey);
+        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, null, null, reverseKey);
         cmd.setCompressFlag(true);
 
         manager.put1(key, cmd);
@@ -92,7 +92,7 @@
 
     @Override
     public void take(Receiver receiver, CodeSegment cs, boolean quickFlag) {
-        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, 0, replyQueue, cs, null);
         cmd.setCompressFlag(true);
 
         manager.take1(receiver, cmd);
@@ -100,7 +100,7 @@
 
     @Override
     public void peek(Receiver receiver, CodeSegment cs, boolean quickFlag) {
-        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, 0, replyQueue, cs, null);
         cmd.setCompressFlag(true);
 
         manager.take1(receiver, cmd);
--- a/src/main/java/alice/datasegment/CompressedRemoteDataSegmentManager.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/datasegment/CompressedRemoteDataSegmentManager.java	Tue Aug 18 16:15:17 2015 +0900
@@ -31,7 +31,7 @@
                 e.printStackTrace();
             }
         }
-        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, null, null, "");
         cmd.setCompressFlag(true);
 
         manager.put1(quickFlag, cmd);
@@ -46,7 +46,7 @@
                 e.printStackTrace();
             }
         }
-        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, null, null, "");
         cmd.setCompressFlag(true);
 
         manager.put1(quickFlag, cmd);
@@ -54,7 +54,7 @@
 
     @Override
     public void take(Receiver receiver, CodeSegment cs, boolean quickFlag) {
-        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, 0, replyQueue, cs, null);
         cmd.setCompressFlag(true);
 
         manager.take1(quickFlag, cmd);
@@ -62,7 +62,7 @@
 
     @Override
     public void peek(Receiver receiver, CodeSegment cs, boolean quickFlag) {
-        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, 0, replyQueue, cs, null);
         cmd.setCompressFlag(true);
 
         manager.take1(quickFlag, cmd);
--- a/src/main/java/alice/datasegment/DataSegmentKey.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/datasegment/DataSegmentKey.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,7 +14,7 @@
 
     private ArrayList<DataSegmentValue> dataList = new ArrayList<DataSegmentValue>();
     private ArrayList<Command> waitList = new ArrayList<Command>();
-    private int tailIndex = 1;
+    private int tailIndex = 1;//keyに対して存在するDSの数?
 
     public synchronized void runCommand(Command cmd) {
         switch (cmd.type) {
@@ -30,49 +30,31 @@
             // Process waiting peek and take commands
             for (Iterator<Command> iter = waitList.iterator(); iter.hasNext(); ) {
                 Command waitCmd = iter.next();
-                if (waitCmd.index < index) {
-                    replyValue(waitCmd, dsv, cmd.getCompressFlag());
-                    iter.remove();
-                    if (waitCmd.type == CommandType.TAKE) { // someone is waiting for this put or update command
-                        dataList.remove(dsv);
-                        break;
-                    }
+
+                replyValue(waitCmd, dsv, cmd.getCompressFlag());
+                iter.remove();
+                if (waitCmd.type == CommandType.TAKE) { // someone is waiting for this put or update command
+                    dataList.remove(dsv);
+                    break;
                 }
+
             }
             break;
         case PEEK:
-            if (cmd.index >= tailIndex) {
+            if (dataList.isEmpty()) {
                 waitList.add(cmd);
                 break;
             }
-            boolean waitFlag2 = true;
-            for (DataSegmentValue data : dataList) {
-                if (data.index > cmd.index) {
-                    replyValue(cmd, data, cmd.getCompressFlag());
-                    waitFlag2 = false;
-                    break;
-                }
-            }
-            if (waitFlag2)
-                waitList.add(cmd);
+
+            replyValue(cmd, dataList.get(0), cmd.getCompressFlag());
+
             break;
         case TAKE:
-            if (cmd.index >= tailIndex) {
+            if (dataList.isEmpty()) {
                 waitList.add(cmd);
                 break;
             }
-            boolean waitFlag = true;
-            for (Iterator<DataSegmentValue> iter = dataList.iterator(); iter.hasNext(); ) {
-                DataSegmentValue data = iter.next();
-                if (data.index > cmd.index) {
-                    replyValue(cmd, data, cmd.getCompressFlag());
-                    iter.remove();
-                    waitFlag = false;
-                    break;
-                }
-            }
-            if (waitFlag)
-                waitList.add(cmd);
+            replyValue(cmd, dataList.remove(0), cmd.getCompressFlag());
             break;
         case REMOVE:
             // TODO: implements later
@@ -83,7 +65,7 @@
     }
 
     public void replyValue(Command cmd, DataSegmentValue data, boolean cFlag){
-        Command rCmd = new Command(CommandType.REPLY, null, null, data.rData, data.index, cmd.seq, null, null, data.from);
+        Command rCmd = new Command(CommandType.REPLY, null, null, data.rData, cmd.seq, null, null, data.from);
         rCmd.setCompressFlag(cFlag);
 
         if (cmd.cs!=null){ // if cmd has cs-instance, it means Command from local.
--- a/src/main/java/alice/datasegment/LocalDataSegmentManager.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/datasegment/LocalDataSegmentManager.java	Tue Aug 18 16:15:17 2015 +0900
@@ -71,7 +71,7 @@
 
     @Override
     public void put(String key, ReceiveData rData, boolean quickFlag) {
-        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, 0, null, null, reverseKey);
+        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, null, null, reverseKey);
         put1(key, cmd);
     }
 
@@ -88,14 +88,14 @@
 
     @Override
     public void update(String key, ReceiveData rData, boolean quickFlag) {
-        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, 0, null, null, reverseKey);
+        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, null, null, reverseKey);
         put1(key, cmd);
     }
 
     @Override
     public void take(Receiver receiver, CodeSegment cs, boolean quickFlag) {
 
-        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, 0, replyQueue, cs, null);
         take1(receiver, cmd);
     }
 
@@ -111,14 +111,14 @@
 
     @Override
     public void peek(Receiver receiver, CodeSegment cs, boolean quickFlag) {
-        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, 0, replyQueue, cs, null);
         take1(receiver, cmd);
     }
 
     @Override
     public void remove(String key) {
         DataSegmentKey dataSegmentKey = getDataSegmentKey(key);
-        Command cmd = new Command(CommandType.REMOVE, null, key, null, 0, 0, replyQueue, null, null);
+        Command cmd = new Command(CommandType.REMOVE, null, key, null, 0, replyQueue, null, null);
         dataSegmentKey.runCommand(cmd);
         if (logger.isDebugEnabled())
             logger.debug(cmd.getCommandString());
@@ -136,7 +136,7 @@
     public void recommand(Receiver receiver, CodeSegment cs) {
         DataSegmentKey dataSegmentKey = getDataSegmentKey(receiver.key);
         int seq = this.seq.getAndIncrement();
-        Command cmd = new Command(receiver.type, receiver, receiver.key, null, receiver.index, seq, replyQueue, cs, null);
+        Command cmd = new Command(receiver.type, receiver, receiver.key, null, seq, replyQueue, cs, null);
         dataSegmentKey.runCommand(cmd);
         if (logger.isDebugEnabled())
             logger.debug(cmd.getCommandString());
--- a/src/main/java/alice/datasegment/RemoteDataSegmentManager.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/datasegment/RemoteDataSegmentManager.java	Tue Aug 18 16:15:17 2015 +0900
@@ -64,7 +64,7 @@
      */
     @Override
     public void put(String key, ReceiveData rData, boolean quickFlag) {
-        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.PUT, null, key, rData, 0, null, null, "");
 
         put1(quickFlag, cmd);
     }
@@ -81,7 +81,7 @@
 
     @Override
     public void update(String key, ReceiveData rData, boolean quickFlag) {
-        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.UPDATE, null, key, rData, 0, null, null, "");
 
         put1(quickFlag, cmd);
     }
@@ -89,7 +89,7 @@
     @Override
     public void take(Receiver receiver, CodeSegment cs, boolean quickFlag) {
 
-        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.TAKE, receiver, receiver.key, null,  0, replyQueue, cs, null);
         take1(quickFlag, cmd);
     }
 
@@ -110,13 +110,13 @@
 
     @Override
     public void peek(Receiver receiver, CodeSegment cs, boolean quickFlag) {
-        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null, receiver.index, 0, replyQueue, cs, null);
+        Command cmd = new Command(CommandType.PEEK, receiver, receiver.key, null,  0, replyQueue, cs, null);
         take1(quickFlag, cmd);
     }
 
     @Override
     public void remove(String key) {
-        Command cmd = new Command(CommandType.REMOVE, null, key, null, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.REMOVE, null, key, null, 0, null, null, "");
         connection.sendCommand(cmd);
         if (logger.isDebugEnabled())
             logger.debug(cmd.getCommandString());
@@ -124,25 +124,25 @@
 
     @Override
     public void finish() {
-        Command cmd = new Command(CommandType.FINISH, null, null, null, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.FINISH, null, null, null, 0, null, null, "");
         connection.sendCommand(cmd);
     }
 
     @Override
     public void ping(String returnKey) {
-        Command cmd = new Command(CommandType.PING, null, returnKey, null, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.PING, null, returnKey, null, 0, null, null, "");
         connection.write(cmd);
     }
 
     @Override
     public void response(String returnKey) {
-        Command cmd = new Command(CommandType.RESPONSE, null, returnKey, null, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.RESPONSE, null, returnKey, null, 0, null, null, "");
         connection.write(cmd);
     }
 
     @Override
     public void close() {
-        Command cmd = new Command(CommandType.CLOSE, null, null, null, 0, 0, null, null, "");
+        Command cmd = new Command(CommandType.CLOSE, null, null, null, 0, null, null, "");
         connection.sendManager = false;
         connection.sendCommand(cmd);
     }
--- a/src/main/java/alice/test/codesegment/api/FlipTest.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/api/FlipTest.java	Tue Aug 18 16:15:17 2015 +0900
@@ -11,11 +11,7 @@
     public static boolean flag = false;
     public static int count = 10000;
     public FlipTest(String key){
-        arg1.setKey(key, arg1.index, this);
-    }
-
-    public FlipTest(String key, int index){
-        arg1.setKey(key, index);
+        arg1.setKey(key,this);
     }
 
     @Override
@@ -30,7 +26,7 @@
             //ods.put(arg1.key ,arg1.getObj());
         flag=true;
 
-        new FlipTest(arg1.key,count);
+        new FlipTest(arg1.key);
 
     }
 
--- a/src/main/java/alice/test/codesegment/api/PeekCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/api/PeekCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -7,7 +7,7 @@
 public class PeekCodeSegment extends CodeSegment{
     private Receiver info0 = ids.create(CommandType.PEEK);
     public PeekCodeSegment(String key) {
-        info0.setKey(key, arg1.index, this);
+        info0.setKey(key, this);
     }
 
     @Override
--- a/src/main/java/alice/test/codesegment/api/StartCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/api/StartCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -21,7 +21,7 @@
         for (String arg : args) {
             if ("-update".equals(arg)) {
                 UpdateCodeSegment cs1 = new UpdateCodeSegment();
-                cs1.ds1.setKey("key", arg1.index, this);
+                cs1.ds1.setKey("key", this);
                 int[] array = new int[65536];
                 array[0] = 0;
                 ods.update("local", "key", array);
--- a/src/main/java/alice/test/codesegment/api/TakeCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/api/TakeCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,7 +9,7 @@
     Receiver ds1 = ids.create(CommandType.TAKE);
 
     public TakeCodeSegment(String key){
-        this.ds1.setKey(key, arg1.index, this);
+        this.ds1.setKey(key, this);
     }
     @Override
     public void run() {
--- a/src/main/java/alice/test/codesegment/api/UpdateCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/api/UpdateCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,7 +13,7 @@
     @Override
     public void run() {
         UpdateCodeSegment cs1 = new UpdateCodeSegment();
-        cs1.ds1.setKey("key", ds1.index);
+        cs1.ds1.setKey("key", this);
         Value[] array = ((Value)ds1.getVal()).asArrayValue().getElementArray();
         int val = array[0].asIntegerValue().getInt();
         if (val % 10 == 0)
--- a/src/main/java/alice/test/codesegment/local/SingletonTestCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/SingletonTestCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,15 +14,16 @@
     public static SingletonTestCodeSegment getInstance(){
         return instance;
     }
+    int num = 0;
 
     @Override
     public void run() {
         System.out.println("type = " + arg1.type);
-        System.out.println("index = " + arg1.index);
+        //System.out.println("index = " + arg1.index);
         System.out.println("data = " + arg1.getVal());
         System.out.println(((Value)arg1.getVal()).getType());
 
-        if (arg1.index == 10) {
+        if (num++ == 10) {
             System.exit(0);
             return;
         }
--- a/src/main/java/alice/test/codesegment/local/StartCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/StartCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,11 +9,12 @@
         System.out.println("run StartCodeSegment");
 
         TestCodeSegment cs = new TestCodeSegment();
+        ods.update("local", "key1", 0);
         cs.arg1.setKey("key1", this); // unbound datasegment key1 is created and connect to cs.
                                 // cs is waiting for local.key1
         System.out.println("create TestCodeSegment");
 
-        ods.update("local", "key1", "String data"); // bind string data to datasegment local.key1
+       // ods.update("local", "key1", "String data"); // bind string data to datasegment local.key1
                                                     // this startup TestCodeSegment.
     }
 
--- a/src/main/java/alice/test/codesegment/local/TestCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/TestCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,22 +13,24 @@
 
     @Override
     public void run() {
+        System.out.println("in TestCodeSegment");
         System.out.println("type = " + arg1.type);
-        System.out.println("index = " + arg1.index);
-        System.out.println("data = " + arg1.getVal());
+        //System.out.println("index = " + arg1.index);
+        int num = arg1.asInteger();
+        System.out.println("data = " + num);
         System.out.println(((Value)arg1.getVal()).getType());//←伝統。なくてもいい。
 
-        if (arg1.index == 10) {
+        if (num++ == 10) {
             System.exit(0);
             return;
         }
 
         TestCodeSegment cs = new TestCodeSegment();
         //cs.ids.setAliceDaemon(this);
-        cs.arg1.setKey("key1", arg1.index, this);//Receiverに値をpeekしてくる
+        cs.arg1.setKey("key1", this);//Receiverに値をpeekしてくる
 
         // DataSegment.get("local").update
-        ods.update("local", "key1", "String data");
+        ods.update("local", "key1", num);
     }
 
 }
--- a/src/main/java/alice/test/codesegment/local/bitonicsort/MakeData.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/bitonicsort/MakeData.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,8 +12,8 @@
     private Receiver info2 = ids.create(CommandType.TAKE);
 
     public MakeData(){
-        info1.setKey("sortconf", arg1.index, this);
-        info2.setKey("data", arg1.index, this);
+        info1.setKey("sortconf", this);
+        info2.setKey("data", this);
     }
 
     @Override
--- a/src/main/java/alice/test/codesegment/local/bitonicsort/SetTask.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/bitonicsort/SetTask.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,8 +10,8 @@
     private Receiver info2 = ids.create(CommandType.TAKE);
 
     SetTask(){
-        info1.setKey("sortconf", arg1.index, this);
-        info2.setKey("list", arg1.index, this);
+        info1.setKey("sortconf", this);
+        info2.setKey("list", this);
     }
 
     @Override
--- a/src/main/java/alice/test/codesegment/local/bitonicsort/ShowData.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/bitonicsort/ShowData.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,7 +13,7 @@
         for (int i= 0;i < cnt; i++)
             info[i] = ids.create(CommandType.TAKE);
         for (int i= 0;i < cnt; i++)
-            info[i].setKey(SetInfo.array[i],index);
+            info[i].setKey(SetInfo.array[i], this);
 
     }
 
--- a/src/main/java/alice/test/codesegment/local/bitonicsort/SortPhase.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/bitonicsort/SortPhase.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,11 +13,11 @@
 
 
     public SortPhase(String key0, String key1, String key2, int index, String key4){
-        info0.setKey(key0, arg1.index, this);
-        info1.setKey(key1,index);
-        info2.setKey(key2,index);
-        info3.setKey("sort_count", arg1.index, this);
-        info4.setKey(key4, arg1.index, this);
+        info0.setKey(key0, this);
+        info1.setKey(key1,this);
+        info2.setKey(key2,this);
+        info3.setKey("sort_count", this);
+        info4.setKey(key4, this);
     }
 
     @Override
--- a/src/main/java/alice/test/codesegment/local/factorial/FactorialCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/factorial/FactorialCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -17,7 +17,7 @@
             input[i] = ids.create(CommandType.TAKE);//take用Receiverを生成
         }
         for (int i = 0; i < n; i++){//createと同じループではだめ。修論参照。
-            input[i].setKey(key, arg1.index, this);
+            input[i].setKey(key, this);
         }
     }
 
--- a/src/main/java/alice/test/codesegment/local/wordcount/CorrectResult.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/wordcount/CorrectResult.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,7 +14,7 @@
             array[i] = ids.create(CommandType.TAKE);
         }
         for (int i=0;i<size;i++)
-            array[i].setKey("result", arg1.index, this);
+            array[i].setKey("result", this);
     }
 
     @Override
--- a/src/main/java/alice/test/codesegment/local/wordcount/WordCount.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/local/wordcount/WordCount.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,7 +9,7 @@
     private Receiver info1 = ids.create(CommandType.TAKE);
 
     public WordCount(){
-        info1.setKey("array", arg1.index, this);
+        info1.setKey("array", this);
     }
 
     @Override
--- a/src/main/java/alice/test/codesegment/remote/RemoteIncrement.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/remote/RemoteIncrement.java	Tue Aug 18 16:15:17 2015 +0900
@@ -18,7 +18,7 @@
         if (num == 10) System.exit(0);
 
         RemoteIncrement cs = new RemoteIncrement();
-        cs.num.setKey("compressedremote", "num");
+        cs.num.setKey("compressedremote", "num", this);
 
         ods.put("compressedlocal", "num", num);
     }
--- a/src/main/java/alice/test/codesegment/remote/RemoteStartCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/codesegment/remote/RemoteStartCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -7,7 +7,7 @@
     @Override
     public void run() {
         RemoteIncrement cs = new RemoteIncrement();
-        cs.num.setKey("compressedremote", "num");
+        cs.num.setKey("compressedremote", "num", this);
 
         ods.put("compressedlocal", "num", 0);
     }
--- a/src/main/java/alice/test/concurrent/AliceFinish.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/concurrent/AliceFinish.java	Tue Aug 18 16:15:17 2015 +0900
@@ -19,7 +19,7 @@
         if (--num == 0) System.exit(0);
 
         AliceFinish cs1 = new AliceFinish(num);
-        cs1.ds1.setKey("finish", arg1.index, this);
+        cs1.ds1.setKey("finish", this);
     }
 
 }
--- a/src/main/java/alice/test/concurrent/StartConcurrent.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/concurrent/StartConcurrent.java	Tue Aug 18 16:15:17 2015 +0900
@@ -17,11 +17,11 @@
         int threadNum = Runtime.getRuntime().availableProcessors() * count;
 
         AliceFinish cs1 = new AliceFinish(threadNum);
-        cs1.ds1.setKey("finish", arg1.index, this);
+        cs1.ds1.setKey("finish", this);
 
         for (int i = 0; i < threadNum; i++) {
             SleepCodeSegment cs2 = new SleepCodeSegment(i);
-            cs2.ds1.setKey("wait", arg1.index, this);
+            cs2.ds1.setKey("wait", this);
         }
 
         for (int i = 0; i < threadNum; i++) {
--- a/src/main/java/alice/test/reflection/MetaCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/reflection/MetaCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,18 +12,20 @@
     Receiver arg1 = ids.create(CommandType.TAKE);
 
     public MetaCodeSegment(){
-        arg1.setKey("key1", arg1.index);
+        arg1.setKey("key1", this);
     }
 
+    int num = 0;
+
     @Override
     public void run() {
         System.out.println("type = " + arg1.type);
-        System.out.println("index = " + arg1.index);
+        //System.out.println("index = " + arg1.index);
         System.out.println("data = " + arg1.getVal());
         System.out.println(((Value)arg1.getVal()).getType());
         System.out.println(MetaCodeSegment.class);
 
-        if (arg1.index == 10) {
+        if (num++ == 10) {
             System.exit(0);
             return;
         }
--- a/src/main/java/alice/test/topology/aquarium/AutoIncrement.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/AutoIncrement.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,9 +10,9 @@
     private Receiver number = ids.create(CommandType.PEEK);
     private static final float MIN = -1.3f;
 
-    public AutoIncrement(String key, int index) {
-        this.number.setKey("maxsize", arg1.index, this);
-        this.position.setKey(key, index);
+    public AutoIncrement(String key) {
+        this.number.setKey("maxsize", this);
+        this.position.setKey(key, this);
     }
 
     @Override
@@ -41,7 +41,7 @@
             }
         }
 
-        new AutoIncrement(this.position.key, this.position.index);
+        new AutoIncrement(this.position.key);
     }
 
 }
--- a/src/main/java/alice/test/topology/aquarium/CheckLocalIndex.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/CheckLocalIndex.java	Tue Aug 18 16:15:17 2015 +0900
@@ -11,9 +11,9 @@
     private Receiver data = ids.create(CommandType.PEEK);
     private Receiver list = ids.create(CommandType.PEEK);
 
-    public CheckLocalIndex(String key, int index){
-        this.list.setKey("_CLIST", arg1.index, this);
-        this.data.setKey(key, index);
+    public CheckLocalIndex(String key){
+        this.list.setKey("_CLIST", this);
+        this.data.setKey(key, this);
     }
 
     @Override
@@ -26,7 +26,7 @@
                 ods.update(node, data.key, data.getVal());
             }
         }
-        new CheckLocalIndex(data.key, data.index);
+        new CheckLocalIndex(data.key);
 
     }
 
--- a/src/main/java/alice/test/topology/aquarium/CheckMyName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/CheckMyName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -15,7 +15,7 @@
     private String key = "fish";
 
     public CheckMyName(){
-        host.setKey("host", arg1.index, this);
+        host.setKey("host", this);
     }
 
     @Override
@@ -38,50 +38,50 @@
             if (num != 0){
                 new TakeMynum();
             } else {
-                new SendMaxsize(0);
+                new SendMaxsize();
             }
         }
-        new CheckLocalIndex("maxsize",0);
+        new CheckLocalIndex("maxsize");
 
         ods.update(key, new FishPoint(-0.1f,-0.1f));
-        new SetLocation(new MakeObject(frame), key, 0);
-        new CheckLocalIndex(key,1);
+        new SetLocation(new MakeObject(frame), key);
+        new CheckLocalIndex(key);
         for (int i = 0; i < 3 ; i++){
             key = "fish"+i;
-            if (num == 0) new AutoIncrement(key,0);
+            if (num == 0) new AutoIncrement(key);
             ods.update(key, new FishPoint((float)Math.random(),
                     (float)Math.random(), (float)Math.random()));
-            new SetLocation(new MakeObject(frame), key, 0);
-            new CheckLocalIndex(key,1);
+            new SetLocation(new MakeObject(frame), key);
+            new CheckLocalIndex(key);
         }
 
         for (int i = 3; i < 6 ; i++){
             key = "fish"+i;
-            if (num == 1) new AutoIncrement(key,0);
+            if (num == 1) new AutoIncrement(key);
             Random rnd = new Random();
             int tmp = rnd.nextInt(3);
             int rand = tmp + 1;
             ods.update(key, new FishPoint( (float)rand,
                     -(float)Math.random(), -(float)Math.random()));
-            new SetLocation(new MakeObject(frame), key, 0);
-            new CheckLocalIndex(key,1);
+            new SetLocation(new MakeObject(frame), key);
+            new CheckLocalIndex(key);
         }
 
         for (int i = 6; i < 9 ; i++){
             key = "fish"+i;
-            if (num == 2) new AutoIncrement(key,0);
+            if (num == 2) new AutoIncrement(key);
             Random rnd = new Random();
             int tmp = rnd.nextInt(3);
             int rand = tmp + 3;
             ods.update(key, new FishPoint( (float)rand,
                     (float)Math.random(), -(float)Math.random()));
-            new SetLocation(new MakeObject(frame), key, 0);
-            new CheckLocalIndex(key,1);
+            new SetLocation(new MakeObject(frame), key);
+            new CheckLocalIndex(key);
         }
 
         for (int i = 9; i < 12 ; i++){
             key = "fish"+i;
-            if (num == 3) new AutoIncrement(key,0);
+            if (num == 3) new AutoIncrement(key);
 
             Random rnd = new Random();
             int tmp = rnd.nextInt(3);
@@ -89,8 +89,8 @@
 
             ods.update(key, new FishPoint( (float)rand,
                     -(float)Math.random(), (float)Math.random()));
-            new SetLocation(new MakeObject(frame), key, 0);
-            new CheckLocalIndex(key,1);
+            new SetLocation(new MakeObject(frame), key);
+            new CheckLocalIndex(key);
         }
 
     }
--- a/src/main/java/alice/test/topology/aquarium/SendLocation.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/SendLocation.java	Tue Aug 18 16:15:17 2015 +0900
@@ -16,7 +16,7 @@
         this.x = x;
         this.y = y;
         this.z = z;
-        position.setKey("fish", arg1.index, this);
+        position.setKey("fish", this);
     }
 
     @Override
--- a/src/main/java/alice/test/topology/aquarium/SendMaxsize.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/SendMaxsize.java	Tue Aug 18 16:15:17 2015 +0900
@@ -8,15 +8,15 @@
 
     private Receiver max = ids.create(CommandType.PEEK);
 
-    public SendMaxsize(int index){
-        this.max.setKey("num", index);
+    public SendMaxsize(){
+        this.max.setKey("num", this);
     }
 
     @Override
     public void run() {
         int size = max.asInteger();
         ods.update("maxsize",size);
-        new SendMaxsize(this.max.index);
+        new SendMaxsize();
     }
 
 }
--- a/src/main/java/alice/test/topology/aquarium/SetLocation.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/SetLocation.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,16 +10,16 @@
     private Receiver position = ids.create(CommandType.PEEK);
     private MakeObject obj;
 
-    public SetLocation(MakeObject obj ,String key, int index){
+    public SetLocation(MakeObject obj ,String key){
         this.obj = obj;
-        this.position.setKey(key,index);
+        this.position.setKey(key,this);
     }
 
     @Override
     public void run(){
         FishPoint fp = this.position.asClass(FishPoint.class);
         obj.setLocation(fp.getX(), fp.getY(), fp.getZ());
-        new SetLocation(obj, position.key, position.index);
+        new SetLocation(obj, position.key);
 
     }
 
--- a/src/main/java/alice/test/topology/aquarium/TakeMynum.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/TakeMynum.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,18 +9,18 @@
     private Receiver mynum = ids.create(CommandType.TAKE);
 
     public TakeMynum(){
-        this.mynum.setKey("num", arg1.index, this);
+        this.mynum.setKey("num", this);
     }
 
     public TakeMynum(int index){
-        this.mynum.setKey("num", index);
+        this.mynum.setKey("num", this);
     }
 
     @Override
     public void run() {
         new TakePnum(this.mynum);
         ods.put("num", 0);
-        new TakeMynum(this.mynum.index+1);
+        new TakeMynum();
     }
 
 }
--- a/src/main/java/alice/test/topology/aquarium/TakePnum.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/TakePnum.java	Tue Aug 18 16:15:17 2015 +0900
@@ -11,7 +11,7 @@
     private Receiver mynum;
 
     public TakePnum(Receiver data){
-        this.pnum.setKey("parent", "num");
+        this.pnum.setKey("parent", "num", this);
         this.mynum = data;
     }
 
--- a/src/main/java/alice/test/topology/aquarium/fx/AddObject.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/AddObject.java	Tue Aug 18 16:15:17 2015 +0900
@@ -15,9 +15,9 @@
     private boolean executed = false;
 
     public AddObject(){
-        info.setKey("root", arg1.index, this);
-        info1.setKey("addOffer", arg1.index, this);
-        info2.setKey("host", arg1.index, this);
+        info.setKey("root", this);
+        info1.setKey("addOffer", this);
+        info2.setKey("host", this);
     }
 
     @Override
--- a/src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/CalculatePosition.java	Tue Aug 18 16:15:17 2015 +0900
@@ -11,9 +11,9 @@
     private Receiver info2 = ids.create(CommandType.PEEK);
 
     public CalculatePosition(String key){
-        info.setKey(key, arg1.index, this);
-        info1.setKey("OwnFishP", arg1.index, this);
-        info2.setKey("host", arg1.index, this);
+        info.setKey(key, this);
+        info1.setKey("OwnFishP", this);
+        info2.setKey("host", this);
 
     }
 
--- a/src/main/java/alice/test/topology/aquarium/fx/CheckAllFishInfoExist.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/CheckAllFishInfoExist.java	Tue Aug 18 16:15:17 2015 +0900
@@ -20,8 +20,8 @@
     private Receiver info1 = ids.create(CommandType.PEEK);
 
     public CheckAllFishInfoExist(){
-        info.setKey("receiveRegisteredList", arg1.index, this);
-        info1.setKey("root", arg1.index, this);
+        info.setKey("receiveRegisteredList", this);
+        info1.setKey("root", this);
     }
 
     @Override
--- a/src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,7 +14,7 @@
     private int INNER_WIDTH = 10;
 
     public CheckMyName(){
-        host.setKey("host", arg1.index, this);
+        host.setKey("host", this);
     }
 
     @Override
--- a/src/main/java/alice/test/topology/aquarium/fx/CreateObject.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/CreateObject.java	Tue Aug 18 16:15:17 2015 +0900
@@ -21,8 +21,8 @@
     private Receiver info1 = ids.create(CommandType.PEEK);  // fishInfo
 
     public CreateObject(){
-        info.setKey("fishData", arg1.index, this);
-        info1.setKey("type", arg1.index, this);
+        info.setKey("fishData", this);
+        info1.setKey("type", this);
 
     }
 
--- a/src/main/java/alice/test/topology/aquarium/fx/GetMyHostName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/GetMyHostName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,7 +9,7 @@
     private Receiver info = ids.create(CommandType.PEEK);
 
     public GetMyHostName() {
-        info.setKey("host", arg1.index, this);
+        info.setKey("host", this);
     }
     @Override
     public void run() {
--- a/src/main/java/alice/test/topology/aquarium/fx/MoveBeforePosition.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/MoveBeforePosition.java	Tue Aug 18 16:15:17 2015 +0900
@@ -11,9 +11,9 @@
     private Receiver info2 = ids.create(CommandType.PEEK);
 
     public MoveBeforePosition(String key) {
-        info.setKey("parent", key+"FishbackUp");
-        info1.setKey("OwnFishP", arg1.index, this);
-        info2.setKey("host", arg1.index, this);
+        info.setKey("parent", key+"FishbackUp", this);
+        info1.setKey("OwnFishP", this);
+        info2.setKey("host", this);
     }
     @Override
     public void run() {
--- a/src/main/java/alice/test/topology/aquarium/fx/RegisterList.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/RegisterList.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,8 +12,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE); // created fish List
 
     public RegisterList(){
-        info.setKey("register", arg1.index, this);
-        info1.setKey("registeredList", arg1.index, this);
+        info.setKey("register", this);
+        info1.setKey("registeredList", this);
     }
 
     @Override
--- a/src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java	Tue Aug 18 16:15:17 2015 +0900
@@ -15,9 +15,9 @@
     private boolean executed = false;
 
     public SetTranslate(String key) {
-        info.setKey(key, arg1.index, this);
-        info1.setKey(key+"absoluteP", arg1.index, this);
-        info2.setKey("median", arg1.index, this);
+        info.setKey(key, this);
+        info1.setKey(key+"absoluteP", this);
+        info2.setKey("median", this);
     }
 
     @Override
--- a/src/main/java/alice/test/topology/fish/AssignStartX.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/AssignStartX.java	Tue Aug 18 16:15:17 2015 +0900
@@ -8,11 +8,9 @@
 
     public Receiver routing = ids.create(CommandType.PEEK);
     public int startX;
-    public int index;
 
-    public AssignStartX(int startX, int index) {
+    public AssignStartX(int startX) {
         this.startX = startX;
-        this.index = index;
     }
 
     @Override
@@ -22,19 +20,19 @@
         RoutingTable routing = this.routing.asClass(RoutingTable.class);
         int x = startX;
         System.out.println("RoutingTable: " + this.routing.getVal());
-        if (this.index >= this.routing.index) {
+        /*if (this.index >= this.routing.index) {
             AssignStartX cs = new AssignStartX(startX, index);
             cs.routing.setKey("local", "routing", this.routing.index);
             return;
-        }
+        }*/
         for (Routing r : routing.table) {
             System.out.println(r.name);
             ods.update(r.name, "startX", x);
             System.out.println("Assign: " + r.name + ".startX = " + x);
             x += r.width;
         }
-        PeekStartX cs = new PeekStartX(this.routing.index);
-        cs.startX.setKey("local", "startX", this.index);
+        PeekStartX cs = new PeekStartX();
+        cs.startX.setKey("local", "startX", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/fish/CheckMyName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/CheckMyName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,7 +12,7 @@
     private Receiver host = ids.create(CommandType.PEEK);
 
     public CheckMyName(){
-        host.setKey("host", arg1.index, this);
+        host.setKey("host", this);
     }
 
     @Override
@@ -30,28 +30,28 @@
             ods.update("local", "width", 400);
 
             GetStartX cs = new GetStartX();
-            cs.startX.setKey("local", "startX");
+            cs.startX.setKey("local", "startX", this);
 
         } else if (type.equals("node")) {
             System.out.println("********************I am node" + num);
             WidthReceiver cs = new WidthReceiver();
-            cs.widths.setKey("local", "widths");
-            cs.routing.setKey("local", "routing");
+            cs.widths.setKey("local", "widths", this);
+            cs.routing.setKey("local", "routing", this);
 
-            PeekStartX cs2 = new PeekStartX(0);
-            cs2.startX.setKey("local", "startX");
+            PeekStartX cs2 = new PeekStartX();
+            cs2.startX.setKey("local", "startX", this);
 
             ods.put("local", "routing", new RoutingTable());
             if (num == 0) { // First node ("node0") check
                 StartStartX cs3 = new StartStartX();
-                cs3.width.setKey("local", "width");
+                cs3.width.setKey("local", "width", this);
                 //ods.update("local", "startX", 0);
                 return;
             }
         }
 
         SendWidth cs = new SendWidth();
-        cs.width.setKey("local", "width");
+        cs.width.setKey("local", "width", this);
 
     }
 
--- a/src/main/java/alice/test/topology/fish/GetStartX.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/GetStartX.java	Tue Aug 18 16:15:17 2015 +0900
@@ -15,7 +15,7 @@
         System.out.println("GetStartX: " + startX);
 
         GetStartX cs = new GetStartX();
-        cs.startX.setKey("local", "startX", this.startX.index);
+        cs.startX.setKey("local", "startX", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/fish/PeekStartX.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/PeekStartX.java	Tue Aug 18 16:15:17 2015 +0900
@@ -7,17 +7,13 @@
 public class PeekStartX extends CodeSegment {
 
     public Receiver startX = ids.create(CommandType.PEEK);
-    public int index;
 
-    public PeekStartX(int index) {
-        this.index = index;
-    }
 
     @Override
     public void run() {
         int startX = this.startX.asInteger();
-        AssignStartX cs = new AssignStartX(startX, this.startX.index);
-        cs.routing.setKey("routing", this.startX.index);
+        AssignStartX cs = new AssignStartX(startX);
+        cs.routing.setKey("routing", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/fish/SendWidth.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/SendWidth.java	Tue Aug 18 16:15:17 2015 +0900
@@ -16,7 +16,7 @@
         System.out.println("send widths: " + width);
 
         SendWidth cs = new SendWidth();
-        cs.width.setKey("width", this.width.index);
+        cs.width.setKey("width", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/fish/StartStartX.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/StartStartX.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,7 +12,7 @@
     public void run() {
         ods.update("local", "startX", 0);
         StartStartX cs = new StartStartX();
-        cs.width.setKey("local", "width", this.width.index);
+        cs.width.setKey("local", "width", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/fish/WidthReceiver.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/fish/WidthReceiver.java	Tue Aug 18 16:15:17 2015 +0900
@@ -93,8 +93,8 @@
         ods.update("routing", routing);
 
         WidthReceiver cs = new WidthReceiver();
-        cs.widths.setKey("widths", this.widths.index);
-        cs.routing.setKey("routing", arg1.index, this);
+        cs.widths.setKey("widths", this);
+        cs.routing.setKey("routing", this);
         //cs.routing.setKey("routing", this.routing.index);
     }
 
--- a/src/main/java/alice/test/topology/ring/CheckMyName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/ring/CheckMyName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -24,15 +24,15 @@
         if (host.equals("node0")) {
             ods.put("local", "c", new byte[conf.size]);
             FirstRingMessagePassing cs1 = new FirstRingMessagePassing(conf.count, conf.nodeNum);
-            cs1.ds1.setKey("c", arg1.index, this);
+            cs1.ds1.setKey("c", this);
             RingFinish cs2 = new RingFinish("manager");
-            cs2.finish.setKey("finish", arg1.index, this);
+            cs2.finish.setKey("finish", this);
         } else {
             ods.close("manager");
             RingMessagePassing cs1 = new RingMessagePassing();
-            cs1.ds1.setKey("c", arg1.index, this);
+            cs1.ds1.setKey("c", this);
             RingFinish cs2 = new RingFinish("right");
-            cs2.finish.setKey("finish", arg1.index, this);
+            cs2.finish.setKey("finish", this);
         }
     }
 
--- a/src/main/java/alice/test/topology/ring/FirstRingMessagePassing.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/ring/FirstRingMessagePassing.java	Tue Aug 18 16:15:17 2015 +0900
@@ -28,16 +28,16 @@
     @Override
     public void run() {
         ods.put("right", "c", ds1.getReceiveData()); // copy whole DataSegment to the right
-        if (ds1.index > count) {        // after count time update of ds1
+        /*if (ds1.index > count) {        // after count time update of ds1
             ods.put("right", "finish", ValueFactory.createNilValue());
             long endTime = System.nanoTime();
             long time = endTime - startTime;
             System.out.println(nodeNum + " " + time / count / 1000000.0);
             return;
-        }
+        }*/
 
         FirstRingMessagePassing cs = new FirstRingMessagePassing(startTime, count, nodeNum);
-        cs.ds1.setKey("c", arg1.index, this);
+        cs.ds1.setKey("c", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/ring/RingMessagePassing.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/ring/RingMessagePassing.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,7 +12,7 @@
     public void run() {
         ods.put("right", "c", this.ds1.getReceiveData());
         RingMessagePassing cs = new RingMessagePassing();
-        cs.ds1.setKey("c", arg1.index, this);
+        cs.ds1.setKey("c", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/ring/StartRing.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/ring/StartRing.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,7 +10,7 @@
     @Override
     public void run() {
         CheckMyName cs = new CheckMyName(conf);
-        cs.ds1.setKey("host", arg1.index, this);
+        cs.ds1.setKey("host", this);
     }
 
 }
--- a/src/main/java/alice/test/topology/share/AutoIncrement.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/share/AutoIncrement.java	Tue Aug 18 16:15:17 2015 +0900
@@ -8,8 +8,8 @@
 
     public Receiver position = ids.create(CommandType.PEEK);
 
-    public AutoIncrement(String key,int index){
-        this.position.setKey(key, index);
+    public AutoIncrement(String key){
+        this.position.setKey(key, this);
     }
 
     @Override
@@ -22,7 +22,7 @@
             }
         }
         ods.update(position.key, new DataInfo(System.nanoTime()));
-        new AutoIncrement(position.key ,position.index);
+        new AutoIncrement(position.key);
     }
 
 }
--- a/src/main/java/alice/test/topology/share/CheckLocalIndex.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/share/CheckLocalIndex.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,10 +13,10 @@
     private Receiver host = ids.create(CommandType.PEEK);
 
 
-    public CheckLocalIndex(String key, int index) {
-        this.host.setKey("host", arg1.index, this);
-        this.list.setKey("_CLIST", arg1.index, this);
-        this.data.setKey(key, index);
+    public CheckLocalIndex(String key) {
+        this.host.setKey("host", this);
+        this.list.setKey("_CLIST", this);
+        this.data.setKey(key, this);
     }
 
     @Override
@@ -37,7 +37,7 @@
         if (count == 0 && flag) {
             ods.put("parent", "data", data.getVal());
         }
-        new CheckLocalIndex(data.key, data.index);
+        new CheckLocalIndex(data.key);
 
     }
 
--- a/src/main/java/alice/test/topology/share/CheckMyName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/share/CheckMyName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,7 +14,7 @@
     String key = "fish";
 
     public CheckMyName(){
-        this.host.setKey("host", arg1.index, this);
+        this.host.setKey("host", this);
     }
 
     @Override
@@ -29,12 +29,12 @@
 
         if (type.equals("cli")){
             System.out.println("cli"+num);
-            new SendData(0);
+            new SendData();
 
         }else if (type.equals("node")){
             System.out.println("node"+num);
             if (num != 0){
-                new SendData(0);
+                new SendData();
             }else{
                 new LookUpData("data",0);
             }
@@ -42,7 +42,7 @@
         for (int i =0 ;i<1000000;i++){}
         ods.update(key, new DataInfo());
 
-        if (num == 0) new AutoIncrement(key,0);
-        new CheckLocalIndex(key,1);
+        if (num == 0) new AutoIncrement(key);
+        new CheckLocalIndex(key);
     }
 }
--- a/src/main/java/alice/test/topology/share/LookUpData.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/share/LookUpData.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,20 +10,20 @@
     String key;
     int depth;
 
-    public LookUpData(String key,int index){
+    public LookUpData(String key){
         this.key = key;
-        this.data.setKey(key, index);
+        this.data.setKey(key, this);
     }
 
-    public LookUpData(String key,int index, int depth){
+    public LookUpData(String key, int depth){
         this.key = key;
         this.depth = depth;
-        this.data.setKey(key, index);
+        this.data.setKey(key, this);
     }
 
     @Override
     public void run(){
-        new LookUpData(this.key,this.data.index);
+        new LookUpData(this.key);
         DataInfo di = data.asClass(DataInfo.class);
         System.out.println(System.nanoTime()-di.getTime());
 
--- a/src/main/java/alice/test/topology/share/SendData.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/test/topology/share/SendData.java	Tue Aug 18 16:15:17 2015 +0900
@@ -7,13 +7,13 @@
 public class SendData extends CodeSegment{
     private Receiver data = ids.create(CommandType.PEEK);
 
-    public SendData(int index){
-        this.data.setKey("data", index);
+    public SendData(){
+        this.data.setKey("data", this);
     }
 
     @Override
     public void run(){
-        new SendData(this.data.index);
+        new SendData();
         ods.put("parent", "data", this.data.getVal());
     }
 
--- a/src/main/java/alice/topology/fix/FixTopology.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/fix/FixTopology.java	Tue Aug 18 16:15:17 2015 +0900
@@ -19,10 +19,10 @@
     private Receiver info4 = ids.create(CommandType.TAKE); // parentManager
 
     public FixTopology() {
-        info.setKey("_DISCONNECTNODE", arg1.index, this);
-        info1.setKey("topology", arg1.index, this);
-        info3.setKey("nameTable", arg1.index, this);
-        info4.setKey("parentManager", arg1.index, this);
+        info.setKey("_DISCONNECTNODE", this);
+        info1.setKey("topology", this);
+        info3.setKey("nameTable", this);
+        info4.setKey("parentManager", this);
     }
 
     @SuppressWarnings("unchecked")
--- a/src/main/java/alice/topology/fix/ReceiveDisconnectMessage.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/fix/ReceiveDisconnectMessage.java	Tue Aug 18 16:15:17 2015 +0900
@@ -8,7 +8,7 @@
     private Receiver info = ids.create(CommandType.PEEK);
 
     public ReceiveDisconnectMessage() {
-        info.setKey("_DISCONNECTNODE", arg1.index, this);
+        info.setKey("_DISCONNECTNODE", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/CheckComingHost.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/CheckComingHost.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,8 +12,8 @@
     private Receiver absCookieTable = ids.create(CommandType.PEEK); // cookie, AbsName HashMap
 
     public CheckComingHost(){
-        this.host.setKey("host", arg1.index, this);
-        this.absCookieTable.setKey("absCookieTable", arg1.index, this);
+        this.host.setKey("host", this);
+        this.absCookieTable.setKey("absCookieTable", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/ComingServiceHosts.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/ComingServiceHosts.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,7 +9,7 @@
     private Receiver info = ids.create(CommandType.PEEK);
 
     public ComingServiceHosts(){
-        info.setKey("newHost", arg1.index, this);
+        info.setKey("newHost", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/ConfigWaiter.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/ConfigWaiter.java	Tue Aug 18 16:15:17 2015 +0900
@@ -24,7 +24,7 @@
             return;
         }
         ConfigWaiter cs3 = new ConfigWaiter(count);
-        cs3.done.setKey("local", "done");
+        cs3.done.setKey("local", "done", this);
     }
 
 }
--- a/src/main/java/alice/topology/manager/CreateHash.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/CreateHash.java	Tue Aug 18 16:15:17 2015 +0900
@@ -17,8 +17,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE);
 
     public CreateHash(){
-        info.setKey("orderHash", arg1.index, this);
-        info1.setKey("createdList", arg1.index, this);
+        info.setKey("orderHash", this);
+        info1.setKey("createdList", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/CreateTreeTopology.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/CreateTreeTopology.java	Tue Aug 18 16:15:17 2015 +0900
@@ -19,12 +19,12 @@
     private Receiver info6 = ids.create(CommandType.TAKE);
 
     public CreateTreeTopology(){
-        info.setKey("newHost", arg1.index, this);
-        info1.setKey("hostCount", arg1.index, this);
-        info2.setKey("nameTable", arg1.index, this);
-        info3.setKey("MD5", arg1.index, this);
-        info4.setKey("absCookieTable", arg1.index, this);
-        info6.setKey("parentManager", arg1.index, this);
+        info.setKey("newHost", this);
+        info1.setKey("hostCount", this);
+        info2.setKey("nameTable", this);
+        info3.setKey("MD5", this);
+        info4.setKey("absCookieTable", this);
+        info6.setKey("parentManager", this);
     }
 
     @SuppressWarnings("unchecked")
--- a/src/main/java/alice/topology/manager/IncomingHosts.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/IncomingHosts.java	Tue Aug 18 16:15:17 2015 +0900
@@ -19,11 +19,11 @@
     private Receiver cookie = ids.create(CommandType.TAKE);    // MD5
 
     public IncomingHosts() {
-        this.topology.setKey("resultParse", arg1.index, this);
-        this.nodeNames.setKey("nodeNames", arg1.index, this);
-        this.host.setKey("newHost", arg1.index, this);
-        this.absCookieTable.setKey("absCookieTable", arg1.index, this);
-        this.cookie.setKey("MD5", arg1.index, this);
+        this.topology.setKey("resultParse", this);
+        this.nodeNames.setKey("nodeNames", this);
+        this.host.setKey("newHost", this);
+        this.absCookieTable.setKey("absCookieTable", this);
+        this.cookie.setKey("MD5", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/RecodeTopology.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/RecodeTopology.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,8 +14,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE); // HashMap
 
     public RecodeTopology(){
-        info.setKey("nodeInfo", arg1.index, this);
-        info1.setKey("topology", arg1.index, this);
+        info.setKey("nodeInfo", this);
+        info1.setKey("topology", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/SearchHostName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/SearchHostName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -17,9 +17,9 @@
     private Receiver info2 = ids.create(CommandType.PEEK); // check App running
 
     public SearchHostName(){
-        info.setKey("reconnectHost", arg1.index, this);
-        info1.setKey("topology", arg1.index, this);
-        info2.setKey("running", arg1.index, this);
+        info.setKey("reconnectHost", this);
+        info1.setKey("topology", this);
+        info2.setKey("running", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/StartTopologyManager.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/StartTopologyManager.java	Tue Aug 18 16:15:17 2015 +0900
@@ -89,7 +89,7 @@
             new IncomingHosts();
 
             ConfigWaiter cs3 = new ConfigWaiter(nodeNum);
-            cs3.done.setKey("local", "done");
+            cs3.done.setKey("local", "done", this);
 
         } else {
             ods.put("running", true);
@@ -112,7 +112,7 @@
         new CreateHash();
 
         TopologyFinish cs2 = new TopologyFinish();
-        cs2.finish.setKey("local", "finish");
+        cs2.finish.setKey("local", "finish", this);
     }
 
 }
--- a/src/main/java/alice/topology/manager/keeparive/CreateTask.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/CreateTask.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,8 +12,8 @@
     public static int INTERVAL = 5;
 
     public CreateTask(){
-        info.setKey("_CLIST", arg1.index, this);
-        info1.setKey("_SCHEDULER", arg1.index, this);
+        info.setKey("_CLIST", this);
+        info1.setKey("_SCHEDULER",  this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/keeparive/RemoveTask.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/RemoveTask.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,8 +9,8 @@
     private Receiver info2 = ids.create(CommandType.TAKE); // remove task
 
     public RemoveTask(){
-        info1.setKey("_SCHEDULER", arg1.index, this);
-        info2.setKey("_REMOVETASK", arg1.index, this);
+        info1.setKey("_SCHEDULER", this);
+        info2.setKey("_REMOVETASK", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/keeparive/RespondPing.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/RespondPing.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,7 +9,7 @@
 //    private long pingedTime = System.currentTimeMillis();
 
     public RespondPing(String key) {
-        respond.setKey(key, arg1.index, this);
+        respond.setKey(key, this);
     }
 
     @Override
--- a/src/main/java/alice/topology/manager/keeparive/TaskExecuter.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/TaskExecuter.java	Tue Aug 18 16:15:17 2015 +0900
@@ -20,7 +20,7 @@
 
     public void setKey() {
         ids.init();
-        info.setKey("_SCHEDULER", arg1.index, this);
+        info.setKey("_SCHEDULER", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/CloseRemoteDataSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/CloseRemoteDataSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,10 +13,10 @@
     private Receiver info3 = ids.create(CommandType.TAKE);
 
     public CloseRemoteDataSegment() {
-        info.setKey("_CLOSEMESSEAGE", arg1.index, this);
-        info1.setKey("_CLOSEREADY", arg1.index, this);
-        info2.setKey("_CLOSEREADY", arg1.index, this);
-        info3.setKey("_SCHEDULER", arg1.index, this);
+        info.setKey("_CLOSEMESSEAGE", this);
+        info1.setKey("_CLOSEREADY", this);
+        info2.setKey("_CLOSEREADY", this);
+        info3.setKey("_SCHEDULER", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/ClosedEventManager.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/ClosedEventManager.java	Tue Aug 18 16:15:17 2015 +0900
@@ -21,7 +21,7 @@
 
     public void setKey() {
         ids.init();
-        info.setKey("_DISCONNECT", arg1.index, this);
+        info.setKey("_DISCONNECT", this);
     }
 
     @SuppressWarnings("rawtypes")
--- a/src/main/java/alice/topology/node/ConfigurationFinish.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/ConfigurationFinish.java	Tue Aug 18 16:15:17 2015 +0900
@@ -24,7 +24,7 @@
         if (rcount == ncount) {
             ods.put("manager", "done", ValueFactory.createNilValue());
             Start cs = new Start(startCS);
-            cs.done.setKey("manager", "start");
+            cs.done.setKey("manager", "start", this);
 
             new StartKeepAlive().execute(aliceDaemon);
             new ReceiveCloseMessage(CommandType.PEEK);
@@ -34,8 +34,8 @@
         }
 
         ConfigurationFinish cs3 = new ConfigurationFinish(startCS);
-        cs3.reverseCount.setKey("local", "reverseCount", this.reverseCount.index);
-        cs3.configNodeNum.setKey("local", "configNodeNum");
+        cs3.reverseCount.setKey("local", "reverseCount", this);
+        cs3.configNodeNum.setKey("local", "configNodeNum", this);
     }
 
 }
--- a/src/main/java/alice/topology/node/CreateConnectionList.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/CreateConnectionList.java	Tue Aug 18 16:15:17 2015 +0900
@@ -11,8 +11,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE); // connection names
 
     public CreateConnectionList() {
-        info.setKey("_CLIST", arg1.index, this);
-        info1.setKey("cMember", arg1.index, this);
+        info.setKey("_CLIST", this);
+        info1.setKey("cMember", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/DeleteConnection.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/DeleteConnection.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,8 +13,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE);
 
     public DeleteConnection() {
-        info.setKey("_CLIST", arg1.index, this);
-        info1.setKey("_SCHEDULER", arg1.index, this);
+        info.setKey("_CLIST", this);
+        info1.setKey("_SCHEDULER", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/ExecuteEvent.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/ExecuteEvent.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,8 +13,8 @@
     public Receiver info1 = ids.create(CommandType.TAKE);
 
     public ExecuteEvent() {
-        info.setKey("_DEVENTLIST", arg1.index, this);
-        info1.setKey("_DISCONNECT", arg1.index, this);
+        info.setKey("_DEVENTLIST", this);
+        info1.setKey("_DISCONNECT", this);
     }
 
     @SuppressWarnings("unchecked")
--- a/src/main/java/alice/topology/node/IncomingAbstractHostName.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/IncomingAbstractHostName.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,7 +12,7 @@
     public void run() {
         String absName = this.absName.asString();
         IncomingConnectionInfo cs = new IncomingConnectionInfo(absName, 0);
-        cs.hostInfo.setKey("manager", absName);
+        cs.hostInfo.setKey("manager", absName, this);
     }
 
 }
--- a/src/main/java/alice/topology/node/IncomingConnectionInfo.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/IncomingConnectionInfo.java	Tue Aug 18 16:15:17 2015 +0900
@@ -40,7 +40,7 @@
         }
 
         IncomingConnectionInfo cs = new IncomingConnectionInfo(absName, count);
-        cs.hostInfo.setKey("manager", absName);
+        cs.hostInfo.setKey("manager", absName, this);
     }
 
 }
--- a/src/main/java/alice/topology/node/IncomingReverseKey.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/IncomingReverseKey.java	Tue Aug 18 16:15:17 2015 +0900
@@ -22,8 +22,8 @@
         ods.update("local", "reverseCount", reverseCount);
 
         IncomingReverseKey cs = new IncomingReverseKey();
-        cs.reverseKey.setKey("local", "reverseKey");
-        cs.reverseCount.setKey("local", "reverseCount");
+        cs.reverseKey.setKey("local", "reverseKey", this);
+        cs.reverseCount.setKey("local", "reverseCount", this);
     }
 
 }
--- a/src/main/java/alice/topology/node/PrepareToAddList.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/PrepareToAddList.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,8 +10,8 @@
     public Receiver info2 = ids.create(CommandType.TAKE);
 
     public PrepareToAddList(String key) {
-        info.setKey("connection"+key, arg1.index, this);
-        info2.setKey("connection"+key, arg1.index, this);
+        info.setKey("connection"+key, this);
+        info2.setKey("connection"+key, this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/PrepareToClose.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/PrepareToClose.java	Tue Aug 18 16:15:17 2015 +0900
@@ -13,8 +13,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE);
 
     public PrepareToClose() {
-        info.setKey("_CLOSEMESSEAGE", arg1.index, this);
-        info1.setKey("_CLIST", arg1.index, this);
+        info.setKey("_CLOSEMESSEAGE", this);
+        info1.setKey("_CLIST", this);
     }
 
     @SuppressWarnings("unchecked")
--- a/src/main/java/alice/topology/node/ReceiveCloseMessage.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/ReceiveCloseMessage.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,7 +10,7 @@
 
     public ReceiveCloseMessage(CommandType type) {
         info  = ids.create(type);
-        info.setKey("_CLOSEMESSEAGE", arg1.index, this);
+        info.setKey("_CLOSEMESSEAGE", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/RegisterEvent.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/RegisterEvent.java	Tue Aug 18 16:15:17 2015 +0900
@@ -12,8 +12,8 @@
     private Receiver info1 = ids.create(CommandType.TAKE); // event list
 
     public RegisterEvent() {
-        info.setKey("_REGISTERDEVENT", arg1.index, this);
-        info1.setKey("_DEVENTLIST", arg1.index, this);
+        info.setKey("_REGISTERDEVENT", this);
+        info1.setKey("_DEVENTLIST",  this);
     }
 
     @SuppressWarnings("unchecked")
--- a/src/main/java/alice/topology/node/SaveCookie.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/SaveCookie.java	Tue Aug 18 16:15:17 2015 +0900
@@ -9,7 +9,7 @@
     private Receiver info = ids.create(CommandType.PEEK);
 
     public SaveCookie(){
-        info.setKey("cookie", arg1.index, this);
+        info.setKey("cookie", this);
     }
 
     @Override
--- a/src/main/java/alice/topology/node/StartTopologyNode.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/main/java/alice/topology/node/StartTopologyNode.java	Tue Aug 18 16:15:17 2015 +0900
@@ -37,17 +37,17 @@
         ods.put("_CLIST", new ArrayList<String>());
 
         IncomingAbstractHostName cs = new IncomingAbstractHostName();
-        cs.absName.setKey("local", "host");
+        cs.absName.setKey("local", "host", this);
 
         IncomingReverseKey cs2 = new IncomingReverseKey();
-        cs2.reverseKey.setKey("local", "reverseKey");
-        cs2.reverseCount.setKey("local", "reverseCount");
+        cs2.reverseKey.setKey("local", "reverseKey", this);
+        cs2.reverseCount.setKey("local", "reverseCount", this);
 
         ods.put("local", "reverseCount", 0);
 
         ConfigurationFinish cs3 = new ConfigurationFinish(startCS);
-        cs3.reverseCount.setKey("local", "reverseCount");
-        cs3.configNodeNum.setKey("local", "configNodeNum");
+        cs3.reverseCount.setKey("local", "reverseCount", this);
+        cs3.configNodeNum.setKey("local", "configNodeNum", this);
 
     }
 
--- a/src/test/java/alice/daemon/MulticastIncrement.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/test/java/alice/daemon/MulticastIncrement.java	Tue Aug 18 16:15:17 2015 +0900
@@ -14,7 +14,7 @@
         System.out.println("[CodeSegment] " + num++);
         if (num == 10) System.exit(0);
         MulticastIncrement cs = new MulticastIncrement();
-        cs.num.setKey("multicast", "num");
+        cs.num.setKey("multicast", "num", this);
 
         ods.put("multicast", "num", num);
 
--- a/src/test/java/alice/daemon/MulticastStartCodeSegment.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/test/java/alice/daemon/MulticastStartCodeSegment.java	Tue Aug 18 16:15:17 2015 +0900
@@ -16,17 +16,17 @@
         if (MulticastTest.type == SocketType.Both) {
             // in this case "multicast" key mean local.
             MulticastIncrement cs = new MulticastIncrement();
-            cs.num.setKey("multicast","num");
+            cs.num.setKey("multicast","num", this);
 
             ods.put("multicast", "num", 0);
         } else if (MulticastTest.type == SocketType.Receiver){
             aliceDaemon.dataSegment.connectMulticast("multicast1", "224.0.0.2", conf.localPort+1, conf.nis, SocketType.Sender);
             ReceiveInteger cs = new ReceiveInteger();
-            cs.num.setKey("num", arg1.index, this);
+            cs.num.setKey("num", this);
         } else if (MulticastTest.type == SocketType.Sender){
             aliceDaemon.dataSegment.connectMulticast("multicast1", "224.0.0.2", conf.localPort+1, conf.nis, SocketType.Receiver);
             ReceiveString cs = new ReceiveString();
-            cs.str.setKey("str", arg1.index, this);
+            cs.str.setKey("str", this);
 
             for (int i=0;i < 11; i++)
                 ods.put("multicast", "num", i);
--- a/src/test/java/alice/daemon/ReceiveInteger.java	Tue Aug 04 19:39:47 2015 +0900
+++ b/src/test/java/alice/daemon/ReceiveInteger.java	Tue Aug 18 16:15:17 2015 +0900
@@ -10,10 +10,10 @@
 
     @Override
     public void run() {
-        int num = this.num.asInteger();
-        System.out.println("[CodeSegment] "+num);
+        int n = this.num.asInteger();
+        System.out.println("[CodeSegment] " + n++);
 
-        if (num==10) {
+        if (n == 10) {
             ods.put("multicast1", "str", "finish");
             try {
                 synchronized (this) {
@@ -26,7 +26,7 @@
             System.exit(0);
         }
         ReceiveInteger cs = new ReceiveInteger();
-        cs.num.setKey("num", arg1.index, this);
+        cs.num.setKey("num", this);
 
     }