[snee] r1374 committed - commit that now fixes bugs involved with the unreliable agenda, and ov...

0 views
Skip to first unread message

sn...@googlecode.com

unread,
May 23, 2013, 10:34:42 AM5/23/13
to snee-...@googlegroups.com
Revision: 1374
Author: alan.bar...@gmail.com
Date: Thu May 23 06:57:19 2013
Log: commit that now fixes bugs involved with the unreliable agenda,
and overlay in the face of node failure with the channel model.

WORKS FOR ALL QUERY TYPES.
http://code.google.com/p/snee/source/detail?r=1374

Added:

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/TTX4-DemoNoiseTrace.txt

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/casino-lab.txt
Deleted:

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorDone/TTX4-DemoNoiseTrace.txt

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorDone/casino-lab.txt
Modified:

/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/RelibaleChannelClient.java

/branches/alan_2012_07_19_unreliableChannels/clients/successorClient/src/main/resources/etc/query-parameters.xml

/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/common/SNEEPropertyNames.java

/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/compiler/iot/IOT.java

/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/compiler/iot/InstanceFragment.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManagerImpl.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/executer/Executer.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/failednodestrategies/logicaloverlaynetwork/LogicalOverlayStrategy.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/Planner.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/CPMModel.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModel.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelSite.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/NoiseHash.java

/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/unreliablechannels/UnreliableChannelAgenda.java

=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/TTX4-DemoNoiseTrace.txt
Thu May 23 06:57:19 2013
File is too large to display a diff.
=======================================
--- /dev/null
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorchecks/casino-lab.txt
Thu May 23 06:57:19 2013
File is too large to display a diff.
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorDone/TTX4-DemoNoiseTrace.txt
Tue May 21 05:09:34 2013
+++ /dev/null
File is too large to display a diff.
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/resources/condorDone/casino-lab.txt
Tue May 21 05:09:34 2013
+++ /dev/null
File is too large to display a diff.
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/RelibaleChannelClient.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/clients/reliable-channel-client/src/main/java/uk/ac/manchester/snee/client/RelibaleChannelClient.java
Thu May 23 06:57:19 2013
@@ -40,9 +40,9 @@
{

private static String sep = System.getProperty("file.separator");
- private static int queryid =5;
+ private static int queryid =1;
protected static int testNo = 1;
- protected static int kResil = 5;
+ protected static int kResil = 4;
private static int max = 90;
private static File testFolder = new
File("src/main/resources/condorchecks");
private static File sneetestFolder = new File("condorchecks");
@@ -216,8 +216,9 @@
// {
//get query & schemas
// String currentQuery = queryIterator.next();
- // String currentQuery = "SELECT RSTREAM AVG(anow.x) as qx FROM A[NOW]
anow ;";
- String currentQuery = "SELECT RSTREAM anow.x as qx FROM A[NOW] anow ;";
+ // String currentQuery = "SELECT RSTREAM AVG(anow.x) as qx FROM A[NOW]
anow ;";
+ // String currentQuery = "SELECT RSTREAM anow.x as qx FROM A[NOW] anow,
B[NOW] bnow WHERE anow.x=bnow.x;";
+ String currentQuery = "SELECT RSTREAM anow.x as qx FROM A[NOW]
anow ;";
// String currentQuery = "SELECT RSTREAM anow.x as qx FROM A[NOW]
anow,(SELECT bnow.x as sq1x FROM B[NOW] bnow, C[NOW] cnow WHERE
bnow.x=cnow.x) sq1 WHERE anow.x=sq1.sq1x;";
// String currentQuery = "SELECT RSTREAM sq1.sq1x as qx FROM (SELECT
anow.x as sq1x FROM A[NOW] anow, B[NOW] bnow WHERE anow.x=bnow.x) sq1,
(SELECT cnow.x as sq2x FROM C[NOW] cnow, D[NOW] dnow WHERE cnow.x=dnow.x)
sq2 WHERE sq1.sq1x=sq2.sq2x;";

@@ -280,6 +281,9 @@

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_INITILISE_FRAMEWORKS, "FALSE");

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_K_ACTIVE_LEVEL, "2");

SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_RESILIENTLEVEL, "2");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_TEST_LOGICAL_EDGES, "FALSE");
+
SNEEProperties.setSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_NOISEMODEL, "src/main/resources/condorchecks/casino-lab.txt");
+

control.addQuery(_query, _queryParams, new Long(0), new Double(1.0));
getController().close();
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/clients/successorClient/src/main/resources/etc/query-parameters.xml
Mon Aug 13 07:09:14 2012
+++
/branches/alan_2012_07_19_unreliableChannels/clients/successorClient/src/main/resources/etc/query-parameters.xml
Thu May 23 06:57:19 2013
@@ -17,8 +17,8 @@
<units>SECONDS</units>
<constraint>
<range>
- <min-val>20</min-val>
- <max-val>20</max-val>
+ <min-val>10</min-val>
+ <max-val>10</max-val>
</range>
</constraint>
<weighting>1</weighting>
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/common/SNEEPropertyNames.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/common/SNEEPropertyNames.java
Thu May 23 06:57:19 2013
@@ -332,6 +332,8 @@
public static final String WSN_MANAGER_SUCCESSOR_NODE_FAILURES
= "wsn_manager.successor_nodeFailureCount";

public static final String WSN_MANAGER_K_ACTIVE_LEVEL
= "wsn_manager.executor.edge.activeLevel";
+
+ public static final String
WSN_MANAGER_UNRELIABLE_CHANNELS_TEST_LOGICAL_EDGES
= "wsn_manager.executor.edge.logical.Edges";

}

=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/compiler/iot/IOT.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/compiler/iot/IOT.java
Thu May 23 06:57:19 2013
@@ -1117,4 +1117,26 @@
operatorList.add(instanceOperator);
}
}
+
+
+ public void updateSiteMapping(String equivilentNodeID)
+ {
+ Iterator<InstanceFragment> fragIterator = this.fragments.iterator();
+ Site site = this.getSiteFromID(equivilentNodeID);
+ while(fragIterator.hasNext())
+ {
+ InstanceFragment frag = fragIterator.next();
+ if(frag.getSite().getID().equals(equivilentNodeID))
+ {
+ Iterator<InstanceOperator> fragOps = frag.operators.iterator();
+ while(fragOps.hasNext())
+ {
+ InstanceOperator op = fragOps.next();
+ this.siteToOpInstMap.addWithDuplicates(site, op);
+ }
+
this.siteToOpInstMap.addWithDuplicates(site,frag.getParentExchangeOperator());
+ }
+ }
+
+ }
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/compiler/iot/InstanceFragment.java
Mon Nov 26 08:59:46 2012
+++
/branches/alan_2012_07_19_unreliableChannels/snee-core/src/main/java/uk/ac/manchester/cs/snee/compiler/iot/InstanceFragment.java
Thu May 23 06:57:19 2013
@@ -539,5 +539,9 @@
return null;
}

+ public String toString()
+ {
+ return fragID + "-" + this.site.getID();
+ }

}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManagerImpl.java
Thu May 2 05:06:41 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/AutonomicManagerImpl.java
Thu May 23 06:57:19 2013
@@ -602,6 +602,7 @@
{
planner.updateStorageLocation(outputFolder);
planner.startUnreliableChannelStrategy((SensorNetworkQueryPlan) qep,
seed, distanceConverter);
+ System.exit(0);
}

}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/executer/Executer.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/executer/Executer.java
Thu May 23 06:57:19 2013
@@ -398,24 +398,41 @@

Cloner cloner = new Cloner();
cloner.dontClone(Logger.class);
-
RobustSensorNetworkQueryPlan ClonedrQEP = cloner.deepClone(rQEP);
- this.runningSites = manager.getCopyOfRunningSites();
- double overallQEPShortestLifetime =
calculateOverallQEPShortestLifetime(qep, robustFolder, seed, rQEP);
- this.runningSites = manager.getCopyOfRunningSites();
- this.network = manager.getWsnTopology();
- double overallRQEPShortestLifetime =
calculateOverallRQEPShortestLifetime(ClonedrQEP, robustFolder, seed);
+ double overallShortestLifetime = 0.0;
+ boolean runLogicalEdges =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_UNRELIABLE_CHANNELS_TEST_LOGICAL_EDGES);
+ if(runLogicalEdges)
+ {
+ this.runningSites = manager.getCopyOfRunningSites();
+ overallShortestLifetime = calculateOverallQEPShortestLifetime(qep,
robustFolder, seed, rQEP);
+ }
+ else
+ {
+ this.runningSites = manager.getCopyOfRunningSites();
+ this.network = manager.getWsnTopology();
+ overallShortestLifetime =
calculateOverallRQEPShortestLifetime(ClonedrQEP, robustFolder, seed);
+ }

