[INN-COMMITTERS] STABLE-2_4 inn/storage/ovdb (ovdb.c)

Heath Kehoe Heath_Kehoe at isc.org
Tue Jun 8 18:54:10 UTC 2004


    Date: Tuesday, June 8, 2004 @ 18:54:10
  Author: hkehoe
    Path: /var/proj/cvs/isc/inn/inn/storage/ovdb
     Tag: STABLE-2_4

Modified: ovdb.c

If a group with a large number of overview records was deleted or
compacted, the database could run out of locks, causing the deletion
to fail.  This is because delete_all_records() was deleting all of
the keys in a single transaction.  Additionally, in the event of
a failure of this type, the records that were to be deleted remain
in the database with no way to remove them (short of rebuilding
overview).

This fix restructures the code so that delete_all_records() works
in batches of smaller transactions, so it now works with groups that
have arbitrarily large numbers of records to delete.  Further, code
was added to insure that records don't get orphaned in the event that
delete_all_records does fail.


--------+
 ovdb.c |  362 +++++++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 225 insertions(+), 137 deletions(-)


More information about the inn-committers mailing list