[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rhq-commits
Subject:    [rhq] modules/core modules/enterprise
From:       John Sanda <jsanda () fedoraproject ! org>
Date:       2013-05-31 17:22:18
Message-ID: 20130531172218.974D56143D () fedorahosted ! org
[Download RAW message or body]

 modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementBaseline.java \
|    4   modules/core/domain/src/test/java/org/rhq/core/domain/measurement/test/MeasurementBaselineTest.java \
|   54 ----------  modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerBean.java \
|   11 --  3 files changed, 5 insertions(+), 64 deletions(-)

New commits:
commit 35001d92bab83871f901156f82309fd58665ddb7
Author: John Sanda <jsanda@redhat.com>
Date:   Fri May 31 13:19:42 2013 -0400

    refactor query to find schedules without baselines
    
    The JPQL query previously used resulted in a very inefficient cross join that
    could result in statement timeouts in the database with a just a moderately
    large number of schedules. This commit removes MeasurementBaselineTest since it
    only tested the query that has been replaced. There is already test coverage
    of the query in MeasurementBaselineManagerTest.

diff --git a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementBaseline.java \
b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementBaseline.java
 index 743c12a..5bd0e8b 100644
--- a/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementBaseline.java
                
+++ b/modules/core/domain/src/main/java/org/rhq/core/domain/measurement/MeasurementBaseline.java
 @@ -42,9 +42,6 @@ import javax.persistence.Table;
 
 @Entity
 @NamedQueries( {
-    @NamedQuery(name = \
MeasurementBaseline.QUERY_FIND_MEASUREMENT_SCHEDULES_WITHOUT_AUTOBASELINES, query = \
                "SELECT schedule FROM MeasurementSchedule schedule "
-        + "WHERE schedule.definition.numericType = 0 AND "
-        + "schedule.id NOT IN (SELECT mb.schedule.id FROM MeasurementBaseline mb)"),
     @NamedQuery(name = MeasurementBaseline.QUERY_FIND_BY_RESOURCE, query = "SELECT \
                mb FROM MeasurementBaseline mb WHERE mb.schedule.resource.id = \
                :resourceId"),
     @NamedQuery(name = MeasurementBaseline.QUERY_FIND_BY_RESOURCE_IDS_AND_DEF_IDS, \
                query = "SELECT mb FROM MeasurementBaseline mb "
         + "WHERE mb.schedule.resource.id IN (:resourceIds) AND  \
mb.schedule.definition.id IN (:definitionIds)"), @@ -72,7 +69,6 @@ public class \
                MeasurementBaseline implements Serializable {
     public static final String QUERY_DELETE_BY_RESOURCES = \
                "MeasurementBaseline.deleteByResources";
     public static final String QUERY_CALC_FIRST_AUTOBASELINE = \
                "MeasurementBaseline.calcFirstAutoBaseline";
     public static final String QUERY_DELETE_EXISTING_AUTOBASELINES = \
                "MeasurementBaseline.deleteExistingAutoBaseline";
-    public static final String \
QUERY_FIND_MEASUREMENT_SCHEDULES_WITHOUT_AUTOBASELINES = \
"MeasurementBaseline.findMetricSchedulesWithoutAutoBaselines";  
     private static final long serialVersionUID = 1L;
     @GeneratedValue(strategy = GenerationType.AUTO, generator = \
                "RHQ_MEASUREMENT_BLINE_ID_SEQ")
diff --git a/modules/core/domain/src/test/java/org/rhq/core/domain/measurement/test/MeasurementBaselineTest.java \
b/modules/core/domain/src/test/java/org/rhq/core/domain/measurement/test/MeasurementBaselineTest.java
 deleted file mode 100644
index 57d45e0..0000000
--- a/modules/core/domain/src/test/java/org/rhq/core/domain/measurement/test/MeasurementBaselineTest.java
                
+++ /dev/null
@@ -1,54 +0,0 @@
- /*
-  * RHQ Management Platform
-  * Copyright (C) 2005-2008 Red Hat, Inc.
-  * All rights reserved.
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License, version 2, as
-  * published by the Free Software Foundation, and/or the GNU Lesser
-  * General Public License, version 2.1, also as published by the Free
-  * Software Foundation.
-  *
-  * This program is distributed in the hope that it will be useful,
-  * but WITHOUT ANY WARRANTY; without even the implied warranty of
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-  * GNU General Public License and the GNU Lesser General Public License
-  * for more details.
-  *
-  * You should have received a copy of the GNU General Public License
-  * and the GNU Lesser General Public License along with this program;
-  * if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-  */
-package org.rhq.core.domain.measurement.test;
-
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.Query;
-
-import org.testng.annotations.Test;
-
-import org.rhq.core.domain.measurement.MeasurementBaseline;
-import org.rhq.core.domain.test.AbstractEJB3Test;
-
-/**
- * Tests for MeasurementBaseline entity
- *
- * @author Stefan Negrea
- */
-@Test(groups = "integration.ejb3")
-public class MeasurementBaselineTest extends AbstractEJB3Test {
-
-    @Test
-    public void testSelectQuery() throws Exception {
-        EntityManager entityManager = getEntityManager();
-        Query query = entityManager
-            .createNamedQuery(MeasurementBaseline.QUERY_FIND_MEASUREMENT_SCHEDULES_WITHOUT_AUTOBASELINES);
                
-        List<String> rows = query.getResultList();
-        System.out.println("----------------------------------------------------------------------------");
                
-        System.out.println(rows.size());
-        System.out.println(rows);
-        System.out.println("----------------------------------------------------------------------------");
                
-    }
-}
\ No newline at end of file
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerBean.java \
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerBean.java
 index 22ebb71..c18ff97 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerBean.java
                
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementBaselineManagerBean.java
 @@ -189,8 +189,6 @@ public class MeasurementBaselineManagerBean implements \
                MeasurementBaselineManage
                  * In any event, an appropriate chunking solution needs to be found, \
                and that partitioning strategy
                  * needs to replace the limits in the query today.
                  */
-//                int schedulesWithoutBaselines = measurementBaselineManager
-//                    ._calculateAutoBaselinesINSERT(amountOfData);
                 List<MeasurementSchedule> schedulesWithoutBaselines =
                     measurementBaselineManager.getSchedulesWithoutBaselines();
                  measurementBaselineManager.calculateBaselines(schedulesWithoutBaselines, \
now, amountOfData); @@ -225,12 +223,13 @@ public class MeasurementBaselineManagerBean \
implements MeasurementBaselineManage  @SuppressWarnings("unchecked")
     @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
     public List<MeasurementSchedule> getSchedulesWithoutBaselines() {
-        Query query = this.entityManager
-            .createNamedQuery(MeasurementBaseline.QUERY_FIND_MEASUREMENT_SCHEDULES_WITHOUT_AUTOBASELINES);
 +        String sql =
+            "SELECT s.* FROM rhq_measurement_sched s INNER JOIN rhq_measurement_def \
d ON s.definition = d.id " + +            "LEFT JOIN rhq_measurement_bline b ON s.id \
= b.schedule_id WHERE b.schedule_id IS NULL AND d.numeric_type = 0"; +        Query \
query = this.entityManager.createNativeQuery(sql, MeasurementSchedule.class);  \
                query.setMaxResults(BASELINE_PROCESSING_LIMIT);
-        List<MeasurementSchedule> scheduleIdsWithoutBaselines = \
query.getResultList();  
-        return scheduleIdsWithoutBaselines;
+        return query.getResultList();
     }
 
     @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)


_______________________________________________
rhq-commits mailing list
rhq-commits@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/rhq-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic