You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(123) |
Dec
(100) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(12) |
Feb
(80) |
Mar
(35) |
Apr
|
May
|
Jun
(28) |
Jul
(10) |
Aug
(6) |
Sep
|
Oct
|
Nov
(16) |
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(8) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
(6) |
| 2009 |
Jan
(20) |
Feb
(1) |
Mar
(19) |
Apr
(12) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
|
From: Peter P. <pr...@us...> - 2007-01-03 15:24:29
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8114/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: Made sure that ObjComm send error reporting happens through CB Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** NCManager.java 3 Jan 2007 15:11:32 -0000 1.30 --- NCManager.java 3 Jan 2007 15:24:26 -0000 1.31 *************** *** 95,101 **** log.debug("Resolving bootstrap list"); AddressFactory.createResolved ! (Arrays.asList(bootstrapList), ! Pyxida.COMM_PORT, new CB1<Map<String, AddressIF>>() { ! protected void cb(CBResult result, Map<String, AddressIF> addrMap) { switch (result.state) { case OK: { --- 95,101 ---- log.debug("Resolving bootstrap list"); AddressFactory.createResolved ! (Arrays.asList(bootstrapList), ! Pyxida.COMM_PORT, new CB1<Map<String, AddressIF>>() { ! protected void cb(CBResult result, Map<String, AddressIF> addrMap) { switch (result.state) { case OK: { *************** *** 135,139 **** if (addr2proxyClient.containsKey(remoteNode)) { String error = "Not creating proxy coord for "+remoteNode.toString(false)+ ! " because one already exists"; log.debug(error); return error; --- 135,139 ---- if (addr2proxyClient.containsKey(remoteNode)) { String error = "Not creating proxy coord for "+remoteNode.toString(false)+ ! " because one already exists"; log.debug(error); return error; *************** *** 202,233 **** */ public void getRemoteCoord(final AddressIF remoteNode, ! final CB1<Coordinate> cbCoord) { comm.sendRequestMessage ! (new CoordRequestMsg(), remoteNode, ! new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult result, final CoordResponseMsg resp, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { ! case OK: { ! log.debug("received coord back from "+remoteNode); ! cbCoord.call(CBResult.OK(), resp.coord); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! log.warn("Coord request to "+remoteNode+" failed"); ! cbCoord.call(result, null); ! } } ! }}); } void getRemoteOrLocalCoordinate (final AddressIF node, final Barrier barrier, ! final Map<AddressIF,Coordinate> addr2coord, ! final StringBuffer errorBuffer) { ! log.debug("getRemoteOrLocalCoordinate node="+node); ! ! if (node.equals(comm.getLocalAddress())) { addr2coord.put(node,getLocalCoord()); return; --- 202,233 ---- */ public void getRemoteCoord(final AddressIF remoteNode, ! final CB1<Coordinate> cbCoord) { comm.sendRequestMessage ! (new CoordRequestMsg(), remoteNode, ! new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult result, final CoordResponseMsg resp, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { ! case OK: { ! log.debug("received coord back from "+remoteNode); ! cbCoord.call(CBResult.OK(), resp.coord); ! break; } ! case TIMEOUT: ! case ERROR: { ! log.warn("Coord request to "+remoteNode+" failed"); ! cbCoord.call(result, null); ! } ! } ! }}); } void getRemoteOrLocalCoordinate (final AddressIF node, final Barrier barrier, ! final Map<AddressIF,Coordinate> addr2coord, ! final StringBuffer errorBuffer) { ! log.debug("getRemoteOrLocalCoordinate node="+node); ! ! if (node.equals(comm.getLocalAddress())) { addr2coord.put(node,getLocalCoord()); return; *************** *** 241,288 **** barrier.fork(); comm.sendRequestMessage ! (new CoordRequestMsg(), node, ! new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult result, final CoordResponseMsg resp, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { ! case OK: { ! log.debug("received coord back from "+node); ! addr2coord.put(node,resp.coord); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! String error = "Coord request to "+node.toString(false) ! +" failed:"+ result.toString(); ! log.warn(error); ! if (errorBuffer.length() != 0) { ! errorBuffer.append("\n"); ! } ! errorBuffer.append(error); ! ! // Remove the barrier to clear up state ! //barrier.remove(); ! break; } } - barrier.join(); } ! }); } public void getRemoteCoords(final List<AddressIF> nodes, ! final CB2<Map<AddressIF,Coordinate>,String> cbCoords) { final Barrier barrier = new Barrier(true); ! final Map<AddressIF,Coordinate> addr2coord = new HashMap<AddressIF,Coordinate>(); ! final StringBuffer errorBuffer = new StringBuffer(); for (AddressIF addr : nodes) { getRemoteOrLocalCoordinate(addr,barrier,addr2coord, errorBuffer); } EventLoop.get().registerTimerCB(barrier, new CB0() { ! protected void cb(CBResult result) { ! String errorString = new String (errorBuffer); ! cbCoords.call(CBResult.OK(),addr2coord, errorString); ! } ! }); } --- 241,288 ---- barrier.fork(); comm.sendRequestMessage ! (new CoordRequestMsg(), node, ! new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult result, final CoordResponseMsg resp, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { ! case OK: { ! log.debug("received coord back from "+node); ! addr2coord.put(node,resp.coord); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! String error = "Coord request to "+node.toString(false) ! +" failed:"+ result.toString(); ! log.warn(error); ! if (errorBuffer.length() != 0) { ! errorBuffer.append("\n"); } + errorBuffer.append(error); + + // Remove the barrier to clear up state + //barrier.remove(); + break; } } ! barrier.join(); ! } ! }); } public void getRemoteCoords(final List<AddressIF> nodes, ! final CB2<Map<AddressIF,Coordinate>,String> cbCoords) { final Barrier barrier = new Barrier(true); ! final Map<AddressIF,Coordinate> addr2coord = new HashMap<AddressIF,Coordinate>(); ! final StringBuffer errorBuffer = new StringBuffer(); for (AddressIF addr : nodes) { getRemoteOrLocalCoordinate(addr,barrier,addr2coord, errorBuffer); } EventLoop.get().registerTimerCB(barrier, new CB0() { ! protected void cb(CBResult result) { ! String errorString = new String (errorBuffer); ! cbCoords.call(CBResult.OK(),addr2coord, errorString); ! } ! }); } *************** *** 293,297 **** */ public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB1<Double> cbDistance) { log.debug ("estimateRTT a="+nodeA+" b="+nodeB); --- 293,297 ---- */ public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB1<Double> cbDistance) { log.debug ("estimateRTT a="+nodeA+" b="+nodeB); *************** *** 299,326 **** // to fork, then the barrier CB will be executed immediately. final Barrier barrier = new Barrier(true); ! final Map<AddressIF,Coordinate> addr2coord = new HashMap<AddressIF,Coordinate>(); ! final StringBuffer errorBuffer = new StringBuffer(); ! getRemoteOrLocalCoordinate(nodeA,barrier,addr2coord, errorBuffer); getRemoteOrLocalCoordinate(nodeB,barrier,addr2coord, errorBuffer); EventLoop.get().registerTimerCB(barrier, new CB0() { ! protected void cb(CBResult result) { ! Coordinate coordA = addr2coord.get(nodeA); ! Coordinate coordB = addr2coord.get(nodeB); ! if (coordA != null && coordB != null) { ! ! double distance = coordA.distanceTo(coordB); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance); ! } else { ! String errorString = new String (errorBuffer); ! log.warn(errorString); ! cbDistance.call(CBResult.ERROR(errorString), new Double(0)); ! } } ! }); } --- 299,326 ---- // to fork, then the barrier CB will be executed immediately. final Barrier barrier = new Barrier(true); ! final Map<AddressIF,Coordinate> addr2coord = new HashMap<AddressIF,Coordinate>(); ! final StringBuffer errorBuffer = new StringBuffer(); ! getRemoteOrLocalCoordinate(nodeA,barrier,addr2coord, errorBuffer); getRemoteOrLocalCoordinate(nodeB,barrier,addr2coord, errorBuffer); EventLoop.get().registerTimerCB(barrier, new CB0() { ! protected void cb(CBResult result) { ! Coordinate coordA = addr2coord.get(nodeA); ! Coordinate coordB = addr2coord.get(nodeB); ! if (coordA != null && coordB != null) { + double distance = coordA.distanceTo(coordB); + log.debug("distance= "+distance); + cbDistance.call(CBResult.OK(), distance); + } else { + String errorString = new String (errorBuffer); + log.warn(errorString); + cbDistance.call(CBResult.ERROR(errorString), new Double(0)); } ! ! } ! }); } *************** *** 340,344 **** final ObjMessage response, long requestMsgId, final String errorMessage, final CB1<Boolean> cbHandled) { ! if (errorMessage != null) { log.warn(handler + " :" + errorMessage); --- 340,344 ---- final ObjMessage response, long requestMsgId, final String errorMessage, final CB1<Boolean> cbHandled) { ! if (errorMessage != null) { log.warn(handler + " :" + errorMessage); *************** *** 363,368 **** public void cb(CBResult result, GossipRequestMsg msg, ! AddressIF remoteAddr, Long ts, ! final CB1<Boolean> cbHandled) { log.debug("in GossipHandler cb"); // we just heard from him so we know he is up --- 363,368 ---- public void cb(CBResult result, GossipRequestMsg msg, ! AddressIF remoteAddr, Long ts, ! final CB1<Boolean> cbHandled) { log.debug("in GossipHandler cb"); // we just heard from him so we know he is up *************** *** 370,378 **** long curr_time = System.currentTimeMillis(); sendResponseMessage ! ("Gossip", remoteAddr, ! new GossipResponseMsg ! (localNC.nc.getSystemCoords(), localNC.nc.getSystemError(), ! localNC.nc.getAge(curr_time), getUpNeighbors(msg.coordinate)), ! msg.getMsgId(), null, cbHandled); } --- 370,378 ---- long curr_time = System.currentTimeMillis(); sendResponseMessage ! ("Gossip", remoteAddr, ! new GossipResponseMsg ! (localNC.nc.getSystemCoords(), localNC.nc.getSystemError(), ! localNC.nc.getAge(curr_time), getUpNeighbors(msg.coordinate)), ! msg.getMsgId(), null, cbHandled); } *************** *** 381,392 **** class CoordHandler extends ResponseObjCommCB<CoordRequestMsg> { public void cb(CBResult result, CoordRequestMsg msg, AddressIF remoteAddr, ! Long ts, final CB1<Boolean> cbHandled) { log.debug("in CoordHandler remoteAddr="+remoteAddr); long curr_time = System.currentTimeMillis(); sendResponseMessage("Coord", remoteAddr, new CoordResponseMsg(localNC.nc.getSystemCoords(), ! localNC.nc.getSystemError(), ! localNC.nc.getAge(curr_time)), ! msg.getMsgId(), null, cbHandled); } } --- 381,392 ---- class CoordHandler extends ResponseObjCommCB<CoordRequestMsg> { public void cb(CBResult result, CoordRequestMsg msg, AddressIF remoteAddr, ! Long ts, final CB1<Boolean> cbHandled) { log.debug("in CoordHandler remoteAddr="+remoteAddr); long curr_time = System.currentTimeMillis(); sendResponseMessage("Coord", remoteAddr, new CoordResponseMsg(localNC.nc.getSystemCoords(), ! localNC.nc.getSystemError(), ! localNC.nc.getAge(curr_time)), ! msg.getMsgId(), null, cbHandled); } } *************** *** 394,425 **** class ProxyPingHandler extends ResponseObjCommCB<ProxyPingRequestMsg> { public void cb(final CBResult result, final ProxyPingRequestMsg msg, ! final AddressIF remoteAddr, ! final Long ts, final CB1<Boolean> cbHandled) { log.debug("in ProxyPingHandler remoteAddr="+remoteAddr); pingManager.addPingRequest(msg.target, new CB1<Double>() { ! protected void cb(CBResult pingResult, Double latency) { ! switch (pingResult.state) { ! case OK: { ! log.debug("latency to "+msg.target+"="+latency); ! long curr_time = System.currentTimeMillis(); ! sendResponseMessage ! ("Ping", remoteAddr, ! new ProxyPingResponseMsg ! (localNC.nc.getSystemCoords(), localNC.nc.getSystemError(), ! localNC.nc.getAge(curr_time),latency), msg.getMsgId(), ! null, cbHandled); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! sendResponseMessage ! ("Ping", remoteAddr, ! new ProxyPingResponseMsg(null, 0, 0, 0), msg.getMsgId(), ! "Ping to "+msg.target+" failed", cbHandled); ! break; ! } } } ! }); } } --- 394,425 ---- class ProxyPingHandler extends ResponseObjCommCB<ProxyPingRequestMsg> { public void cb(final CBResult result, final ProxyPingRequestMsg msg, ! final AddressIF remoteAddr, ! final Long ts, final CB1<Boolean> cbHandled) { log.debug("in ProxyPingHandler remoteAddr="+remoteAddr); pingManager.addPingRequest(msg.target, new CB1<Double>() { ! protected void cb(CBResult pingResult, Double latency) { ! switch (pingResult.state) { ! case OK: { ! log.debug("latency to "+msg.target+"="+latency); ! long curr_time = System.currentTimeMillis(); ! sendResponseMessage ! ("Ping", remoteAddr, ! new ProxyPingResponseMsg ! (localNC.nc.getSystemCoords(), localNC.nc.getSystemError(), ! localNC.nc.getAge(curr_time),latency), msg.getMsgId(), ! null, cbHandled); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! sendResponseMessage ! ("Ping", remoteAddr, ! new ProxyPingResponseMsg(null, 0, 0, 0), msg.getMsgId(), ! "Ping to "+msg.target+" failed", cbHandled); ! break; } } ! } ! }); } } *************** *** 436,440 **** if (upNeighbors.size() == 0 || (pendingNeighbors.size() > 0 && ! Pyxida.random.nextDouble() < pctUsePendingNeighbor)) { upNeighbor = PUtil.getRandomObject(pendingNeighbors); log.debug("getUpNeighbor using pending: "+upNeighbor); --- 436,440 ---- if (upNeighbors.size() == 0 || (pendingNeighbors.size() > 0 && ! Pyxida.random.nextDouble() < pctUsePendingNeighbor)) { upNeighbor = PUtil.getRandomObject(pendingNeighbors); log.debug("getUpNeighbor using pending: "+upNeighbor); *************** *** 563,567 **** AddressIF remoteAddr, Long ts) { ! double rtt = (System.nanoTime() - sendStamp) / 1000000d; switch (result.state) { --- 563,567 ---- AddressIF remoteAddr, Long ts) { ! double rtt = (System.nanoTime() - sendStamp) / 1000000d; switch (result.state) { *************** *** 574,606 **** if (Pyxida.USE_ICMP) { ! // and ping him ! pingManager.addPingRequest(neighbor, new CB1<Double>() { ! protected void cb(CBResult pingResult, Double latency) { ! switch (pingResult.state) { ! case OK: { ! // both calls worked ! addUpNeighbor(neighbor); ! log.debug("latency of "+latency+" to "+neighbor); ! long curr_time = System.currentTimeMillis(); ! // and update our coordinate ! localNC.nc.processSample(neighbor, responseMsg.remoteCoordinate, ! responseMsg.remoteError, latency, responseMsg.remoteAge, curr_time, true); ! log.debug("update: "+localNC.nc); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! log.warn("Ping to " + neighbor + " failed"); ! addDownNeighbor(neighbor); ! break; } } ! } ! }); } else { // NOT using PingManager --- 574,606 ---- if (Pyxida.USE_ICMP) { ! // and ping him ! pingManager.addPingRequest(neighbor, new CB1<Double>() { ! protected void cb(CBResult pingResult, Double latency) { ! switch (pingResult.state) { ! case OK: { ! // both calls worked ! addUpNeighbor(neighbor); ! log.debug("latency of "+latency+" to "+neighbor); ! long curr_time = System.currentTimeMillis(); ! // and update our coordinate ! localNC.nc.processSample(neighbor, responseMsg.remoteCoordinate, ! responseMsg.remoteError, latency, responseMsg.remoteAge, curr_time, true); ! log.debug("update: "+localNC.nc); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! log.warn("Ping to " + neighbor + " failed"); ! addDownNeighbor(neighbor); ! break; ! } } } ! }); } else { // NOT using PingManager *************** *** 609,614 **** // and update our coordinate localNC.nc.processSample(neighbor, responseMsg.remoteCoordinate, ! responseMsg.remoteError, rtt, ! responseMsg.remoteAge, curr_time, true); log.debug("update: "+localNC.nc); --- 609,614 ---- // and update our coordinate localNC.nc.processSample(neighbor, responseMsg.remoteCoordinate, ! responseMsg.remoteError, rtt, ! responseMsg.remoteAge, curr_time, true); log.debug("update: "+localNC.nc); *************** *** 679,712 **** ProxyPingRequestMsg msg = new ProxyPingRequestMsg(addr); comm.sendRequestMessage ! (msg, neighbor, ! new ObjCommRRCB<ProxyPingResponseMsg>() { ! protected void cb(CBResult result, ! final ProxyPingResponseMsg responseMsg, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { ! case OK: { ! if (responseMsg.remoteCoordinate != null) { ! log.debug("proxyping response from "+neighbor+ ! " lat to "+addr+" "+responseMsg.latency); ! long curr_time = System.currentTimeMillis(); ! nc.processSample(neighbor, responseMsg.remoteCoordinate, ! responseMsg.remoteError, responseMsg.latency, ! responseMsg.remoteAge, ! curr_time, true); ! log.debug("update: "+nc); ! } else { ! log.debug("proxyping from "+neighbor+" to "+addr+" failed"); ! } ! addUpNeighbor(neighbor); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! log.warn("proxyping response to "+neighbor+" failed"); ! addDownNeighbor(neighbor); } } } ! }); } --- 679,712 ---- ProxyPingRequestMsg msg = new ProxyPingRequestMsg(addr); comm.sendRequestMessage ! (msg, neighbor, ! new ObjCommRRCB<ProxyPingResponseMsg>() { ! protected void cb(CBResult result, ! final ProxyPingResponseMsg responseMsg, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { ! case OK: { ! if (responseMsg.remoteCoordinate != null) { ! log.debug("proxyping response from "+neighbor+ ! " lat to "+addr+" "+responseMsg.latency); ! long curr_time = System.currentTimeMillis(); ! nc.processSample(neighbor, responseMsg.remoteCoordinate, ! responseMsg.remoteError, responseMsg.latency, ! responseMsg.remoteAge, ! curr_time, true); ! log.debug("update: "+nc); ! } else { ! log.debug("proxyping from "+neighbor+" to "+addr+" failed"); } + addUpNeighbor(neighbor); + break; + } + case TIMEOUT: + case ERROR: { + log.warn("proxyping response to "+neighbor+" failed"); + addDownNeighbor(neighbor); } } ! } ! }); } |
|
From: Peter P. <pr...@us...> - 2007-01-03 15:24:29
|
Update of /cvsroot/pyxida/Pyxida/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8114/lib Modified Files: sbon-async.jar Log Message: Made sure that ObjComm send error reporting happens through CB Index: sbon-async.jar =================================================================== RCS file: /cvsroot/pyxida/Pyxida/lib/sbon-async.jar,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 Binary files /tmp/cvsAh7enw and /tmp/cvsUf5bdv differ |
|
From: Jonathan L. <le...@us...> - 2007-01-03 15:11:34
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3032/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: Barrier problem Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** NCManager.java 2 Jan 2007 21:41:34 -0000 1.29 --- NCManager.java 3 Jan 2007 15:11:32 -0000 1.30 *************** *** 227,230 **** --- 227,232 ---- final StringBuffer errorBuffer) { + log.debug("getRemoteOrLocalCoordinate node="+node); + if (node.equals(comm.getLocalAddress())) { addr2coord.put(node,getLocalCoord()); |
|
From: Peter P. <pr...@us...> - 2007-01-03 10:01:00
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10060/src/edu/harvard/syrah/pyxida/api Modified Files: ExternalAPI.java ExternalAPIIF.java Log Message: Fixed getRemoteCoords method Index: ExternalAPIIF.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPIIF.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ExternalAPIIF.java 2 Jan 2007 21:41:34 -0000 1.13 --- ExternalAPIIF.java 3 Jan 2007 10:00:56 -0000 1.14 *************** *** 1,4 **** --- 1,5 ---- package edu.harvard.syrah.pyxida.api; + import java.util.Hashtable; import java.util.Map; import java.util.Vector; *************** *** 17,21 **** public void getRemoteCoord(String remoteNode, CB1<Map<String, Object>> cbRemoteCoord); ! public void getRemoteCoords(Map<String,Object> remoteNodes, CB1<Map<String, Object>> cbRemoteCoords); public void getLocalError(CB1<Double> cbLocalError); --- 18,22 ---- public void getRemoteCoord(String remoteNode, CB1<Map<String, Object>> cbRemoteCoord); ! public void getRemoteCoords(Hashtable<String, Object> remoteNodes, CB1<Map<String, Object>> cbRemoteCoords); public void getLocalError(CB1<Double> cbLocalError); Index: ExternalAPI.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPI.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ExternalAPI.java 2 Jan 2007 21:41:34 -0000 1.15 --- ExternalAPI.java 3 Jan 2007 10:00:56 -0000 1.16 *************** *** 153,162 **** } ! public void getRemoteCoords(final Map<String,Object> remoteNodesMap, final CB1<Map<String, Object>> cbRemoteCoords) { String [] nodesStr = new String[remoteNodesMap.size()]; int i = 0; ! for (String remoteNode : remoteNodesMap.keySet()) { log.debug ("getRemoteCoords["+i+"]= "+remoteNode); nodesStr[i] = remoteNode; --- 153,163 ---- } ! public void getRemoteCoords(final Hashtable<String, Object> remoteNodesMap, final CB1<Map<String, Object>> cbRemoteCoords) { String [] nodesStr = new String[remoteNodesMap.size()]; int i = 0; ! for (Object obj : remoteNodesMap.keySet()) { ! String remoteNode = (String) obj; log.debug ("getRemoteCoords["+i+"]= "+remoteNode); nodesStr[i] = remoteNode; |
|
From: Peter P. <pr...@us...> - 2007-01-03 10:01:00
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10060/bin Modified Files: query.pl Log Message: Fixed getRemoteCoords method Index: query.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/query.pl,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** query.pl 2 Jan 2007 21:41:34 -0000 1.10 --- query.pl 3 Jan 2007 10:00:56 -0000 1.11 *************** *** 45,49 **** ############################################################ #warn "url $url\n"; ! my $server = Frontier::Client->new(url=>"$url"); if (defined($para{'l'})) { --- 45,49 ---- ############################################################ #warn "url $url\n"; ! my $server = Frontier::Client->new(url => "$url", debug => 1); if (defined($para{'l'})) { *************** *** 65,70 **** } } ! close IN; ! my $node2coord = $server->call("pyxida.getRemoteCoords", %remoteNodes); print Dumper($node2coord); } elsif (defined($para{'r'})) { --- 65,70 ---- } } ! close IN; ! my $node2coord = $server->call("pyxida.getRemoteCoords", \%remoteNodes); print Dumper($node2coord); } elsif (defined($para{'r'})) { |
|
From: Jonathan L. <le...@us...> - 2007-01-02 21:41:37
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25332/bin Modified Files: query.pl Log Message: stuck with passing arguments via XML/RPC Index: query.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/query.pl,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** query.pl 31 Dec 2006 14:54:51 -0000 1.9 --- query.pl 2 Jan 2007 21:41:34 -0000 1.10 *************** *** 6,15 **** use Data::Dumper; ! my $DEFAULT_PYXIDA_PORT=55504; ! my $DEFAULT_PYXIDA_API_PORT=55501; my $USE_HEIGHT = 1; my $usage = "query.pl [options] url\n"; $usage .= " -l: get local coordinate of node running at url\n"; $usage .= " -r remote-node: get remote overlay node coordinate\n"; $usage .= " -p proxy-node: get proxy coord that is stored on contacted node\n"; --- 6,16 ---- use Data::Dumper; ! my $PORT=55500; ! my $API_PORT=55501; my $USE_HEIGHT = 1; my $usage = "query.pl [options] url\n"; $usage .= " -l: get local coordinate of node running at url\n"; + $usage .= " -s subset.dat: file containing list of remote nodes, one per line\n"; $usage .= " -r remote-node: get remote overlay node coordinate\n"; $usage .= " -p proxy-node: get proxy coord that is stored on contacted node\n"; *************** *** 21,25 **** $usage .= "Default port numbers can be overridden with \":port\" syntax\n"; my %para = (); ! getopts('lr:a:b:', \%para); ############################################################ --- 22,26 ---- $usage .= "Default port numbers can be overridden with \":port\" syntax\n"; my %para = (); ! getopts('lr:a:b:s:', \%para); ############################################################ *************** *** 30,35 **** my $url = $ARGV[0]; if ($url =~ /^http:\/\/[\w+\.]+$/) { ! $url .= ":$DEFAULT_PYXIDA_API_PORT/xmlrpc" } --- 31,40 ---- my $url = $ARGV[0]; + if ($url !~ /^http:\/\//) { + $url = 'http://'.$url; + } + if ($url =~ /^http:\/\/[\w+\.]+$/) { ! $url .= ":$API_PORT/xmlrpc" } *************** *** 39,43 **** ############################################################ ! warn "url $url\n"; my $server = Frontier::Client->new(url=>"$url"); --- 44,48 ---- ############################################################ ! #warn "url $url\n"; my $server = Frontier::Client->new(url=>"$url"); *************** *** 50,65 **** my $coord = &parse_coord ($coordArray); print "$coord\n"; } elsif (defined($para{'r'})) { ! my $remoteNode = &addPort ($para{'r'}); ! my $coordArray = $server->call("pyxida.getRemoteCoord", $remoteNode); ! print Dumper($coordArray); ! #my $coord = &parse_coord ($coordArray); ! #print "$coord\n"; } elsif (defined($para{'a'}) && defined($para{'b'})) { ! my $nodeA = &addPort($para{'a'}); ! my $nodeB = &addPort($para{'b'}); my $distance = $server->call("pyxida.estimateRTT", $nodeA, $nodeB); ! $distance = sprintf ("%.3f", $distance); ! print "$distance\n"; } else { die ("Missing arguments\n$usage"); --- 55,95 ---- my $coord = &parse_coord ($coordArray); print "$coord\n"; + } elsif (defined($para{'s'})) { + my %remoteNodes = (); + open IN, "$para{'s'}" or die ("Cannot open file $para{'s'}\n"); + while (my $line = <IN>) { + $line =~ s/\s//g; + next if ($line =~ /\#/); + if ($line =~ /\w+/) { + $remoteNodes{$line} = 1; + } + } + close IN; + my $node2coord = $server->call("pyxida.getRemoteCoords", %remoteNodes); + print Dumper($node2coord); } elsif (defined($para{'r'})) { ! my $remoteNode = &addPort ($para{'r'},$PORT); ! my $resHash = $server->call("pyxida.getRemoteCoord", $remoteNode); ! if (defined($resHash->{'result'})) { ! if (($resHash->{'result'} eq 'Success') && ! (defined($resHash->{'coord'}))) { ! my $coord = &parse_coord ($resHash->{'coord'}); ! print "$coord\n"; ! } else { ! print "Failure: $resHash->{'result'}\n"; ! } ! } else { ! print "Failure: cause unknown\n"; ! } } elsif (defined($para{'a'}) && defined($para{'b'})) { ! my $nodeA = &addPort($para{'a'},$PORT); ! my $nodeB = &addPort($para{'b'},$PORT); ! my $distance = $server->call("pyxida.estimateRTT", $nodeA, $nodeB); ! #print Dumper($distance); ! if (defined($distance)) { ! $distance = sprintf ("%.3f", $distance); ! print "$distance\n"; ! } } else { die ("Missing arguments\n$usage"); *************** *** 84,90 **** sub addPort { ! my ($host) = @_; if ($host !~ /[\w]+:\d+/) { ! $host .= ":$DEFAULT_PYXIDA_PORT"; } return $host; --- 114,120 ---- sub addPort { ! my ($host,$port) = @_; if ($host !~ /[\w]+:\d+/) { ! $host .= ":$port"; } return $host; |
|
From: Jonathan L. <le...@us...> - 2007-01-02 21:41:37
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25332/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: stuck with passing arguments via XML/RPC Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** NCManager.java 29 Dec 2006 10:21:35 -0000 1.28 --- NCManager.java 2 Jan 2007 21:41:34 -0000 1.29 *************** *** 224,236 **** void getRemoteOrLocalCoordinate (final AddressIF node, final Barrier barrier, ! final List<Coordinate> coordList, ! final CB2<Double,String> cbDistance) { ! if (node.equals(comm.getLocalAddress())) { ! coordList.add(getLocalCoord()); return; } ProxyClient proxyCoord = addr2proxyClient.get(node); if (proxyCoord != null) { ! coordList.add(proxyCoord.nc.getSystemCoords()); return; } --- 224,237 ---- void getRemoteOrLocalCoordinate (final AddressIF node, final Barrier barrier, ! final Map<AddressIF,Coordinate> addr2coord, ! final StringBuffer errorBuffer) { ! ! if (node.equals(comm.getLocalAddress())) { ! addr2coord.put(node,getLocalCoord()); return; } ProxyClient proxyCoord = addr2proxyClient.get(node); if (proxyCoord != null) { ! addr2coord.put(node,proxyCoord.nc.getSystemCoords()); return; } *************** *** 245,250 **** case OK: { log.debug("received coord back from "+node); ! coordList.add(resp.coord); ! barrier.join(); break; } --- 246,250 ---- case OK: { log.debug("received coord back from "+node); ! addr2coord.put(node,resp.coord); break; } *************** *** 254,270 **** +" failed:"+ result.toString(); log.warn(error); ! // TODO ! // Test to see if this callback has already errored ! // due to the other call ! cbDistance.call(result, new Double(0), error); ! // Remove the barrier to clear up state ! barrier.remove(); } } } }); } /** * Fetches coordinates from two nodes and returns --- 254,289 ---- +" failed:"+ result.toString(); log.warn(error); ! if (errorBuffer.length() != 0) { ! errorBuffer.append("\n"); ! } ! errorBuffer.append(error); ! // Remove the barrier to clear up state ! //barrier.remove(); ! break; } } + barrier.join(); + } + }); + } + + public void getRemoteCoords(final List<AddressIF> nodes, + final CB2<Map<AddressIF,Coordinate>,String> cbCoords) { + final Barrier barrier = new Barrier(true); + final Map<AddressIF,Coordinate> addr2coord = new HashMap<AddressIF,Coordinate>(); + final StringBuffer errorBuffer = new StringBuffer(); + for (AddressIF addr : nodes) { + getRemoteOrLocalCoordinate(addr,barrier,addr2coord, errorBuffer); + } + EventLoop.get().registerTimerCB(barrier, new CB0() { + protected void cb(CBResult result) { + String errorString = new String (errorBuffer); + cbCoords.call(CBResult.OK(),addr2coord, errorString); } }); } + /** * Fetches coordinates from two nodes and returns *************** *** 272,276 **** */ public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB2<Double,String> cbDistance) { log.debug ("estimateRTT a="+nodeA+" b="+nodeB); --- 291,295 ---- */ public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB1<Double> cbDistance) { log.debug ("estimateRTT a="+nodeA+" b="+nodeB); *************** *** 278,299 **** // to fork, then the barrier CB will be executed immediately. final Barrier barrier = new Barrier(true); ! final List<Coordinate> coordList = new ArrayList<Coordinate>(); ! getRemoteOrLocalCoordinate(nodeA,barrier,coordList,cbDistance); ! getRemoteOrLocalCoordinate(nodeB,barrier,coordList,cbDistance); ! EventLoop.get().registerTimerCB(barrier, new CB0() { protected void cb(CBResult result) { - // after barrier is triggered - - // TODO test to see if an error condition in the fn - // has already called the callback, - // in which case we are done. ! // Otherwise, find the distance and return it to the caller ! double distance = coordList.get(0).distanceTo(coordList.get(1)); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance, "Success"); } --- 297,321 ---- // to fork, then the barrier CB will be executed immediately. final Barrier barrier = new Barrier(true); ! final Map<AddressIF,Coordinate> addr2coord = new HashMap<AddressIF,Coordinate>(); ! final StringBuffer errorBuffer = new StringBuffer(); ! getRemoteOrLocalCoordinate(nodeA,barrier,addr2coord, errorBuffer); ! getRemoteOrLocalCoordinate(nodeB,barrier,addr2coord, errorBuffer); EventLoop.get().registerTimerCB(barrier, new CB0() { protected void cb(CBResult result) { ! Coordinate coordA = addr2coord.get(nodeA); ! Coordinate coordB = addr2coord.get(nodeB); ! if (coordA != null && coordB != null) { ! ! double distance = coordA.distanceTo(coordB); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance); ! } else { ! String errorString = new String (errorBuffer); ! log.warn(errorString); ! cbDistance.call(CBResult.ERROR(errorString), new Double(0)); ! } } |
|
From: Jonathan L. <le...@us...> - 2007-01-02 21:41:36
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25332/src/edu/harvard/syrah/pyxida/api Modified Files: ExternalAPI.java ExternalAPIIF.java Log Message: stuck with passing arguments via XML/RPC Index: ExternalAPIIF.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPIIF.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ExternalAPIIF.java 31 Dec 2006 14:54:51 -0000 1.12 --- ExternalAPIIF.java 2 Jan 2007 21:41:34 -0000 1.13 *************** *** 16,24 **** public void getRemoteCoord(String remoteNode, CB1<Map<String, Object>> cbRemoteCoord); public void getLocalError(CB1<Double> cbLocalError); // Estimate the RTT ! public void estimateRTT(String nodeA, String nodeB, CB2<Double,String> cbLatency); // Create a new proxy coord with a lease --- 16,26 ---- public void getRemoteCoord(String remoteNode, CB1<Map<String, Object>> cbRemoteCoord); + + public void getRemoteCoords(Map<String,Object> remoteNodes, CB1<Map<String, Object>> cbRemoteCoords); public void getLocalError(CB1<Double> cbLocalError); // Estimate the RTT ! public void estimateRTT(String nodeA, String nodeB, CB1<Double> cbLatency); // Create a new proxy coord with a lease Index: ExternalAPI.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPI.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ExternalAPI.java 31 Dec 2006 14:54:51 -0000 1.14 --- ExternalAPI.java 2 Jan 2007 21:41:34 -0000 1.15 *************** *** 1,5 **** --- 1,7 ---- package edu.harvard.syrah.pyxida.api; + import java.util.ArrayList; import java.util.Hashtable; + import java.util.List; import java.util.Map; import java.util.Vector; *************** *** 105,109 **** } ! public void estimateRTT(final String nodeA, final String nodeB, final CB2<Double,String> cbDistance) { AddressFactory.createResolved(new String[] {nodeA, nodeB}, new CB1<Map<String, AddressIF>>() { protected void cb(CBResult result, Map<String, AddressIF> addrMap) { --- 107,111 ---- } ! public void estimateRTT(final String nodeA, final String nodeB, final CB1<Double> cbDistance) { AddressFactory.createResolved(new String[] {nodeA, nodeB}, new CB1<Map<String, AddressIF>>() { protected void cb(CBResult result, Map<String, AddressIF> addrMap) { *************** *** 111,115 **** case OK: { log.debug("estimateRTT a="+nodeA+" b="+nodeB); ! ncManager.estimateRTT(addrMap.get(nodeA), addrMap.get(nodeB), cbDistance); break; } --- 113,127 ---- case OK: { log.debug("estimateRTT a="+nodeA+" b="+nodeB); ! if (addrMap.get(nodeA) == null) { ! String error = "Could not resolve a="+nodeA; ! log.warn(error); ! cbDistance.call(CBResult.ERROR(error),new Double(0)); ! } else if (addrMap.get(nodeB) == null) { ! String error = "Could not resolve b="+nodeB; ! log.warn(error); ! cbDistance.call(CBResult.ERROR(error),new Double(0)); ! } else { ! ncManager.estimateRTT(addrMap.get(nodeA), addrMap.get(nodeB), cbDistance); ! } break; } *************** *** 117,121 **** case ERROR: { log.warn(result.toString()); ! cbDistance.call(result,new Double(0),result.toString()); } } --- 129,133 ---- case ERROR: { log.warn(result.toString()); ! cbDistance.call(result,new Double(0)); } } *************** *** 141,144 **** --- 153,211 ---- } + public void getRemoteCoords(final Map<String,Object> remoteNodesMap, + final CB1<Map<String, Object>> cbRemoteCoords) { + + String [] nodesStr = new String[remoteNodesMap.size()]; + int i = 0; + for (String remoteNode : remoteNodesMap.keySet()) { + log.debug ("getRemoteCoords["+i+"]= "+remoteNode); + nodesStr[i] = remoteNode; + i++; + } + + final Map resultMap = new Hashtable(); + + AddressFactory.createResolved(nodesStr, new CB1<Map<String, AddressIF>>() { + protected void cb(CBResult result, Map<String, AddressIF> addrMap) { + switch (result.state) { + case OK: + case TIMEOUT: { + + List<AddressIF> remoteNodes = new ArrayList<AddressIF>(); + remoteNodes.addAll(addrMap.values()); + for (AddressIF node : addrMap.values()) { + if (node != null) { + remoteNodes.add(node); + } + } + + // TODO are we OK even if none resolve correctly? + + ncManager.getRemoteCoords(remoteNodes, new CB2<Map<AddressIF,Coordinate>,String>() { + protected void cb(CBResult ncResult, + Map<AddressIF,Coordinate> addr2coord, + String errorString) { + resultMap.put("result", errorString); + for (Map.Entry<AddressIF,Coordinate> entry : addr2coord.entrySet()) { + resultMap.put(entry.getKey().toString(), + getVectorFromCoord(entry.getValue())); + } + } + }); + break; + } + + case ERROR: { + // problem resolving one of the addresses + log.warn(result.toString()); + resultMap.put("result", result.toString()); + cbRemoteCoords.call(CBResult.OK(), resultMap); + } + } + } + }); + + } + public void getRemoteCoord(final String remoteNodeStr, final CB1<Map<String, Object>> cbRemoteCoord) { *************** *** 148,153 **** case OK: { log.debug("resolved node="+remoteNode); - Map resultMap = new Hashtable(); Coordinate coord = ncManager.getLocalCoord(); --- 215,220 ---- case OK: { log.debug("resolved node="+remoteNode); + /* Map resultMap = new Hashtable(); Coordinate coord = ncManager.getLocalCoord(); *************** *** 157,162 **** cbRemoteCoord.call(CBResult.OK(), resultMap); return; ! /* ncManager.getRemoteCoord(remoteNode, new CB1<Coordinate>() { protected void cb(CBResult ncResult, Coordinate remoteCoord) { --- 224,230 ---- cbRemoteCoord.call(CBResult.OK(), resultMap); return; + */ ! ncManager.getRemoteCoord(remoteNode, new CB1<Coordinate>() { protected void cb(CBResult ncResult, Coordinate remoteCoord) { *************** *** 181,185 **** }}); break; ! */ } case TIMEOUT: --- 249,253 ---- }}); break; ! } case TIMEOUT: |
|
From: Peter P. <pr...@us...> - 2006-12-31 14:54:54
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26099/src/edu/harvard/syrah/pyxida/api Modified Files: ExternalAPI.java ExternalAPIIF.java Log Message: Fixed the return type of getRemoteCoord Index: ExternalAPIIF.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPIIF.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** ExternalAPIIF.java 31 Dec 2006 03:22:29 -0000 1.11 --- ExternalAPIIF.java 31 Dec 2006 14:54:51 -0000 1.12 *************** *** 1,5 **** package edu.harvard.syrah.pyxida.api; ! import java.util.List; import java.util.Vector; --- 1,5 ---- package edu.harvard.syrah.pyxida.api; ! import java.util.Map; import java.util.Vector; *************** *** 15,19 **** public void getLocalCoord(CB1<Vector<Double>> cbLocalCoord); ! public void getRemoteCoord(String remoteNode, CB2<Vector<Double>,String> cbRemoteCoord); public void getLocalError(CB1<Double> cbLocalError); --- 15,19 ---- public void getLocalCoord(CB1<Vector<Double>> cbLocalCoord); ! public void getRemoteCoord(String remoteNode, CB1<Map<String, Object>> cbRemoteCoord); public void getLocalError(CB1<Double> cbLocalError); Index: ExternalAPI.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPI.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ExternalAPI.java 31 Dec 2006 03:22:29 -0000 1.13 --- ExternalAPI.java 31 Dec 2006 14:54:51 -0000 1.14 *************** *** 1,5 **** package edu.harvard.syrah.pyxida.api; ! import java.util.List; import java.util.Map; import java.util.Vector; --- 1,5 ---- package edu.harvard.syrah.pyxida.api; ! import java.util.Hashtable; import java.util.Map; import java.util.Vector; *************** *** 142,146 **** public void getRemoteCoord(final String remoteNodeStr, ! final CB2<Vector<Double>,String> cbRemoteCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 142,146 ---- public void getRemoteCoord(final String remoteNodeStr, ! final CB1<Map<String, Object>> cbRemoteCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { *************** *** 148,157 **** case OK: { log.debug("resolved node="+remoteNode); ncManager.getRemoteCoord(remoteNode, new CB1<Coordinate>() { protected void cb(CBResult ncResult, Coordinate remoteCoord) { switch (ncResult.state) { case OK: { Vector<Double> listCoord = getVectorFromCoord(remoteCoord); ! cbRemoteCoord.call(CBResult.OK(), listCoord, "Success"); break; } --- 148,172 ---- case OK: { log.debug("resolved node="+remoteNode); + + + Map resultMap = new Hashtable(); + Coordinate coord = ncManager.getLocalCoord(); + Vector<Double> listCoord = getVectorFromCoord(coord); + resultMap.put("coord", listCoord); + resultMap.put("result", "Success"); + cbRemoteCoord.call(CBResult.OK(), resultMap); + return; + + /* ncManager.getRemoteCoord(remoteNode, new CB1<Coordinate>() { protected void cb(CBResult ncResult, Coordinate remoteCoord) { + Map resultMap = new Hashtable(); + switch (ncResult.state) { case OK: { Vector<Double> listCoord = getVectorFromCoord(remoteCoord); ! resultMap.put("coord", listCoord); ! resultMap.put("result", "Success"); ! cbRemoteCoord.call(CBResult.OK(), resultMap); break; } *************** *** 159,163 **** case ERROR: { log.warn(ncResult.toString()); ! cbRemoteCoord.call(ncResult, null,ncResult.toString()); break; } --- 174,179 ---- case ERROR: { log.warn(ncResult.toString()); ! resultMap.put("result", ncResult.toString()); ! cbRemoteCoord.call(ncResult, resultMap); break; } *************** *** 165,175 **** }}); break; } case TIMEOUT: case ERROR: { log.warn(nsResult.toString()); ! cbRemoteCoord.call(nsResult, null,nsResult.toString()); break; } } } --- 181,195 ---- }}); break; + */ } case TIMEOUT: case ERROR: { log.warn(nsResult.toString()); ! Map resultMap = new Hashtable(); ! resultMap.put("result", nsResult.toString()); ! cbRemoteCoord.call(nsResult, resultMap); break; } + } } |
|
From: Peter P. <pr...@us...> - 2006-12-31 14:54:54
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26099/bin Modified Files: query.pl Log Message: Fixed the return type of getRemoteCoord Index: query.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/query.pl,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** query.pl 31 Dec 2006 03:22:29 -0000 1.8 --- query.pl 31 Dec 2006 14:54:51 -0000 1.9 *************** *** 52,56 **** } elsif (defined($para{'r'})) { my $remoteNode = &addPort ($para{'r'}); ! my @coordArray = $server->call("pyxida.getRemoteCoord", $remoteNode); #my $coord = &parse_coord ($coordArray); #print "$coord\n"; --- 52,57 ---- } elsif (defined($para{'r'})) { my $remoteNode = &addPort ($para{'r'}); ! my $coordArray = $server->call("pyxida.getRemoteCoord", $remoteNode); ! print Dumper($coordArray); #my $coord = &parse_coord ($coordArray); #print "$coord\n"; |
|
From: Jonathan L. <le...@us...> - 2006-12-31 03:22:36
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2435/src/edu/harvard/syrah/pyxida/api Modified Files: ExternalAPI.java ExternalAPIIF.java Log Message: xml call problem Index: ExternalAPIIF.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPIIF.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ExternalAPIIF.java 6 Dec 2006 22:03:54 -0000 1.10 --- ExternalAPIIF.java 31 Dec 2006 03:22:29 -0000 1.11 *************** *** 15,19 **** public void getLocalCoord(CB1<Vector<Double>> cbLocalCoord); ! public void getRemoteCoord(String remoteNode, CB2<List<Double>,String> cbRemoteCoord); public void getLocalError(CB1<Double> cbLocalError); --- 15,19 ---- public void getLocalCoord(CB1<Vector<Double>> cbLocalCoord); ! public void getRemoteCoord(String remoteNode, CB2<Vector<Double>,String> cbRemoteCoord); public void getLocalError(CB1<Double> cbLocalError); Index: ExternalAPI.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/api/ExternalAPI.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ExternalAPI.java 13 Dec 2006 14:23:12 -0000 1.12 --- ExternalAPI.java 31 Dec 2006 03:22:29 -0000 1.13 *************** *** 142,146 **** public void getRemoteCoord(final String remoteNodeStr, ! final CB2<List<Double>,String> cbRemoteCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { --- 142,146 ---- public void getRemoteCoord(final String remoteNodeStr, ! final CB2<Vector<Double>,String> cbRemoteCoord) { AddressFactory.createResolved(remoteNodeStr, new CB1<AddressIF>() { protected void cb(CBResult nsResult, AddressIF remoteNode) { |
|
From: Jonathan L. <le...@us...> - 2006-12-31 03:22:36
|
Update of /cvsroot/pyxida/Pyxida/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2435/bin Modified Files: query.pl Log Message: xml call problem Index: query.pl =================================================================== RCS file: /cvsroot/pyxida/Pyxida/bin/query.pl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** query.pl 8 Dec 2006 16:52:08 -0000 1.7 --- query.pl 31 Dec 2006 03:22:29 -0000 1.8 *************** *** 17,23 **** $usage .= "\n"; ! $usage .= "query.pl -l http://righthand.eecs.harvard.edu:$DEFAULT_PYXIDA_API_PORT\n"; ! $usage .= "query.pl -a sb02.eecs.harvard.edu:$DEFAULT_PYXIDA_PORT -b sb03.eecs.harvard.edu:$DEFAULT_PYXIDA_PORT http://sb01.eecs.harvard.edu:$DEFAULT_PYXIDA_API_PORT\n"; ! $usage .= "If port numbers are not supplied, defaults are used\n"; my %para = (); getopts('lr:a:b:', \%para); --- 17,23 ---- $usage .= "\n"; ! $usage .= "query.pl -l http://righthand.eecs.harvard.edu\n"; ! $usage .= "query.pl -a sb02.eecs.harvard.edu -b sb03.eecs.harvard.edu http://sb01.eecs.harvard.edu\n"; ! $usage .= "Default port numbers can be overridden with \":port\" syntax\n"; my %para = (); getopts('lr:a:b:', \%para); *************** *** 29,54 **** } my $url = $ARGV[0]; ! if ($url !~ /^http:\/\/.*?:\d+$/) { ! die ("bad url: $url\n$usage\n"); } ! ############################################################ my $server = Frontier::Client->new(url=>"$url"); if (defined($para{'l'})) { my $coordArray = $server->call("pyxida.getLocalCoord"); ! #print Dumper($hash); #&Aux::printHash($hash); my $coord = &parse_coord ($coordArray); print "$coord\n"; } elsif (defined($para{'r'})) { ! my $remoteNode = $para{'r'}; ! my $coordArray = $server->call("pyxida.getRemoteCoord", $para{'r'}); ! my $coord = &parse_coord ($coordArray); ! print "$coord\n"; } elsif (defined($para{'a'}) && defined($para{'b'})) { ! my $nodeA = $para{'a'}; ! my $nodeB = $para{'b'}; my $distance = $server->call("pyxida.estimateRTT", $nodeA, $nodeB); $distance = sprintf ("%.3f", $distance); --- 29,61 ---- } my $url = $ARGV[0]; ! ! if ($url =~ /^http:\/\/[\w+\.]+$/) { ! $url .= ":$DEFAULT_PYXIDA_API_PORT/xmlrpc" } ! if ($url !~ /^http:\/\/[\w+\.]+:\d+\/xmlrpc$/) { ! die ("word: $url\n$usage\n"); ! } + ############################################################ + warn "url $url\n"; my $server = Frontier::Client->new(url=>"$url"); if (defined($para{'l'})) { + #warn "making call\n"; my $coordArray = $server->call("pyxida.getLocalCoord"); ! #warn "call returned\n"; ! #print Dumper($coordArray); #&Aux::printHash($hash); my $coord = &parse_coord ($coordArray); print "$coord\n"; } elsif (defined($para{'r'})) { ! my $remoteNode = &addPort ($para{'r'}); ! my @coordArray = $server->call("pyxida.getRemoteCoord", $remoteNode); ! #my $coord = &parse_coord ($coordArray); ! #print "$coord\n"; } elsif (defined($para{'a'}) && defined($para{'b'})) { ! my $nodeA = &addPort($para{'a'}); ! my $nodeB = &addPort($para{'b'}); my $distance = $server->call("pyxida.estimateRTT", $nodeA, $nodeB); $distance = sprintf ("%.3f", $distance); *************** *** 74,75 **** --- 81,90 ---- return $out; } + + sub addPort { + my ($host) = @_; + if ($host !~ /[\w]+:\d+/) { + $host .= ":$DEFAULT_PYXIDA_PORT"; + } + return $host; + } |
|
From: Jonathan L. <le...@us...> - 2006-12-31 03:22:36
|
Update of /cvsroot/pyxida/Pyxida/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2435/config Modified Files: pyxida.cfg Log Message: xml call problem Index: pyxida.cfg =================================================================== RCS file: /cvsroot/pyxida/Pyxida/config/pyxida.cfg,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** pyxida.cfg 5 Dec 2006 15:47:56 -0000 1.8 --- pyxida.cfg 31 Dec 2006 03:22:29 -0000 1.9 *************** *** 33,35 **** # accurate and consistent results but requires # that you run the code as root. ! pyxida.use_icmp=true --- 33,35 ---- # accurate and consistent results but requires # that you run the code as root. ! pyxida.use_icmp=false |
|
From: Peter P. <pr...@us...> - 2006-12-29 10:22:24
|
Update of /cvsroot/pyxida/Pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21919 Modified Files: TODO Log Message: Fixed prp todos Index: TODO =================================================================== RCS file: /cvsroot/pyxida/Pyxida/TODO,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** TODO 27 Dec 2006 20:04:06 -0000 1.15 --- TODO 29 Dec 2006 10:22:21 -0000 1.16 *************** *** 17,21 **** V0.2 Proxy coordinates - - Peter fix PRP TODOs - change PingManager to fail over to TCP Syns if ICMP fails for a particular IP address --- 17,20 ---- |
|
From: Peter P. <pr...@us...> - 2006-12-29 10:21:38
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21568/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: Fixed prp todos Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** NCManager.java 20 Dec 2006 17:47:06 -0000 1.27 --- NCManager.java 29 Dec 2006 10:21:35 -0000 1.28 *************** *** 259,264 **** cbDistance.call(result, new Double(0), error); ! // PRP TODO should be be barrier.remove() ? ! barrier.join(); } } --- 259,264 ---- cbDistance.call(result, new Double(0), error); ! // Remove the barrier to clear up state ! barrier.remove(); } } *************** *** 275,279 **** log.debug ("estimateRTT a="+nodeA+" b="+nodeB); ! // TODO PRP true or false? final Barrier barrier = new Barrier(true); final List<Coordinate> coordList = new ArrayList<Coordinate>(); --- 275,280 ---- log.debug ("estimateRTT a="+nodeA+" b="+nodeB); ! // Creates a new barrier, which is triggered by default, i.e. if there's no call ! // to fork, then the barrier CB will be executed immediately. final Barrier barrier = new Barrier(true); final List<Coordinate> coordList = new ArrayList<Coordinate>(); *************** *** 282,287 **** ! // TODO PRP this fn isn't found ! EventLoop.get().registerEventCB(barrier, new CB0() { protected void cb(CBResult result) { // after barrier is triggered --- 283,287 ---- ! EventLoop.get().registerTimerCB(barrier, new CB0() { protected void cb(CBResult result) { // after barrier is triggered |
|
From: Jonathan L. <le...@us...> - 2006-12-27 20:04:07
|
Update of /cvsroot/pyxida/Pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4575 Modified Files: TODO Log Message: updated todos Index: TODO =================================================================== RCS file: /cvsroot/pyxida/Pyxida/TODO,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** TODO 20 Dec 2006 16:42:39 -0000 1.14 --- TODO 27 Dec 2006 20:04:06 -0000 1.15 *************** *** 2,16 **** V0.1 OVERLAY NCs - modify script so that it uses default ports - - keep latest on PL in harvard_nc - - update script, what's on PL, and documentation to include Peter's xmlrpc change ! - document script etc according to emails from Mohamed@inria ###################################################################### V0.2 Proxy coordinates - change PingManager to fail over to TCP Syns if ICMP fails for a particular IP address - - fix estimateRTT to include barrier and support proxy coords ###################################################################### --- 2,22 ---- V0.1 OVERLAY NCs + - update web page once Peter has fixed todos - current version is broken - modify script so that it uses default ports - update script, what's on PL, and documentation to include Peter's xmlrpc change ! ! - new web interface needs to be tested: ! If you go to ! http://nodename:55501 ! you'll get the current coord of the node. ! Note that XMLRPC requests now need to be directed to ! http://nodename:55501/xmlrpc ! ###################################################################### V0.2 Proxy coordinates + - Peter fix PRP TODOs - change PingManager to fail over to TCP Syns if ICMP fails for a particular IP address ###################################################################### |
|
From: Jonathan L. <le...@us...> - 2006-12-27 20:03:58
|
Update of /cvsroot/pyxida/Pyxida/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4210 Modified Files: index.html Log Message: updated todos Index: index.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/index.html,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** index.html 20 Dec 2006 16:42:39 -0000 1.14 --- index.html 27 Dec 2006 20:03:54 -0000 1.15 *************** *** 104,113 **** dynamically track the coordinates of its hundreds of machines. ! <!-- li>Researchers at Boston University are using Pyxida for a new ! routing protocol. --></li> <li><a href="http://www.cs.ucsb.edu/~ravenben/classes/276/project.html">A ! Comparative Study of Network Coordinate System at UCSB</a> </ul> --- 104,115 ---- dynamically track the coordinates of its hundreds of machines. ! ! <li><a href="http://csr.bu.edu/sns">Researchers at Boston ! University and Harvard are using Pyxida to study selfish ! neighbor selection in overlay and peer-to-peer networks.</a> <li><a href="http://www.cs.ucsb.edu/~ravenben/classes/276/project.html">A ! Comparative Study of Network Coordinate System at UCSB.</a> </ul> |
|
From: Jonathan L. <le...@us...> - 2006-12-27 20:03:57
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4210/javadoc Modified Files: allclasses-frame.html allclasses-noframe.html constant-values.html deprecated-list.html help-doc.html index.html overview-frame.html overview-summary.html overview-tree.html Log Message: updated todos Index: index.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/index.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** index.html 20 Dec 2006 16:42:40 -0000 1.5 --- index.html 27 Dec 2006 20:03:54 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc on Wed Dec 20 11:24:32 EST 2006--> <TITLE> Generated Documentation (Untitled) --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc on Wed Dec 27 15:01:08 EST 2006--> <TITLE> Generated Documentation (Untitled) Index: overview-frame.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/overview-frame.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** overview-frame.html 20 Dec 2006 16:42:40 -0000 1.5 --- overview-frame.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> Overview --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> Overview Index: constant-values.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/constant-values.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** constant-values.html 20 Dec 2006 16:42:39 -0000 1.5 --- constant-values.html 27 Dec 2006 20:03:54 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> Constant Field Values --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> Constant Field Values Index: overview-summary.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/overview-summary.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** overview-summary.html 20 Dec 2006 16:42:40 -0000 1.5 --- overview-summary.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> Overview --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> Overview Index: help-doc.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/help-doc.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** help-doc.html 20 Dec 2006 16:42:40 -0000 1.5 --- help-doc.html 27 Dec 2006 20:03:54 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> API Help --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> API Help Index: overview-tree.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/overview-tree.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** overview-tree.html 20 Dec 2006 16:42:40 -0000 1.5 --- overview-tree.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> Class Hierarchy --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> Class Hierarchy Index: deprecated-list.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/deprecated-list.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** deprecated-list.html 20 Dec 2006 16:42:39 -0000 1.5 --- deprecated-list.html 27 Dec 2006 20:03:54 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> Deprecated List --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> Deprecated List Index: allclasses-noframe.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/allclasses-noframe.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** allclasses-noframe.html 20 Dec 2006 16:42:39 -0000 1.5 --- allclasses-noframe.html 27 Dec 2006 20:03:54 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> All Classes --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> All Classes Index: allclasses-frame.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/allclasses-frame.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** allclasses-frame.html 20 Dec 2006 16:42:39 -0000 1.5 --- allclasses-frame.html 27 Dec 2006 20:03:54 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> All Classes --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> All Classes |
|
From: Jonathan L. <le...@us...> - 2006-12-27 20:03:57
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4210/javadoc/edu/harvard/syrah/pyxida/nc Modified Files: package-frame.html package-summary.html package-tree.html Log Message: updated todos Index: package-frame.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/nc/package-frame.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** package-frame.html 20 Dec 2006 16:42:40 -0000 1.5 --- package-frame.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida.nc --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida.nc Index: package-summary.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/nc/package-summary.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** package-summary.html 20 Dec 2006 16:42:40 -0000 1.5 --- package-summary.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida.nc --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida.nc Index: package-tree.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/nc/package-tree.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** package-tree.html 20 Dec 2006 16:42:40 -0000 1.5 --- package-tree.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida.nc Class Hierarchy --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida.nc Class Hierarchy *************** *** 89,103 **** <LI TYPE="circle">java.lang.Object<UL> <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/NCManager.html" title="class in edu.harvard.syrah.pyxida.nc"><B>NCManager</B></A><LI TYPE="circle">ObjMessage<UL> ! <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/GossipResponseMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>GossipResponseMsg</B></A></UL> ! <LI TYPE="circle">ObjMessage<UL> ! <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/ProxyPingRequestMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>ProxyPingRequestMsg</B></A></UL> ! <LI TYPE="circle">ObjMessage<UL> ! <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/CoordResponseMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>CoordResponseMsg</B></A></UL> <LI TYPE="circle">ObjMessage<UL> <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/CoordRequestMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>CoordRequestMsg</B></A></UL> <LI TYPE="circle">ObjMessage<UL> ! <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/ProxyPingResponseMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>ProxyPingResponseMsg</B></A></UL> <LI TYPE="circle">ObjMessage<UL> <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/GossipRequestMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>GossipRequestMsg</B></A></UL> </UL> </UL> --- 89,103 ---- <LI TYPE="circle">java.lang.Object<UL> <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/NCManager.html" title="class in edu.harvard.syrah.pyxida.nc"><B>NCManager</B></A><LI TYPE="circle">ObjMessage<UL> ! <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/ProxyPingResponseMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>ProxyPingResponseMsg</B></A></UL> <LI TYPE="circle">ObjMessage<UL> <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/CoordRequestMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>CoordRequestMsg</B></A></UL> <LI TYPE="circle">ObjMessage<UL> ! <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/GossipResponseMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>GossipResponseMsg</B></A></UL> <LI TYPE="circle">ObjMessage<UL> <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/GossipRequestMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>GossipRequestMsg</B></A></UL> + <LI TYPE="circle">ObjMessage<UL> + <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/ProxyPingRequestMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>ProxyPingRequestMsg</B></A></UL> + <LI TYPE="circle">ObjMessage<UL> + <LI TYPE="circle">edu.harvard.syrah.pyxida.nc.<A HREF="../../../../../edu/harvard/syrah/pyxida/nc/CoordResponseMsg.html" title="class in edu.harvard.syrah.pyxida.nc"><B>CoordResponseMsg</B></A></UL> </UL> </UL> |
|
From: Jonathan L. <le...@us...> - 2006-12-27 20:03:56
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4210/javadoc/edu/harvard/syrah/pyxida Modified Files: Pyxida.html package-frame.html package-summary.html package-tree.html Log Message: updated todos Index: Pyxida.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/Pyxida.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Pyxida.html 20 Dec 2006 16:42:40 -0000 1.5 --- Pyxida.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:31 EST 2006 --> <TITLE> Pyxida --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:07 EST 2006 --> <TITLE> Pyxida Index: package-frame.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/package-frame.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** package-frame.html 20 Dec 2006 16:42:40 -0000 1.5 --- package-frame.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Index: package-summary.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/package-summary.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** package-summary.html 20 Dec 2006 16:42:40 -0000 1.5 --- package-summary.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Index: package-tree.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/package-tree.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** package-tree.html 20 Dec 2006 16:42:40 -0000 1.5 --- package-tree.html 27 Dec 2006 20:03:55 -0000 1.6 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Class Hierarchy --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 27 15:01:08 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Class Hierarchy |
|
From: Jonathan L. <le...@us...> - 2006-12-27 20:01:03
|
Update of /cvsroot/pyxida/Pyxida/web/dist In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3121 Added Files: foo Log Message: added dist dir --- NEW FILE: foo --- |
|
From: Jonathan L. <le...@us...> - 2006-12-20 18:47:10
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7376/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: does not compile -- problem with barrier in ncmanager Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** NCManager.java 8 Dec 2006 16:52:09 -0000 1.26 --- NCManager.java 20 Dec 2006 17:47:06 -0000 1.27 *************** *** 12,15 **** --- 12,16 ---- import edu.harvard.syrah.sbon.async.Config; import edu.harvard.syrah.sbon.async.EventLoop; + import edu.harvard.syrah.sbon.async.*; import edu.harvard.syrah.sbon.async.CallbacksIF.CB0; import edu.harvard.syrah.sbon.async.CallbacksIF.CB1; *************** *** 222,279 **** } ! /** ! * Fetches coordinates from two nodes and returns ! * the distance between them. ! */ ! public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB2<Double,String> cbDistance) { ! log.debug ("estimateRTT a="+nodeA+" b="+nodeB); comm.sendRequestMessage ! (new CoordRequestMsg(), nodeA, new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult resultA, final CoordResponseMsg respA, ! AddressIF remoteAddrA, Long tsA) { ! switch (resultA.state) { case OK: { ! log.debug("received coord back from "+nodeA); ! ! comm.sendRequestMessage ! (new CoordRequestMsg(), nodeB, ! new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult resultB, final CoordResponseMsg respB, ! AddressIF remoteAddrB, Long tsB) { ! switch (resultB.state) { ! case OK: { ! log.debug("received coord back from "+nodeB); ! ! double distance = respA.coord.distanceTo(respB.coord); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance, "Success"); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! String error = "Coord request to "+nodeB.toString(false) ! +" failed:"+ resultB.toString(); ! log.warn(error); ! cbDistance.call(resultB, new Double(0), error); ! } ! } ! } ! }); ! break; } case TIMEOUT: case ERROR: { ! String error = "Coord request to "+nodeA.toString(false) ! +" failed:"+ resultA.toString(); ! cbDistance.call(resultA, new Double(0), error); ! break; } } ! }}); } /* // LOWTODO PRP --- 223,305 ---- } ! void getRemoteOrLocalCoordinate (final AddressIF node, final Barrier barrier, ! final List<Coordinate> coordList, ! final CB2<Double,String> cbDistance) { ! if (node.equals(comm.getLocalAddress())) { ! coordList.add(getLocalCoord()); ! return; ! } ! ProxyClient proxyCoord = addr2proxyClient.get(node); ! if (proxyCoord != null) { ! coordList.add(proxyCoord.nc.getSystemCoords()); ! return; ! } ! // remote access ! barrier.fork(); comm.sendRequestMessage ! (new CoordRequestMsg(), node, new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult result, final CoordResponseMsg resp, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { case OK: { ! log.debug("received coord back from "+node); ! coordList.add(resp.coord); ! barrier.join(); break; } case TIMEOUT: case ERROR: { ! String error = "Coord request to "+node.toString(false) ! +" failed:"+ result.toString(); ! log.warn(error); ! // TODO ! // Test to see if this callback has already errored ! // due to the other call ! cbDistance.call(result, new Double(0), error); ! ! // PRP TODO should be be barrier.remove() ? ! barrier.join(); } } ! } ! }); ! } ! ! /** ! * Fetches coordinates from two nodes and returns ! * the distance between them. ! */ ! public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB2<Double,String> cbDistance) { ! log.debug ("estimateRTT a="+nodeA+" b="+nodeB); ! ! // TODO PRP true or false? ! final Barrier barrier = new Barrier(true); ! final List<Coordinate> coordList = new ArrayList<Coordinate>(); ! getRemoteOrLocalCoordinate(nodeA,barrier,coordList,cbDistance); ! getRemoteOrLocalCoordinate(nodeB,barrier,coordList,cbDistance); ! ! ! // TODO PRP this fn isn't found ! EventLoop.get().registerEventCB(barrier, new CB0() { ! protected void cb(CBResult result) { ! // after barrier is triggered ! ! // TODO test to see if an error condition in the fn ! // has already called the callback, ! // in which case we are done. ! ! // Otherwise, find the distance and return it to the caller ! ! double distance = coordList.get(0).distanceTo(coordList.get(1)); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance, "Success"); ! ! } ! }); } + /* // LOWTODO PRP |
|
From: Jonathan L. <le...@us...> - 2006-12-20 17:57:09
|
Update of /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7376/src/edu/harvard/syrah/pyxida/nc Modified Files: NCManager.java Log Message: does not compile -- problem with barrier in ncmanager Index: NCManager.java =================================================================== RCS file: /cvsroot/pyxida/Pyxida/src/edu/harvard/syrah/pyxida/nc/NCManager.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** NCManager.java 8 Dec 2006 16:52:09 -0000 1.26 --- NCManager.java 20 Dec 2006 17:47:06 -0000 1.27 *************** *** 12,15 **** --- 12,16 ---- import edu.harvard.syrah.sbon.async.Config; import edu.harvard.syrah.sbon.async.EventLoop; + import edu.harvard.syrah.sbon.async.*; import edu.harvard.syrah.sbon.async.CallbacksIF.CB0; import edu.harvard.syrah.sbon.async.CallbacksIF.CB1; *************** *** 222,279 **** } ! /** ! * Fetches coordinates from two nodes and returns ! * the distance between them. ! */ ! public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB2<Double,String> cbDistance) { ! log.debug ("estimateRTT a="+nodeA+" b="+nodeB); comm.sendRequestMessage ! (new CoordRequestMsg(), nodeA, new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult resultA, final CoordResponseMsg respA, ! AddressIF remoteAddrA, Long tsA) { ! switch (resultA.state) { case OK: { ! log.debug("received coord back from "+nodeA); ! ! comm.sendRequestMessage ! (new CoordRequestMsg(), nodeB, ! new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult resultB, final CoordResponseMsg respB, ! AddressIF remoteAddrB, Long tsB) { ! switch (resultB.state) { ! case OK: { ! log.debug("received coord back from "+nodeB); ! ! double distance = respA.coord.distanceTo(respB.coord); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance, "Success"); ! break; ! } ! case TIMEOUT: ! case ERROR: { ! String error = "Coord request to "+nodeB.toString(false) ! +" failed:"+ resultB.toString(); ! log.warn(error); ! cbDistance.call(resultB, new Double(0), error); ! } ! } ! } ! }); ! break; } case TIMEOUT: case ERROR: { ! String error = "Coord request to "+nodeA.toString(false) ! +" failed:"+ resultA.toString(); ! cbDistance.call(resultA, new Double(0), error); ! break; } } ! }}); } /* // LOWTODO PRP --- 223,305 ---- } ! void getRemoteOrLocalCoordinate (final AddressIF node, final Barrier barrier, ! final List<Coordinate> coordList, ! final CB2<Double,String> cbDistance) { ! if (node.equals(comm.getLocalAddress())) { ! coordList.add(getLocalCoord()); ! return; ! } ! ProxyClient proxyCoord = addr2proxyClient.get(node); ! if (proxyCoord != null) { ! coordList.add(proxyCoord.nc.getSystemCoords()); ! return; ! } ! // remote access ! barrier.fork(); comm.sendRequestMessage ! (new CoordRequestMsg(), node, new ObjCommRRCB<CoordResponseMsg>() { ! protected void cb(CBResult result, final CoordResponseMsg resp, ! AddressIF remoteAddr, Long ts) { ! switch (result.state) { case OK: { ! log.debug("received coord back from "+node); ! coordList.add(resp.coord); ! barrier.join(); break; } case TIMEOUT: case ERROR: { ! String error = "Coord request to "+node.toString(false) ! +" failed:"+ result.toString(); ! log.warn(error); ! // TODO ! // Test to see if this callback has already errored ! // due to the other call ! cbDistance.call(result, new Double(0), error); ! ! // PRP TODO should be be barrier.remove() ? ! barrier.join(); } } ! } ! }); ! } ! ! /** ! * Fetches coordinates from two nodes and returns ! * the distance between them. ! */ ! public void estimateRTT(final AddressIF nodeA, final AddressIF nodeB, ! final CB2<Double,String> cbDistance) { ! log.debug ("estimateRTT a="+nodeA+" b="+nodeB); ! ! // TODO PRP true or false? ! final Barrier barrier = new Barrier(true); ! final List<Coordinate> coordList = new ArrayList<Coordinate>(); ! getRemoteOrLocalCoordinate(nodeA,barrier,coordList,cbDistance); ! getRemoteOrLocalCoordinate(nodeB,barrier,coordList,cbDistance); ! ! ! // TODO PRP this fn isn't found ! EventLoop.get().registerEventCB(barrier, new CB0() { ! protected void cb(CBResult result) { ! // after barrier is triggered ! ! // TODO test to see if an error condition in the fn ! // has already called the callback, ! // in which case we are done. ! ! // Otherwise, find the distance and return it to the caller ! ! double distance = coordList.get(0).distanceTo(coordList.get(1)); ! log.debug("distance= "+distance); ! cbDistance.call(CBResult.OK(), distance, "Success"); ! ! } ! }); } + /* // LOWTODO PRP |
|
From: Jonathan L. <le...@us...> - 2006-12-20 16:42:44
|
Update of /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15221/web/javadoc/edu/harvard/syrah/pyxida Modified Files: Pyxida.html package-frame.html package-summary.html package-tree.html Log Message: web page updates Index: Pyxida.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/Pyxida.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Pyxida.html 5 Dec 2006 03:19:06 -0000 1.4 --- Pyxida.html 20 Dec 2006 16:42:40 -0000 1.5 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Mon Dec 04 15:48:59 EST 2006 --> <TITLE> Pyxida --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:31 EST 2006 --> <TITLE> Pyxida Index: package-frame.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/package-frame.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** package-frame.html 5 Dec 2006 03:19:06 -0000 1.4 --- package-frame.html 20 Dec 2006 16:42:40 -0000 1.5 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Mon Dec 04 15:49:00 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Index: package-summary.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/package-summary.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** package-summary.html 5 Dec 2006 03:19:06 -0000 1.4 --- package-summary.html 20 Dec 2006 16:42:40 -0000 1.5 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Mon Dec 04 15:49:00 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Index: package-tree.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/javadoc/edu/harvard/syrah/pyxida/package-tree.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** package-tree.html 5 Dec 2006 03:19:06 -0000 1.4 --- package-tree.html 20 Dec 2006 16:42:40 -0000 1.5 *************** *** 3,7 **** <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Mon Dec 04 15:49:00 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Class Hierarchy --- 3,7 ---- <HTML> <HEAD> ! <!-- Generated by javadoc (build 1.5.0_07) on Wed Dec 20 11:24:32 EST 2006 --> <TITLE> edu.harvard.syrah.pyxida Class Hierarchy |
|
From: Jonathan L. <le...@us...> - 2006-12-20 16:42:42
|
Update of /cvsroot/pyxida/Pyxida/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15221/web Modified Files: index.html release.sh Log Message: web page updates Index: index.html =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/index.html,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** index.html 8 Dec 2006 16:52:09 -0000 1.13 --- index.html 20 Dec 2006 16:42:39 -0000 1.14 *************** *** 145,150 **** <p> ! Pyxida can be used in two ways: as a "standalone" application ! and as a library that you build into your distributed application. <p> --- 145,153 ---- <p> ! Pyxida can be used in three ways: as a "standalone" application, ! as a library that you build into your distributed application, ! and as a service you query. The standalone application and ! the library are independent software artifacts; the service is ! an instance of the library running on PlanetLab. <p> *************** *** 162,165 **** --- 165,204 ---- to help them incorporate the library into their application. + <p><b>For users of the PlanetLab Service:</b></p> + Pyxida users who just want to query sets of network + coordinates from an existing system can access our + long-running PlanetLab Service using XML/RPC. While you can + build your own XML/RPC tool, + <a href="bin/query.pl">we provide one in perl for you to + download and use</a>. Note that this tool require the + Frontier::Client library to do its network communication; you + can install this library using CPAN. + + <p> + The query tool can: (a) ask a node for its current coordinate, + (b) ask a node for another node's coordinate, (c) ask for the + estimated latency between two nodes. You can find specifics + on running the tool by running it with no arguments + (<code>./query.pl</code>). + + Support for proxy coordinates will be added to the tool in the + future. In addition, we are creating a separate tool to + support the creation and deletion of proxy coordinates. + + <p> + Example of querying a node for its own coordinate:<BR> + query: <code>query.pl -l http://righthand.eecs.harvard.edu:55501</code><BR> + response: <code>[493.425 21.099 508.916 -200.796 h0.582]</code> + </code> + + <p> + Example of estimating inter-node latency:<BR> + query: <code>query.pl -a planetlab01.cs.washington.edu:55504 -b planetlab1.csail.mit.edu:55504 http://righthand.eecs.harvard.edu:55501</code><BR> + response: <code>178.520</code> + </code> + + <p>Note that we will be changing the path used to access the + service relatively soon. + <p><b>For users of the standalone version:</b></p> <ul> *************** *** 203,206 **** --- 242,246 ---- create a coordinate for a non-overlay node.</li> <li>add application-level coordinates for improved stability + <li>version of the library written in Python. </ul> Index: release.sh =================================================================== RCS file: /cvsroot/pyxida/Pyxida/web/release.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** release.sh 1 Dec 2006 16:48:19 -0000 1.1 --- release.sh 20 Dec 2006 16:42:39 -0000 1.2 *************** *** 4,7 **** --- 4,12 ---- cp ../dist/* dist + echo "Copy bin" + cp ../bin/*.pl bin + cp ../bin/*.pm bin + chmod 664 bin/* + echo "Generate Javadoc" javadoc -d javadoc/ `find ../src -name "*.java"` |