All, On Wed, Apr 18, 2007 at 01:34:54PM +0200, Denis Walker wrote:
One time bulk cleanup procedure -------------------------------
Month 1
* Select 80,000 unreferenced person/role objects.
Month 2
* Check selected person/role objects. * Those still unreferenced: o Delete using normal update process. o 2000 objects per update message. o Run updates overnight (Saturday/Sunday). o One update every 15 minutes. o This should avoid any unnecessary load on the servers. * Select next 80,000 unreferenced person/role objects.
Month 3
* Repeat process until complete.
This makes sense to me, for a one-time cleanup.
The worst problem that can occur is that someone will enter a reference to their person/role object just as we delete it. However, as we are only deleting unreferenced person/role objects, the time needed to re-create them is minimal. We suspect that a very large proportion of the unreferenced person/role objects that we will be deleting are abandoned objects that are no longer used.
A bit of thinking can come up with some scenerios that might be worse(*). I definitely think any minor problems are more than outweighed by the removal of unused personal data! -- Shane (*) For example, a worse problem would be referencing the wrong person/role object. This can happen like so: - Person object X created - Months pass... - Person object X deleted by this process - Person object Y created with same "nic-hdl:" as object X - User who created person object X decides to use it, but actually refers to object Y (since it has the same "nic-hdl:") The user who created person object X assumes it is still fine, because the usual notification was not received, and in any case it was probably protected by "mnt-by:". Of course, this is an unlikely corner case. :)