https://bugzilla.redhat.com/show_bug.cgi?id=730993
On 08/16/2011 09:44 AM, John Mazzitelli wrote:
We can add a system config like the other purge ones - the ones like
"purge alerts older than X days" or "purge events older than X days. For
example, "purge orphaned (or unused) drift files older than X days".
We can add a AND clause in the DELETE SQL:
DELETE FROM RHQ_DRIFT_FILE
WHERE (HASH_ID NOT IN (SELECT OLD_DRIFT_FILE FROM RHQ_DRIFT))
AND (HASH_ID NOT IN (SELECT NEW_DRIFT_FILE FROM RHQ_DRIFT))
AND CTIME< ?
where ? is bound to some value in the past (epoch millis) that
corresponds to how old a unused drift file is allowed to be without
getting purged.
On 08/16/2011 09:23 AM, Jay Shaughnessy wrote:
>
> Mazz, one caveat here that we may be able to take care of with a simple
> flag or expiration data or something. We actually may want drift files
> that are not (yet) associated with drifts. This is the whole idea
> behind seeding the db with files we expect to be reported from agents.
> For example, we know we're going to deploy bundle Foo to 100 machines.
> We may very well want to slurp that bundle into the drift backend and
> create drift files in advance, so that we never actually need to
> download them from an agent. They'll already be there.
>
> On 8/13/2011 10:01 AM, John Mazzitelli wrote:
>> (this is probably only of interest right now for Jay and John S)
>>
>> I checked in code that adds to the data purge job that runs hourly. We
>> now purge drift files if there are no drifts referencing it. Every hour,
>> when you see the data purge job emit its log messages, if you look in
>> there, you will see messages about purging drift files.
>>
>> This means we can clean up and reclaim space for drift files that are no
>> longer used (that is, referenced as either an old or new file from any
>> drift entry).
>>
>> This goes through the drift server plugin - if we are using the RHQ DB
>> backend, we'll purge unused rows in RHQ_DRIFT_FILE. I left a TODO in the
>> MongoDB plugin to do the purging when using MongoDB as the drift backend.