# HG changeset patch # User e095732 # Date 1361856263 -32400 # Node ID 75150396681c9afee5a66af741ee97e469f6f2c3 # Parent 52a1fa5ba38ba70723fff60a656a847a2c1c6260 use synchronizedList diff -r 52a1fa5ba38b -r 75150396681c src/alice/codesegment/OutputDataSegment.java --- a/src/alice/codesegment/OutputDataSegment.java Tue Feb 26 13:46:18 2013 +0900 +++ b/src/alice/codesegment/OutputDataSegment.java Tue Feb 26 14:24:23 2013 +0900 @@ -35,38 +35,51 @@ } } + public void put(String key, Value val) { + DataSegment.getLocal().put(key, val); + } + + public void put(String key, String val) { + DataSegment.getLocal().put(key, ValueFactory.createRawValue(val)); + } + + public void put(String key, byte[] val) { + DataSegment.getLocal().put(key, ValueFactory.createRawValue(val, true)); + } + + public void put(String key, int val) { + DataSegment.getLocal().put(key, ValueFactory.createIntegerValue(val)); + } + + public void put(String key, T val) { + try { + DataSegment.getLocal().put(key, SingletonMessage.getInstance().unconvert(val)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + + /** + * for remote + **/ + public void put(String managerKey, String key, Value val) { DataSegment.get(managerKey).put(key, val); } - public void update(String managerKey, String key, Value val) { - DataSegment.get(managerKey).update(key, val); - } - public void put(String managerKey, String key, String val) { DataSegment.get(managerKey).put(key, ValueFactory.createRawValue(val)); } - public void update(String managerKey, String key, String val) { - DataSegment.get(managerKey).update(key, ValueFactory.createRawValue(val)); - } - public void put(String managerKey, String key, byte[] val) { DataSegment.get(managerKey).put(key, ValueFactory.createRawValue(val, true)); } - public void update(String managerKey, String key, byte[] val) { - DataSegment.get(managerKey).update(key, ValueFactory.createRawValue(val, true)); - } - public void put(String managerKey, String key, int val) { DataSegment.get(managerKey).put(key, ValueFactory.createIntegerValue(val)); } - public void update(String managerKey, String key, int val) { - DataSegment.get(managerKey).update(key, ValueFactory.createIntegerValue(val)); - } - public void put(String managerKey, String key, T val) { try { DataSegment.get(managerKey).put(key, SingletonMessage.getInstance().unconvert(val)); @@ -75,6 +88,46 @@ } } + public void update(String key, Value val) { + DataSegment.getLocal().update(key, val); + } + + public void update(String key, String val) { + DataSegment.getLocal().update(key, ValueFactory.createRawValue(val)); + } + + public void update(String key, byte[] val) { + DataSegment.getLocal().update(key, ValueFactory.createRawValue(val, true)); + } + + public void update(String key, int val) { + DataSegment.getLocal().update(key, ValueFactory.createIntegerValue(val)); + } + + public void update(String key, T val) { + try { + DataSegment.getLocal().update(key, SingletonMessage.getInstance().unconvert(val)); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void update(String managerKey, String key, Value val) { + DataSegment.get(managerKey).update(key, val); + } + + public void update(String managerKey, String key, String val) { + DataSegment.get(managerKey).update(key, ValueFactory.createRawValue(val)); + } + + public void update(String managerKey, String key, byte[] val) { + DataSegment.get(managerKey).update(key, ValueFactory.createRawValue(val, true)); + } + + public void update(String managerKey, String key, int val) { + DataSegment.get(managerKey).update(key, ValueFactory.createIntegerValue(val)); + } + public void update(String managerKey, String key, T val) { try { DataSegment.get(managerKey).update(key, SingletonMessage.getInstance().unconvert(val)); diff -r 52a1fa5ba38b -r 75150396681c src/alice/datasegment/LocalDataSegmentManager.java --- a/src/alice/datasegment/LocalDataSegmentManager.java Tue Feb 26 13:46:18 2013 +0900 +++ b/src/alice/datasegment/LocalDataSegmentManager.java Tue Feb 26 14:24:23 2013 +0900 @@ -1,6 +1,7 @@ package alice.datasegment; -import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; @@ -123,11 +124,9 @@ public void flip(Receiver receiver, Value val){ DataSegmentKey dataSegmentKey = getDataSegmentKey(receiver.key); - ArrayList dataList = dataSegmentKey.getDataList(); + List dataList = Collections.synchronizedList( dataSegmentKey.getDataList() ); DataSegmentValue dval = new DataSegmentValue(receiver.index, val, "local"); - synchronized(dataList){ - dataList.set(receiver.index-1, dval); - } + dataList.set(receiver.index-1, dval); } } diff -r 52a1fa5ba38b -r 75150396681c src/alice/test/codesegment/local/TestCodeSegment.java --- a/src/alice/test/codesegment/local/TestCodeSegment.java Tue Feb 26 13:46:18 2013 +0900 +++ b/src/alice/test/codesegment/local/TestCodeSegment.java Tue Feb 26 14:24:23 2013 +0900 @@ -31,8 +31,9 @@ TestCodeSegment cs = new TestCodeSegment(); cs.arg1.setKey("key1", arg1.index); */ - ods.update("local","key1",arg1.asInteger()+1); - //ods.flip(arg1, arg1.asInteger()+1); + //ods.update("key1",arg1.asInteger()+1); + //ods.update("local","key1",arg1.asInteger()+1); + ods.flip(arg1, arg1.asInteger()+1); new TestCodeSegment(); //new TestCodeSegment(arg1.index); diff -r 52a1fa5ba38b -r 75150396681c src/alice/topology/node/StartTopologyNode.java --- a/src/alice/topology/node/StartTopologyNode.java Tue Feb 26 13:46:18 2013 +0900 +++ b/src/alice/topology/node/StartTopologyNode.java Tue Feb 26 14:24:23 2013 +0900 @@ -46,6 +46,7 @@ cs3.configNodeNum.setKey("local", "configNodeNum"); } + @SuppressWarnings("unused") private String getIPAddress() throws SocketException { Enumeration interfaces = NetworkInterface.getNetworkInterfaces();