[rt-users] RTx-shredder with a very large database

Todd Chapman todd at chaka.net
Tue Feb 28 18:49:58 EST 2006


On Tue, Feb 28, 2006 at 06:46:38PM -0500, Jim Faulkner wrote:
> 
> On Wed, 1 Mar 2006, Luke Vanderfluit wrote:
> 
> > I'm afraid I have a similar story, no spam queue (spam is filtered 
> > before it reaches RT), but large amounts of redundant data.
> > I have a similar size RT installation.
> > I've installed rtx-shredder and tried that.
> > See my earlier post of 27Feb2006.
> > 
> > I thought that doing the deletes to mysql directly (that is, not using 
> > the RT api, might be faster) but I'm afraid that isn't necessarily so.
> > 
> > I have created a script that does this and it shows considerably long 
> > processing times.
> > 
> > What needs to be done  to delete a ticket is this:
> > 
> > /~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > select * from Tickets where id = <ticketID>
> > <1>select id from Transactions where ObjectId = <ticketID>;
> > <4>select id from ObjectCustomFieldValues where ObjectId = <ticketID>;
> > <3>select id from Links where LocalTarget = <ticketID>;
> > <2>select id from Attachments where TransactionId = ( for each 
> > transactionid retrieved with <1> )
> > 
> > -delete from Attachments where id in ( for each Attachment retrieved 
> > with <2> )
> > -delete from Links where id = ( for each link in <3> )
> > -delete from ObjectCustomFieldValues where id in ( for each 
> > ObjectCustomFieldValue in <4> )
> > -delete from Transactions where id in ( for each Transaction in <1> )
> > -delete from Tickets where id = <ticketID>;
> > 
> > Additionally Stuff needs to be deleted from
> > principals, cachedgroupmembers, groupmembers, groups.
> > 
> > For each ticket:
> > -delete from principals where
> >     id=groups.id and groups.instance=tickets.id as int
> > -delete from cachedgroupmembers where groupid=groups.id
> >     and groups.instance=tickets.id
> > -delete from groupmembers where groupid=groups.id and
> >     groups.instance=tickets.id
> > -delete from groups where instance=tickets.id
> > \____________________________________________
> > 
> > There may be more that could be deleted, namely Users(requestors) who 
> > created the ticket etc.
> > 
> > I'm toying with the idea of a script that runs each night and cleans out 
> > 1000 tickets or so, I have 90000 tickets to delete in first instance, 
> > after that a regular cleanup of resolved tickets.
> > 
> > Hope this contributes.
> > 
> > Kind regards.
> > Luke.
> 
> That helps a lot!  I'm in the midst of writing my own tool to clean out 
> the database, and I was just trying to figure out that exact information.  
> Thank you very much!
> 

Why? When your done you will have RTx::Shredder, except not
as well tested and likely to break on some future version of RT.

-Todd



More information about the rt-users mailing list