String queryid = manager.getQueryID();
DecimalFormat format = new DecimalFormat("#.##");
- double overallQEPShortestLifetimeA = overallQEPShortestLifetime /
(rQEP.getUnreliableAgenda().getDeliveryTime_ms() / 1000);
- double overallRQEPShortestLifetimeA = overallRQEPShortestLifetime /
(rQEP.getUnreliableAgenda().getDeliveryTime_ms() / 1000);
- System.out.println(queryid + " " +
format.format(overallQEPShortestLifetimeA) + " " +
format.format(overallRQEPShortestLifetimeA));
+
+ double overallShortestLifetimeA = overallShortestLifetime /
(rQEP.getUnreliableAgenda().getDeliveryTime_ms() / 1000);
+ if(runLogicalEdges)
+ System.out.println(queryid + " " + "L" + " " +
format.format(overallShortestLifetimeA));
+ else
+ System.out.println(queryid + " " + "N" + " " +
format.format(overallShortestLifetimeA));
+
BufferedWriter out = new BufferedWriter(new FileWriter(new
File(this.executerOutputFolder.toString() + sep + "lifetimes")));
- out.write(queryid + " " + format.format(overallQEPShortestLifetimeA)
+ " " + format.format(overallRQEPShortestLifetimeA));
+ if(runLogicalEdges)
+ out.write(queryid + " " + "L" + " "+
format.format(overallShortestLifetimeA));
+ else
+ out.write(queryid + " " + "N" + " "+
format.format(overallShortestLifetimeA));
out.flush();
out.close();
- return new Storage(overallRQEPShortestLifetime,
overallQEPShortestLifetime);
+ if(runLogicalEdges)
+ return new Storage(overallShortestLifetime, 0.0);
+ else
+ return new Storage(0.0, overallShortestLifetime);
}


@@ -440,6 +457,7 @@
IOException, SNEEConfigurationException, CodeGenerationException
{
boolean alive = true;
+ boolean first = true;
network = manager.getWsnTopology();
ArrayList<String> globalFailedNodes = new ArrayList<String>();
double overallQEPShortestLifetime = 0;
@@ -500,6 +518,12 @@
}
}
}
+
+ if(first)
+ {
+ System.out.println("static lifetime = " + shortestLifetime);
+ first = false;
+ }

