fixed: incorrect logging of feed activity details
diff --git a/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java b/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java
index ed97117..c087bd1 100644
--- a/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java
+++ b/asterix-algebra/src/main/java/edu/uci/ics/asterix/optimizer/rules/UnnestToDataScanRule.java
@@ -135,7 +135,7 @@
String feedArg = getStringArgument(f, 0);
String outputType = getStringArgument(f, 1);
- String targetDataset = getStringArgument(f, 1);
+ String targetDataset = getStringArgument(f, 2);
AqlMetadataProvider metadataProvider = (AqlMetadataProvider) context.getMetadataProvider();
Pair<String, String> feedReference = parseDatasetReference(metadataProvider, feedArg);
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDashboardServlet.java b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDashboardServlet.java
index 78bb8bc..f044ac5 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDashboardServlet.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDashboardServlet.java
@@ -21,10 +21,7 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
-import java.net.Socket;
-import java.nio.CharBuffer;
import java.util.Map;
-import java.util.concurrent.LinkedBlockingQueue;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -34,16 +31,13 @@
import javax.servlet.http.HttpServletResponse;
import edu.uci.ics.asterix.common.exceptions.ACIDException;
-import edu.uci.ics.asterix.hyracks.bootstrap.FeedLifecycleListener;
import edu.uci.ics.asterix.metadata.MetadataException;
import edu.uci.ics.asterix.metadata.MetadataManager;
import edu.uci.ics.asterix.metadata.MetadataTransactionContext;
-import edu.uci.ics.asterix.metadata.entities.Feed;
import edu.uci.ics.asterix.metadata.entities.FeedActivity;
import edu.uci.ics.asterix.metadata.entities.FeedActivity.FeedActivityDetails;
import edu.uci.ics.asterix.metadata.entities.FeedActivity.FeedActivityType;
import edu.uci.ics.asterix.metadata.feeds.FeedConnectionId;
-import edu.uci.ics.asterix.metadata.feeds.RemoteSocketMessageListener;
public class FeedDashboardServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@@ -96,7 +90,6 @@
String feedName = request.getParameter("feed");
String datasetName = request.getParameter("dataset");
String dataverseName = request.getParameter("dataverse");
- String ingestLocations = request.getParameter("ingestLocations");
FeedConnectionId feedId = new FeedConnectionId(dataverseName, feedName, datasetName);
@@ -119,6 +112,7 @@
LOGGER.info(" Super Feed Maanger address :" + host + "[" + port + "]");
}
+ String ingestLocations = activityDetails.get(FeedActivityDetails.INGEST_LOCATIONS);
String computeLocations = activityDetails.get(FeedActivityDetails.COMPUTE_LOCATIONS);
String storageLocations = activityDetails.get(FeedActivityDetails.STORAGE_LOCATIONS);
String ingestionPolicy = activityDetails.get(FeedActivityDetails.FEED_POLICY_NAME);
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDataProviderServlet.java b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDataProviderServlet.java
index 71d57d7..a032db4 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDataProviderServlet.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedDataProviderServlet.java
@@ -114,7 +114,7 @@
obj = null;
}
} catch (Exception e) {
- e.printStackTrace();
+ // ignore
}
return obj;
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedServlet.java b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedServlet.java
index 65b057f..546ff4f 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedServlet.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/api/http/servlet/FeedServlet.java
@@ -101,13 +101,11 @@
for (FeedActivity feedActivity : lfa) {
feedId = new FeedConnectionId(feedActivity.getDataverseName(), feedActivity.getFeedName(),
feedActivity.getDatasetName());
- String ingestLocations = feedActivity.getFeedActivityDetails().get(
- FeedActivityDetails.INGEST_LOCATIONS);
ldStr.append("<br />");
ldStr.append("<br />");
ldStr.append("<a href=\"/feed/dashboard?dataverse=" + feedActivity.getDataverseName() + "&feed="
- + feedActivity.getFeedName() + "&dataset=" + feedActivity.getDatasetName()
- + "&ingestLocations=" + ingestLocations + "\">" + feedId + "</a>");
+ + feedActivity.getFeedName() + "&dataset=" + feedActivity.getDatasetName() + "\">" + feedId
+ + "</a>");
ldStr.append("<br />");
}
diff --git a/asterix-app/src/main/resources/feed/dashboard.html b/asterix-app/src/main/resources/feed/dashboard.html
index 365f2f5..97a8576 100644
--- a/asterix-app/src/main/resources/feed/dashboard.html
+++ b/asterix-app/src/main/resources/feed/dashboard.html
@@ -67,8 +67,8 @@
function initTimeline(ingestLocations) {
- document.write("<i>" + "Feed Ingestion" + "<i>");
- document.write("<br />" + "Ingestion Locations: " + computeLocations);
+ document.write("<i>" + "Feed Ingestion" + " " + "<i>");
+ document.write("<br />" + "Ingestion Locations: " + ingestLocations);
document.write("<br />" + "Compute Locations: " + computeLocations);
document.write("<br />" + "Storage Locations: " + storageLocations);
document.write("<br />" + "Ingestion Policy: " + ingestionPolicy);
@@ -103,7 +103,7 @@
}
function drawChart(chartName, ingestionTimeSeries) {
- var ingestionChart = new SmoothieChart({ minValue:0, millisPerPixel: 20, grid: { strokeStyle: '#555555', lineWidth: 1, millisPerLine: 1000, verticalSections: 4 }});
+ var ingestionChart = new SmoothieChart({ minValue:0, millisPerPixel: 20, grid: { strokeStyle: '#555555', lineWidth: 1, millisPerLine: 1000, verticalSections: 10 }});
ingestionChart.addTimeSeries(ingestionTimeSeries, seriesOptions);
ingestionChart.streamTo(document.getElementById(chartName, 500));
}
diff --git a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/cluster/ClusterManager.java b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/cluster/ClusterManager.java
index 2e2c432..cefb431 100644
--- a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/cluster/ClusterManager.java
+++ b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/cluster/ClusterManager.java
@@ -118,7 +118,7 @@
Patterns startNCPattern = new Patterns(pattern);
client.submit(startNCPattern);
- removeNode(cluster.getNode(), node);
+ removeNode(cluster.getSubstituteNodes().getNode(), node);
AsterixInstance instance = lookupService.getAsterixInstance(cluster.getInstanceName());
instance.getCluster().getNode().add(node);
@@ -140,18 +140,16 @@
}
}
if (nodeToRemove != null) {
- list.remove(nodeToRemove);
+ boolean removed = list.remove(nodeToRemove);
+ if (LOGGER.isLoggable(Level.INFO)) {
+ LOGGER.info("attempt to remove node :" + nodeToRemove + " successful " + removed);
+ }
}
}
@Override
public void removeNode(Node node) throws AsterixException {
-
- }
-
- private List<Pattern> getRemoveNodePattern(Node node) {
- List<Pattern> pattern = new ArrayList<Pattern>();
- return pattern;
+ // to be implemented later.
}
@Override
diff --git a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/feeds/FeedUtil.java b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/feeds/FeedUtil.java
index e6bb81d..247fb3e 100644
--- a/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/feeds/FeedUtil.java
+++ b/asterix-metadata/src/main/java/edu/uci/ics/asterix/metadata/feeds/FeedUtil.java
@@ -113,7 +113,7 @@
}
// prepare for setting partition constraints
- Map<OperatorDescriptorId, List<String>> operatorLocations = new HashMap<OperatorDescriptorId, List<String>>();
+ Map<OperatorDescriptorId, Map<Integer, String>> operatorLocations = new HashMap<OperatorDescriptorId, Map<Integer, String>>();
Map<OperatorDescriptorId, Integer> operatorCounts = new HashMap<OperatorDescriptorId, Integer>();
for (Constraint constraint : spec.getUserConstraints()) {
@@ -132,22 +132,26 @@
case PARTITION_LOCATION:
opId = ((PartitionLocationExpression) lexpr).getOperatorDescriptorId();
IOperatorDescriptor opDesc = altered.getOperatorMap().get(oldNewOID.get(opId));
- List<String> locations = operatorLocations.get(opDesc.getOperatorId());
+ Map<Integer, String> locations = operatorLocations.get(opDesc.getOperatorId());
if (locations == null) {
- locations = new ArrayList<String>();
+ locations = new HashMap<Integer, String>();
operatorLocations.put(opDesc.getOperatorId(), locations);
}
String location = (String) ((ConstantExpression) cexpr).getValue();
- locations.add(location);
+ int partition = ((PartitionLocationExpression) lexpr).getPartition();
+ locations.put(partition, location);
break;
}
}
// set absolute location constraints
- for (Entry<OperatorDescriptorId, List<String>> entry : operatorLocations.entrySet()) {
+ for (Entry<OperatorDescriptorId, Map<Integer, String>> entry : operatorLocations.entrySet()) {
IOperatorDescriptor opDesc = altered.getOperatorMap().get(oldNewOID.get(entry.getKey()));
- PartitionConstraintHelper.addAbsoluteLocationConstraint(altered, opDesc,
- entry.getValue().toArray(new String[] {}));
+ String[] locations = new String[entry.getValue().size()];
+ for (Entry<Integer, String> e : entry.getValue().entrySet()) {
+ locations[e.getKey()] = e.getValue();
+ }
+ PartitionConstraintHelper.addAbsoluteLocationConstraint(altered, opDesc, locations);
}
// set count constraints