drift async job purges drift files

John Mazzitelli mazz at redhat.com
Tue Aug 16 13:50:30 UTC 2011


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.


More information about the rhq-devel mailing list