perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r6499 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/java/org/perfsonar/servi ce/measurementArchive/sqlType/dao perfsonar_base/src/mai n/java/org/perfsonar/service/measurementArchive/metadataCo nfig/queryGenerator
Subject: perfsonar development work
List archive
[pS-dev] [GEANT/SA2/ps-java-services] r6499 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/java/org/perfsonar/servi ce/measurementArchive/sqlType/dao perfsonar_base/src/mai n/java/org/perfsonar/service/measurementArchive/metadataCo nfig/queryGenerator
Chronological Thread
- From:
- To:
- Subject: [pS-dev] [GEANT/SA2/ps-java-services] r6499 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/java/org/perfsonar/servi ce/measurementArchive/sqlType/dao perfsonar_base/src/mai n/java/org/perfsonar/service/measurementArchive/metadataCo nfig/queryGenerator
- Date: Tue, 25 Feb 2014 17:39:38 +0000 (GMT)
Author: dante.delvaux
Date: 2014-02-25 17:39:38 +0000 (Tue, 25 Feb 2014)
New Revision: 6499
Added:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/KeySetExtractor.java
Modified:
trunk/perfsonar-java-sql-ma/pom.xml
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/BwctlDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/Dao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DiscardsDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/ErrorsDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/L2PathDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/OwampDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/PingDao.java
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/UtilizationDao.java
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/BwctlQueryGenerator.java
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
Log:
SQL MA-psbase1: better implementation of the filtering of MetadataKeyRequest
with time constraints, see PSSERVICES-703. Generalising to the other storage.
Modified: trunk/perfsonar-java-sql-ma/pom.xml
===================================================================
--- trunk/perfsonar-java-sql-ma/pom.xml 2014-02-25 14:39:28 UTC (rev 6498)
+++ trunk/perfsonar-java-sql-ma/pom.xml 2014-02-25 17:39:38 UTC (rev 6499)
@@ -9,7 +9,7 @@
</parent>
<artifactId>perfsonar-java-sql-ma</artifactId>
- <version>2.3.5-SNAPSHOT</version>
+ <version>2.4-SNAPSHOT</version>
<name>perfSONAR SQL MA</name>
<description>perfSONAR Relational Database Measurement
Archive</description>
<packaging>war</packaging>
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -14,21 +14,13 @@
import org.perfsonar.service.base.util.ResultCodesUtil;
import org.perfsonar.service.measurementArchive.sqlType.dao.Dao;
import org.perfsonar.service.measurementArchive.sqlType.dao.DaoProvider;
-import
org.perfsonar.service.measurementArchive.sqlType.dao.DefaultDaoProvider;
import
org.perfsonar.service.measurementArchive.sqlType.transaction.FallibleTransactionCallback;
import
org.perfsonar.service.measurementArchive.sqlType.transaction.FallibleTransactionTemplate;
-import org.springframework.jdbc.core.ResultSetExtractor;
-import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
-import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionStatus;
import javax.sql.DataSource;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -148,45 +140,13 @@
public Collection<String>
doInFallibleTransaction(TransactionStatus transactionStatus)
throws PerfSONARException
{
- logger.debug("Trying to fetch keys for " + eventType
+ logger.debug("Trying to fetch keys for " + eventType
+ " with timestamp between " + startTime + " and " +
endTime);
-
- // Get keys from DB with time constraints
- MapSqlParameterSource parameters = new
MapSqlParameterSource();
- parameters.addValue("table",
DefaultDaoProvider.getTableName(eventType), Types.VARCHAR);
- if (startTime != null) {
- parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ return getDao(eventType).fetchKeys(startTime, endTime);
}
- if (endTime != null) {
- parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
- }
- NamedParameterJdbcTemplate jdbc = new
NamedParameterJdbcTemplate(dataSource);
- Collection<String> keys = jdbc.query("SELECT metadataId FROM
"
- + DefaultDaoProvider.getTableName(eventType)
- + " WHERE time BETWEEN :start AND :end GROUP BY
metadataId"
- + " ORDER BY time ASC", parameters, new
KeySetExtractor());
-
- return keys;
- }
});
}
- private static class KeySetExtractor implements
ResultSetExtractor<Collection<String>>
- {
- @Override
- public Collection<String> extractData(ResultSet rs) throws
SQLException
- {
- Collection<String> keys = new ArrayList<String>();
- while (rs.next()) {
- String value = rs.getString("metadataId");
- if (value != null) {
- keys.add(value);
- }
- }
- return keys;
- }
- }
-
@Override
public Message store(final Message dataSet)
throws PerfSONARException
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/BwctlDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/BwctlDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/BwctlDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -13,6 +13,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseLong;
@@ -94,6 +95,22 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM clmp_bwctl "
+ + " WHERE timeValue BETWEEN :start AND :end GROUP BY
metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/Dao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/Dao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/Dao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -1,5 +1,7 @@
package org.perfsonar.service.measurementArchive.sqlType.dao;
+import java.util.Collection;
+
import org.ggf.ns.nmwg.base.v2_0.Data;
import org.ggf.ns.nmwg.base.v2_0.Element;
import org.ggf.ns.nmwg.base.v2_0.Key;
@@ -14,6 +16,9 @@
Data fetch(Key key)
throws PerfSONARException;
+ Collection<String> fetchKeys(final String startTime, final String
endTime)
+ throws PerfSONARException;
+
void store(Metadata md, Element datum)
throws PerfSONARException;
}
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DefaultDaoProvider.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -41,27 +41,4 @@
return null;
}
- public static String getTableName(String eventType)
- {
- if (eventType.endsWith("/")) {
- eventType = eventType.substring(0, eventType.length() - 1);
- }
- if (eventType.equals(EVENT_TYPE_DISCARDS)) {
- return "perfsonar_discards";
- } else if (eventType.equals(EVENT_TYPE_ERRORS)) {
- return "perfsonar_errors";
- } else if (eventType.equals(EVENT_TYPE_IPERF)) {
- return "perfsonar_iperf";
- } else if (eventType.equals(EVENT_TYPE_L2PATH)) {
- return "perfsonar_links";
- } else if (eventType.equals(EVENT_TYPE_OWAMP)) {
- // FIXME: what about owamp_summary?
- return "owamp";
- } else if (eventType.equals(EVENT_TYPE_PING)) {
- return "clmp_ping";
- } else if (eventType.equals(EVENT_TYPE_UTILIZATION)) {
- return "perfsonar_utilization";
- }
- return null;
- }
}
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DiscardsDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DiscardsDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/DiscardsDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -13,6 +13,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseFloat;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseInteger;
@@ -63,6 +64,22 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM perfsonar_discards "
+ + " WHERE timeValue BETWEEN :start AND :end GROUP BY
metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/ErrorsDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/ErrorsDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/ErrorsDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -13,6 +13,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseFloat;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseInteger;
@@ -63,6 +64,22 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM perfsonar_errors "
+ + " WHERE timeValue BETWEEN :start AND :end GROUP BY
metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/IperfDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -13,6 +13,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseBigDecimal;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseFloat;
@@ -74,6 +75,22 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM perfsonar_iperf "
+ + " WHERE time BETWEEN :start AND :end GROUP BY metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Added:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/KeySetExtractor.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/KeySetExtractor.java
(rev 0)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/KeySetExtractor.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -0,0 +1,29 @@
+package org.perfsonar.service.measurementArchive.sqlType.dao;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.springframework.jdbc.core.ResultSetExtractor;
+
+/**
+ *
+ * @author Antoine Delvaux - DANTE
+ *
+ */
+final class KeySetExtractor implements ResultSetExtractor<Collection<String>>
+{
+ @Override
+ public Collection<String> extractData(ResultSet rs) throws SQLException
+ {
+ Collection<String> keys = new ArrayList<String>();
+ while (rs.next()) {
+ String value = rs.getString("metadataId");
+ if (value != null) {
+ keys.add(value);
+ }
+ }
+ return keys;
+ }
+}
Property changes on:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/KeySetExtractor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/L2PathDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/L2PathDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/L2PathDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -15,6 +15,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import java.util.concurrent.TimeUnit;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseIsoTime;
@@ -76,6 +77,22 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM perfsonar_links "
+ + " WHERE unix_timestamp(time) BETWEEN :start AND :end GROUP
BY metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/OwampDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/OwampDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/OwampDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -8,11 +8,13 @@
import org.perfsonar.base.exceptions.PerfSONARException;
import org.perfsonar.base.nmwg.owamp.Datum;
import org.perfsonar.base.nmwg.owamp.SummaryDatum;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import javax.sql.DataSource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
public class OwampDao implements Dao
{
@@ -136,6 +138,25 @@
}
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ // We look in both tables
+ return jdbc.query("SELECT metadataId FROM owamp "
+ + " WHERE UNIX_TIMESTAMP(ts) BETWEEN :start AND :end GROUP
BY metadataId"
+ + " UNION SELECT metadataId FROM owamp_summary "
+ + " WHERE UNIX_TIMESTAMP(ts) BETWEEN :start AND :end GROUP
BY metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/PingDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/PingDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/PingDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -13,6 +13,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseFloat;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseInteger;
@@ -71,6 +72,23 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM clmp_ping "
+ + " WHERE timeValue BETWEEN :start AND :end GROUP BY
metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/UtilizationDao.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/UtilizationDao.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/dao/UtilizationDao.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -13,6 +13,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.Collection;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseFloat;
import static
org.perfsonar.service.measurementArchive.sqlType.dao.ParseUtils.parseInteger;
@@ -61,6 +62,22 @@
new DataResultSetExtractor());
}
+ // Get keys from DB with time constraints
+ @Override
+ public Collection<String> fetchKeys(final String startTime, final String
endTime) throws PerfSONARException
+ {
+ MapSqlParameterSource parameters = new MapSqlParameterSource();
+ if (startTime != null) {
+ parameters.addValue("start", Long.parseLong(startTime),
Types.INTEGER);
+ }
+ if (endTime != null) {
+ parameters.addValue("end", Long.parseLong(endTime),
Types.INTEGER);
+ }
+ return jdbc.query("SELECT metadataId FROM perfsonar_utilization "
+ + " WHERE timeValue BETWEEN :start AND :end GROUP BY
metadataId"
+ , parameters, new KeySetExtractor());
+ }
+
private static class DataResultSetExtractor extends
AbstractDataResultSetExtractor
{
@Override
Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/BwctlQueryGenerator.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/BwctlQueryGenerator.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/BwctlQueryGenerator.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -1,6 +1,5 @@
package
org.perfsonar.service.measurementArchive.metadataConfig.queryGenerator;
-
import java.util.HashMap;
import java.util.Set;
@@ -16,70 +15,42 @@
/**
- * Transforms nmwg message into xquery/xpath
- * (query to fetch metadata with bwctl data).
- *
- * @author fernandes
+ * Transforms nmwg message into xquery/xpath for bwctl storage.
*/
-
public class BwctlQueryGenerator implements MetadataQueryGenerator
{
-
-
- // -------------------------------------- class fields
-
-
protected LoggerComponent logger = null;
+ // All the parameters understood by the SQL MA for bwctl storage
private final String[] parameters = {"interval", "length", "windowSize",
"unsynchronized",
"dynamicWindowSize", "concurrentConnections", "bandwidth",
"duration", "tos", "protocol", "role"};
- // -------------------------------------- constructors
-
-
- public BwctlQueryGenerator() throws PerfSONARException
- {
-
+ /**
+ * Constructor.
+ */
+ public BwctlQueryGenerator() throws PerfSONARException {
try {
-
- this.logger = (LoggerComponent)
- AuxiliaryComponentManager.
- getInstance().
- getComponent(ComponentNames.LOGGER);
+ this.logger = (LoggerComponent) AuxiliaryComponentManager.
+ getInstance().getComponent(ComponentNames.LOGGER);
} catch (PerfSONARException e) {
-
- throw new PerfSONARException(
- "error.common.no_logger",
- "BwctlQueryGenerator.constructor: "
- + "Cannot get logger component");
-
+ throw new PerfSONARException("error.common.no_logger",
+ "BwctlQueryGenerator.constructor: Cannot get logger
component");
}
-
}
-
- // -------------------------------------- public methods
-
-
/**
* Returns xpath query created using the information
* stored in Message object.
*/
@Override
- public String getMetadataQuery(Message query)
- throws PerfSONARException
+ public String getMetadataQuery(Message query) throws PerfSONARException
{
-
-
if (query == null) {
- throw new PerfSONARException(
- "error.ma.query",
- "BwctlQueryGenerator.getMetadataQuery: "
- + "Input message is null");
+ throw new PerfSONARException("error.ma.query",
+ "BwctlQueryGenerator.getMetadataQuery: Input message is
null");
}
-
String src = "";
String dst = "";
String eventType = "";
@@ -89,19 +60,14 @@
Metadata[] metadataArray = (query.getMetadataArray());
metadata = metadataArray[0];
} catch (Exception ex) {
- logger.error(
- "BwctlQueryGenerator.getMetadataQuery: "
- + "Unable to get metadata from the message");
- throw new PerfSONARException(
- "error.ma.query",
- "BwctlQueryGenerator.getMetadataQuery: "
- + "Unable to get metadata from the message; "
+ logger.error("BwctlQueryGenerator.getMetadataQuery: Unable to
get metadata from the message");
+ throw new PerfSONARException("error.ma.query",
+ "BwctlQueryGenerator.getMetadataQuery: Unable to get
metadata from the message; "
+ ex.toString());
}
HashMap<String, String> parametersMap = new HashMap<String,
String>();
if (metadata != null) {
-
eventType = (metadata.getEventType() != null ?
metadata.getEventType().getEventType().trim() : "");
Subject subject = (Subject) metadata.getSubject();
EndPointPair end = subject.getEndPointPair();
@@ -122,10 +88,9 @@
}
- String xQuery = "\n"
- + "declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/'; "
- + "declare namespace
bwctl='http://ggf.org/ns/nmwg/tools/bwctl/2.0/'; "
- + "declare namespace
nmwgt='http://ggf.org/ns/nmwg/topology/2.0/'; \n\n";
+ String xQuery = "declare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/'; \n"
+ + "declare namespace
bwctl='http://ggf.org/ns/nmwg/tools/bwctl/2.0/'; \n"
+ + "declare namespace
nmwgt='http://ggf.org/ns/nmwg/topology/2.0/'; \n";
xQuery +=
" let $res := \n"
Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
2014-02-25 14:39:28 UTC (rev 6498)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
2014-02-25 17:39:38 UTC (rev 6499)
@@ -1,7 +1,3 @@
-/**
- * $Id$
- * Project: perfSONAR
- */
package
org.perfsonar.service.measurementArchive.metadataConfig.queryGenerator;
import org.ggf.ns.nmwg.base.v2_0.Message;
@@ -23,10 +19,7 @@
import java.util.HashMap;
/**
- * Transforms nmwg message into xquery/xpath (query to fetch metadata with
- * utilization metric).
- *
- * @author romradz
+ * Transforms nmwg message into xquery/xpath for iperf storage.
*/
public class IperfQueryGenerator implements MetadataQueryGenerator
{
@@ -65,7 +58,7 @@
Metadata[] metadataArray = (query.getMetadataArray());
metadata = metadataArray[0];
} catch (Exception ex) {
- logger.error("IperfQueryGenerator.getMetadataQuery: " + "Unable
to get metadata from the message");
+ logger.error("IperfQueryGenerator.getMetadataQuery: Unable to
get metadata from the message");
throw new PerfSONARException("error.ma.query",
"IperfQueryGenerator.getMetadataQuery: "
+ "Unable to get metadata from the message; " +
ex.toString());
}
- [pS-dev] [GEANT/SA2/ps-java-services] r6499 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/java/org/perfsonar/servi ce/measurementArchive/sqlType/dao perfsonar_base/src/mai n/java/org/perfsonar/service/measurementArchive/metadataCo nfig/queryGenerator, svn-noreply, 02/25/2014
Archive powered by MHonArc 2.6.16.