//update runtimeSites energy levels
updateSitesEnergyLevels(shortestLifetime, globalFailedNodes);
@@ -610,6 +634,8 @@
overallRQEPShortestLifetime += (shortestLifetime * agendaLength);
globalFailedNodes.add(failedSite);
System.out.println("node " + failedSite);
+ if(failedSite.equals("52"))
+ System.out.println();
if(rQEP.getLogicalOverlayNetwork().canAdapt(failedSite, rQEP))
{
System.out.println("adapting");
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/failednodestrategies/logicaloverlaynetwork/LogicalOverlayStrategy.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/failednodestrategies/logicaloverlaynetwork/LogicalOverlayStrategy.java
Thu May 23 06:57:19 2013
@@ -600,6 +600,7 @@
new LogicalOverlayNetworkUtils().exportAsADotFile(clonedIOT,
overlay, localFolder.toString() + sep + "iot with overlay after nodes");
overlay.updateClusters(failedNodeID, equivilentNodeID);
cleanNodes(clonedIOT, failedNodeID);
+ clonedIOT.updateSiteMapping(equivilentNodeID);
}
else
{
@@ -611,6 +612,7 @@
if(equivilentNodeID != null)
{
overlay.updateClusters(failedNodeID, equivilentNodeID);
+ clonedIOT.updateSiteMapping(equivilentNodeID);
}
else
{
@@ -628,10 +630,10 @@
{
IOT newIOT = clonedIOT;
newIOT.setID("new iot");
- IOTUtils utils = new IOTUtils(newIOT,
currentQEP.getCostParameters());
- utils.disconnectExchanges();
+ // IOTUtils utils = new IOTUtils(newIOT,
currentQEP.getCostParameters());
+ //utils.disconnectExchanges();
// newIOT.setDAF(utils.convertToDAF());
- utils.reconnectExchanges();
+ // utils.reconnectExchanges();
new IOTUtils(clonedIOT,
overlay.getQep().getCostParameters()).exportAsDotFileWithFrags(localFolder.toString()
+ sep + "iotAfterReconnect", "iot with eqiv nodes", true);
//new
DAFUtils(newIOT.getDAF()).exportAsDotFile(localFolder.toString() + sep
+ "daf");
new LogicalOverlayNetworkUtils().exportAsADotFile(clonedIOT,
overlay, localFolder.toString() + sep + "iot with overlay after disconnect
and reconnect");
@@ -679,7 +681,6 @@
return adapatation;
}

-
//helper method which removes failednode from other nodes outputs (due
to unreliablechannel connecting)
private void cleanNodes(IOT clonedIOT, String failedNodeID)
{
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/Planner.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/Planner.java
Thu May 23 06:57:19 2013
@@ -474,7 +474,6 @@
// this._metadataManager.getCostParameters());

boolean runTupleSim =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_TUPLES);
- runTupleSim = false;
if(runTupleSim)
{
manager.simulateRunOfRQEP(rQEP, qep, seed, distanceConverter);
@@ -483,7 +482,6 @@
// assessor.assessOverlayChoice(storage, runningSites,
rQEP.getLogicalOverlayNetwork(),
// local, channelModel);
boolean runLifeSim =
SNEEProperties.getBoolSetting(SNEEPropertyNames.WSN_MANAGER_EXECUTOR_EDGE_LIFE);
- runLifeSim = true;
if(runLifeSim)
{
Storage storage =
manager.calculateLifetimeDifferenceFromDeployments(rQEP, qep, seed,
distanceConverter);
@@ -493,6 +491,7 @@
System.out.println("new lifetime = " +
(storage.getNaiveLifetime() /
(rQEP.getUnreliableAgenda().getDeliveryTime_ms() / 1000)));
+
}
return rQEP;
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/CPMModel.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/CPMModel.java
Thu May 23 06:57:19 2013
@@ -207,7 +207,11 @@
doHashStuff(noiseNode, localHash);
else if(localHash != null && globalHash != null)
{
- combineHashes(localHash, globalHash);
+ if(!localHash.isCombined())
+ {
+ combineHashes(localHash, globalHash);
+ localHash.setCombined(true);
+ }
doHashStuff(noiseNode, localHash);
}
else if(localHash == null && globalHash == null)
@@ -224,6 +228,7 @@
private void combineHashes(NoiseHash localHash, NoiseHash globalHash)
{
Iterator<Integer> elementIterator =
globalHash.getElements().iterator();
+ System.out.println(globalHash.getNumElements());
while(elementIterator.hasNext())
{
Integer element = elementIterator.next();
@@ -561,8 +566,12 @@

if(stag)
{
- newIndex = random.nextInt(NoiseModelConstants.NOISE_BIN_SIZE);
- noise = this.search_noise_from_bin_value(newIndex);
+ newIndex = random.nextInt(node.getNoiseTable().keySet().size());
+ ArrayList<String> keys = new ArrayList<String>();
+ keys.addAll(node.getNoiseTable().keySet());
+ int element =
node.getNoiseTable().get(keys.get(newIndex)).getElements().get(0);
+ int binValue = this.search_bin_num(element);
+ noise = this.search_noise_from_bin_value(binValue);
}
else
{
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModel.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModel.java
Thu May 23 06:57:19 2013
@@ -555,6 +555,8 @@
while(siteIDIterator.hasNext())
{
String siteID = siteIDIterator.next();
+ if(siteID.equals("50"))
+ System.out.println();
Integer siteIDInt = Integer.parseInt(siteID);
String clusterHeadID =
logicaloverlayNetwork.getClusterHeadFor(siteID);
if(logicaloverlayNetwork.getQep().getRT().getSite(clusterHeadID) ==
null)
@@ -655,6 +657,8 @@
{
//siblings only receive packets from cluster head and other
siblings
Site clusterHeadSite = this.agenda.getSiteByID(clusterHeadID);
+ if(this.agenda.getTransmissionTask(clusterHeadSite) == null)
+ System.out.println();
int packetsTransmittedByClusterHead =

this.agenda.getTransmissionTask(clusterHeadSite).getMaxPacektsTransmitted();
expectedPackets.put(clusterHeadID,
packetsTransmittedByClusterHead);
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelSite.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/ChannelModelSite.java
Thu May 23 06:57:19 2013
@@ -125,6 +125,8 @@
public void recivedInputPacket(String source, int packetID)
{
ArrayList<Boolean> packets = arrivedPackets.get(source);
+ if(packets == null)
+ System.out.println();
if(packetID -1 < packets.size())
{
arrivedPackets.remove(source);
@@ -599,17 +601,18 @@
* have been lost to create said aggregation result.
* If the agg operator is a eval op, it prints it to a file within the
output folder for future stores.
* @param op
+ * @param iot
* @throws TypeMappingException
* @throws SchemaMetadataException
*/
- private void checkAggregationTupleTracker(InstanceOperator op)
+ private void checkAggregationTupleTracker(InstanceOperator op, IOT iot)
throws SchemaMetadataException, TypeMappingException
{
HashMapList<Integer, Boolean> currentSitesTracker =
ChannelModelSite.aggregationTupleTracker.get(op.getSite().getID());
if(currentSitesTracker == null)
currentSitesTracker = new HashMapList<Integer, Boolean>();
- HashMap<String, ArrayList<Boolean>> reducedArrivedpackets =
reduceArrivedPackets(op.getSite(), this.arrivedPackets);
+ HashMap<String, ArrayList<Boolean>> reducedArrivedpackets =
reduceArrivedPackets(iot.getSiteFromID(op.getSite().getID()),
this.arrivedPackets);
InstanceOperator firstInput = (InstanceOperator) op.getInput(0);
if(op.getSensornetOperator() instanceof SensornetAggrEvalOperator &&
firstInput.getSensornetOperator() instanceof
SensornetAggrMergeOperator)
@@ -660,8 +663,10 @@
Site trueInputSite = inputSite;
if(!found)
{
- do
+ while(trueInputSite.getInputsList().size() < 2 && !found &&
trueInputSite.getInputsList().size() > 0)
{
+ if(trueInputSite.getInputsList().size() == 0)
+ System.out.println();
trueInputSite = (Site) trueInputSite.getInputsList().get(0);
siteOps =
this.overlayNetwork.getQep().getIOT().getOpInstances(trueInputSite).iterator();
while(siteOps.hasNext() && !found)
@@ -673,7 +678,6 @@
acqOperatorFound = true;
}
}
- while(trueInputSite.getInputsList().size() < 2 && !found &&
trueInputSite.getInputsList().size() > 0);
}

String inputNodeID = inputSite.getID();
@@ -688,11 +692,13 @@
{
Boolean recieved = receivedPacketIterator.next();
int oldtupleRatio = tupleRatio;
- if(op == null || op.getLastPacketTupleCount() == null)
- System.out.println();
+
if(counter == receivedPackets.size() -1)
{
- tupleRatio = op.getLastPacketTupleCount();
+ if(op.getLastPacketTupleCount() == null)
+ tupleRatio = 0;
+ else
+ tupleRatio = op.getLastPacketTupleCount();
}
for(int index = 1; index <= tupleRatio; index++)
{
@@ -709,22 +715,25 @@
{
HashMapList<Integer, Boolean> inputSitesTracker =

ChannelModelSite.aggregationTupleTracker.get(inputSite.getID());
- Iterator<Integer> keys =
inputSitesTracker.keySet().iterator();
- while(keys.hasNext())
+ if(inputSitesTracker != null)
{
- Integer key = keys.next();
- ArrayList<Boolean> bools = inputSitesTracker.get(key);
- Iterator<Boolean> boolIterator = bools.iterator();
- ArrayList<Boolean> receivedPackets =
reducedArrivedpackets.get(inputSite.getID());
- Iterator<Boolean> receivedPacketIterator =
receivedPackets.iterator();
- while(receivedPacketIterator.hasNext())
+ Iterator<Integer> keys =
inputSitesTracker.keySet().iterator();
+ while(keys.hasNext())
{
- Boolean recieved = receivedPacketIterator.next();
- if(recieved)
+ Integer key = keys.next();
+ ArrayList<Boolean> bools = inputSitesTracker.get(key);
+ Iterator<Boolean> boolIterator = bools.iterator();
+ ArrayList<Boolean> receivedPackets =
reducedArrivedpackets.get(inputSite.getID());
+ Iterator<Boolean> receivedPacketIterator =
receivedPackets.iterator();
+ while(receivedPacketIterator.hasNext())
{
- while(boolIterator.hasNext())
+ Boolean recieved = receivedPacketIterator.next();
+ if(recieved)
{
- currentSitesTracker.addWithDuplicates(key,
boolIterator.next());
+ while(boolIterator.hasNext())
+ {
+ currentSitesTracker.addWithDuplicates(key,
boolIterator.next());
+ }
}
}
}
@@ -734,22 +743,27 @@
{
HashMapList<Integer, Boolean> inputSitesTracker =

ChannelModelSite.aggregationTupleTracker.get(trueInputSite.getID());
- Iterator<Integer> keys =
inputSitesTracker.keySet().iterator();
- while(keys.hasNext())
+ if(inputSitesTracker != null)
{
- Integer key = keys.next();
- ArrayList<Boolean> bools = inputSitesTracker.get(key);
- Iterator<Boolean> boolIterator = bools.iterator();
- ArrayList<Boolean> receivedPackets =
reducedArrivedpackets.get(inputSite.getID());
- Iterator<Boolean> receivedPacketIterator =
receivedPackets.iterator();
- while(receivedPacketIterator.hasNext())
+ Iterator<Integer> keys =
inputSitesTracker.keySet().iterator();
+ while(keys.hasNext())
{
- Boolean recieved = receivedPacketIterator.next();
- if(recieved)
+ Integer key = keys.next();
+ ArrayList<Boolean> bools = inputSitesTracker.get(key);
+ Iterator<Boolean> boolIterator = bools.iterator();
+ ArrayList<Boolean> receivedPackets =
reducedArrivedpackets.get(inputSite.getID());
+ if(receivedPackets == null)
+ System.out.println();
+ Iterator<Boolean> receivedPacketIterator =
receivedPackets.iterator();
+ while(receivedPacketIterator.hasNext())
{
- while(boolIterator.hasNext())
+ Boolean recieved = receivedPacketIterator.next();
+ if(recieved)
{
- currentSitesTracker.addWithDuplicates(key,
boolIterator.next());
+ while(boolIterator.hasNext())
+ {
+ currentSitesTracker.addWithDuplicates(key,
boolIterator.next());
+ }
}
}
}
@@ -778,40 +792,43 @@
String child = inputPacketKeys.next().getID();
ArrayList<Boolean> packets = arrivedPackets.get(child);
ArrayList<Boolean> reducedPackets = new ArrayList<Boolean>();
- Iterator<Boolean> packetIterator = packets.iterator();
- int counter = 0;
- while(packetIterator.hasNext())
+ if(packets != null)
{
- Boolean packetRecieved = packetIterator.next();
- if(!packetRecieved)
+ Iterator<Boolean> packetIterator = packets.iterator();
+ int counter = 0;
+ while(packetIterator.hasNext())
{
- Iterator<String> EquivNodes =
- this.overlayNetwork.getActiveNodesInRankedOrder(
- this.overlayNetwork.getClusterHeadFor(child)).iterator();
- boolean found = false;
- boolean updated = false;
- while(EquivNodes.hasNext() && !updated)
+ Boolean packetRecieved = packetIterator.next();
+ if(!packetRecieved)
{
- String EquivNode = EquivNodes.next();
- ArrayList<Boolean> equivPackets =
arrivedPackets.get(EquivNode);
- if(equivPackets.size() > counter && equivPackets.get(counter))
+ Iterator<String> EquivNodes =
+ this.overlayNetwork.getActiveNodesInRankedOrder(
+ this.overlayNetwork.getClusterHeadFor(child)).iterator();
+ boolean found = false;
+ boolean updated = false;
+ while(EquivNodes.hasNext() && !updated)
{
- reducedPackets.add(true);
- updated = true;
+ String EquivNode = EquivNodes.next();
+ ArrayList<Boolean> equivPackets =
arrivedPackets.get(EquivNode);
+ if(equivPackets.size() > counter &&
equivPackets.get(counter))
+ {
+ reducedPackets.add(true);
+ updated = true;
+ }
+ }
+ if(!found)
+ {
+ reducedPackets.add(false);
}
}
- if(!found)
+ else
{
- reducedPackets.add(false);
+ reducedPackets.add(true);
}
+ counter++;
}
- else
- {
- reducedPackets.add(true);
- }
- counter++;
+ reducedArrivePackets.put(child, reducedPackets);
}
- reducedArrivePackets.put(child, reducedPackets);
}
return reducedArrivePackets;
}
@@ -1407,7 +1424,7 @@
if(op.getSensornetOperator() instanceof SensornetAggrMergeOperator ||
op.getSensornetOperator() instanceof SensornetAggrEvalOperator)
{
- checkAggregationTupleTracker(op);
+ checkAggregationTupleTracker(op, overlayNetwork.getQep().getIOT());
}
if(op.getSensornetOperator() instanceof SensornetDeliverOperator)
finishTracking(op);
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/NoiseHash.java
Fri Nov 16 09:12:22 2012
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/costbenifitmodel/model/channel/NoiseHash.java
Thu May 23 06:57:19 2013
@@ -12,7 +12,7 @@
private ArrayList<Integer> elements = new ArrayList<Integer>();
private boolean flag = false;
private ArrayList<Double> dist = new
ArrayList<Double>(NoiseModelConstants.NOISE_NUM_VALUES);
-
+ private boolean combined = false;
/**
* constructor
*/
@@ -106,15 +106,31 @@

public void addElement(Integer noiseValue)
{
+ try{
if(this.numElements == this.size)
{
- for(int index = 0; index < size; index++)
+ for(int index = 0; index < 10; index++)
{
elements.add(0);
}
- size = size *2;
+ size = size + 10;
}
elements.set(numElements, noiseValue);
numElements++;
+ }
+ catch(Exception e)
+ {
+ System.out.println(numElements);
+ }
+ }
+
+ public void setCombined(boolean combined)
+ {
+ this.combined = combined;
+ }
+
+ public boolean isCombined()
+ {
+ return combined;
}
}
=======================================
---
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/unreliablechannels/UnreliableChannelAgenda.java
Tue May 21 05:09:34 2013
+++
/branches/alan_2012_07_19_unreliableChannels/snee-wsn-manager/src/main/java/uk/ac/manchester/cs/snee/manager/planner/unreliablechannels/UnreliableChannelAgenda.java
Thu May 23 06:57:19 2013
@@ -4,6 +4,7 @@
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;

import uk.ac.manchester.cs.snee.SNEEException;
import uk.ac.manchester.cs.snee.common.SNEEConfigurationException;
@@ -16,6 +17,7 @@
import uk.ac.manchester.cs.snee.compiler.iot.InstanceExchangePart;
import uk.ac.manchester.cs.snee.compiler.iot.InstanceFragment;
import uk.ac.manchester.cs.snee.compiler.iot.InstanceFragmentTask;
+import uk.ac.manchester.cs.snee.compiler.iot.InstanceOperator;
import uk.ac.manchester.cs.snee.compiler.AgendaLengthException;
import uk.ac.manchester.cs.snee.compiler.queryplan.CommunicationTask;
import uk.ac.manchester.cs.snee.compiler.queryplan.DAF;
@@ -168,11 +170,13 @@
while(routingTreeIterator.hasNext())
{
Node rtNode = routingTreeIterator.next();
- if(rtNode.getInputsList().contains(rtSite))
+ if(isContained(rtNode.getInputsList(), rtSite))
rtSite.addOutput(rtNode);
}
System.out.println();
}
+ if(rtSite.getOutputsList().size() == 0)
+ System.out.println();
//deal with children links
Site outputSite = (Site) rtSite.getOutput(0);
Iterator<String> eqivNodesIdIterator =
@@ -207,6 +211,18 @@
}

}
+
+ private boolean isContained(List<Node> inputsList, Site rtSite)
+ {
+ Iterator<Node> inputIterator = inputsList.iterator();
+ while(inputIterator.hasNext())
+ {
+ Node input = inputIterator.next();
+ if(input.getID().equals(rtSite.getID()))
+ return true;
+ }
+ return false;
+ }

private boolean doesContainOutput(Site rtSite, Site equivSite)
{
@@ -404,20 +420,23 @@
{
final HashSet<InstanceExchangePart> tuplesToSend =
new HashSet<InstanceExchangePart>();
- final Iterator<InstanceExchangePart> exchCompIter =
- iot.getExchangeOperatorsThoughSiteMapping(currentNode).iterator();
+ final Iterator<InstanceOperator> exchCompIter =
iot.getOpInstances(currentNode).iterator();//.getOpInstancesInSpecialOrder(currentNode).iterator();
// iot.getExchangeOperatorsThoughSiteMapping(currentNode).iterator();
// iot.getExchangeOperatorsThoughInputs(currentNode).iterator();
/*locates any exchanges and creates a communication task between
current node and
parent node*/
while (exchCompIter.hasNext())
{
- final InstanceExchangePart exchComp = exchCompIter.next();
- if ((exchComp.getComponentType() == ExchangePartType.PRODUCER &&
- !exchComp.getNext().getSite().getID().equals(exchComp.getSite().getID()))
- || (exchComp.getComponentType() == ExchangePartType.RELAY &&
- !exchComp.getNext().getSite().getID().equals(exchComp.getSite().getID())))
+ InstanceOperator op = exchCompIter.next();
+ if(op instanceof InstanceExchangePart)
{
- tuplesToSend.add(exchComp);
+ final InstanceExchangePart exchComp = (InstanceExchangePart) op;
+ if ((exchComp.getComponentType() == ExchangePartType.PRODUCER &&
+ !exchComp.getNext().getSite().getID().equals(exchComp.getSite().getID()))
+ || (exchComp.getComponentType() == ExchangePartType.RELAY &&
+ !exchComp.getNext().getSite().getID().equals(exchComp.getSite().getID())))
+ {
+ tuplesToSend.add(exchComp);
+ }
}
}
if (tuplesToSend.size() > 0)
@@ -453,12 +472,12 @@
Long startTime = handleTranmissions(sourceNode, tuplesToSend, false);
handleRecieves(sourceNode, tuplesToSend, startTime, false);
handelAcks(sourceNode, physicalNodesForlogicalNode, false);
- Site destNode = (Site) sourceNode.getOutput(0);
+ Site destNode = (Site)
this.iot.getRT().getSite(this.activeOverlay.getClusterHeadFor(sourceNode.getOutput(0).getID()));
destNode = iot.getSiteFromID(destNode.getID());
for(int cycle = 1; cycle <= numberOfRundundantCycles; cycle++)
{
handelRedundantTransmissions(destNode, sourceNode,
physicalNodesForlogicalNode, tuplesToSend, cycle);
- this.activeOverlay.updatePriority(sourceNode.getID());
+ //this.activeOverlay.updatePriority(sourceNode.getID());
}
logger.trace("Scheduled Communication task from node "
+ sourceNode.getID() + " to nodes " + destNodes.toString()
@@ -555,7 +574,7 @@
throws OptimizationException, SchemaMetadataException,
TypeMappingException
{
//get source node (actually the dest ndoe of the original transmission)
- Site sourceSite =
this.iot.getSiteFromID(sourceNode.getOutput(0).getID());
+ Site sourceSite =
this.iot.getSiteFromID(this.activeOverlay.getClusterHeadFor(sourceNode.getOutput(0).getID()));
Long startTimeForAck = this.getLength_bms(true);

//sort out child logical ndoe collection
@@ -612,7 +631,7 @@
throws OptimizationException, SchemaMetadataException,
TypeMappingException
{
//sort out direct comms.
- Site destNode = (Site) sourceNode.getOutput(0);
+ Site destNode = (Site)
this.iot.getRT().getSite(this.activeOverlay.getClusterHeadFor(sourceNode.getOutput(0).getID()));
destNode = iot.getSiteFromID(destNode.getID());
final CommunicationTask commTaskRx =
new CommunicationTask(startTime, sourceNode,
destNode,CommunicationTask.RECEIVE,
@@ -636,7 +655,9 @@
throws OptimizationException, SchemaMetadataException,
TypeMappingException
{
//sorts out the tranmission of the cluster head
- Site destNode = (Site) sourceNode.getOutput(0);
+ Site destNode = (Site)
this.iot.getRT().getSite(this.activeOverlay.getClusterHeadFor(sourceNode.getOutput(0).getID()));
+ if(destNode == null)
+ System.out.println();
destNode = iot.getSiteFromID(destNode.getID());
final long startTime = this.getLength_bms(true);
final CommunicationTask commTaskTx =
@@ -699,8 +720,9 @@
throws AgendaException, OptimizationException, SNEEException,
SchemaMetadataException, SNEEConfigurationException
{
- final Iterator<InstanceFragment> fragIter =
- iot.instanceFragmentIterator(TraversalOrder.POST_ORDER);
+ final Iterator<InstanceFragment> fragIter =
iot.getInstanceFragments().iterator();
+ // final Iterator<InstanceFragment> fragIter =
+ // iot.instanceFragmentIterator(TraversalOrder.POST_ORDER);
Long overhead = new Long(0);
while (fragIter.hasNext())
{
Reply all
Reply to author
Forward
0 new messages