Branch: refs/heads/master
Home:
https://github.com/rhq-project/rhq
Commit: ba64f2134a51b7e0cbd445032da95d7381b590ce
https://github.com/rhq-project/rhq/commit/ba64f2134a51b7e0cbd445032da95d7...
Author: John Sanda <jsanda(a)redhat.com>
Date: 2014-09-23 (Tue, 23 Sep 2014)
Changed paths:
M
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/StartupBean.java
M
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/storage/StorageClientManager.java
A
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/InsertStatements.java
M
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
M
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
M
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/invalid/InvalidMetricsManager.java
M
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/CassandraIntegrationTest.java
A
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/InsertStatementsTest.java
M
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
M
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
M
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsTest.java
M
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/invalid/InvalidMetricsManagerTest.java
Log Message:
-----------
[BZ 1114199] Make sure data expiration is consistent for late data
Raw data has a retention of 7 days. Previously if we inserted late data that
was a day old, you might expect that it would expire in 6 days; however, the
data actually expire in 7 days. This is because the TTL and column timestamp
cannot be bind variables in Cassandra 1.2.x prepared statements. This commit
fixes the problem so that the one day old data will expire in 6 days. This
is accomplished without sacrificing the use of preared statements.
A cache of prepared statements is now used. Theere is one statement for each
of the past 7 days including today. For data that is 2 days old, we will insert
using a prepared statement that has a column timestamp of today minus 2 days,
and the data will expire in 5 days.
An EJB timer tasks runs every day at 12:00 AM to remove the oldest statements
from the caches and add a new statement for tomorrow. We store an extra
prepared statement for tomorrow to deal with scenarios where data is stored
right at midnight.