[Citadel Development] Re: connecting external applications to the autopurger...

2009-05-20 Thread dothebart
doesn't the autopurger do the final clean up of these at nite too while on
delete it just tags them deleted?  

ok, overwriting would be a problem, but would that message have the same
citadel id?  

I'd primarily want something so an external application could do clean up of
its database, so sort of writing a parseable journal of what we did would be
sufficient imho.  

I guess writing a journal file while cleaning up our database can't be that
expensive...

[Citadel Development] Re: connecting external applications to the autopurger...

2009-05-20 Thread IGnatius T Foobar
For a manual delete, we remove the message number from the room's msglist 
and then write a record to refcount_adjustments.dat containing the msgnum 
and the number -1 to indicate that the message has been removed from one 
room.  
   
 When the autopurger runs, one of the last things it does is to process 
that file in its entirety.  Any message whose reference count reaches zero 
is then deleted from the database (after being removed from the full text 
index, of course).  
  


[Citadel Development] Re: connecting external applications to the autopurger...

2009-05-19 Thread IGnatius T Foobar
That sounds expensive.   
   
 The autopurger lives in modules/expire/serv_expire.c  
   
 Do you want notifications of a message's removal from disk, or from a 
particular room?  
   
 If it is the latter then I suppose we could write out a flat file as we 
do the purge, and process it asynchronously later ... but what about a 
message which is manually deleted, or superseded by an incoming message 
with an identical EUID?  Either action could end up making a user wait 
around while extra processing takes place.