Thank you for getting back to me, xwarren. Things are making more sense now.
Option 1 has already been applied, but I would like to have a cleaner solution in the long run so I'm going to have a shot at option 2. To begin with I need to know the purpose of re-reading and storing the database object in this way. The only reason I can think of is to update some data, but I have no idea what needs updating. Last night, Drake and I set up a stripped down PRC server with only one area and no extra content, and this morning the database had accumulated to +160MB, with absolutely no activity on the server. As far as I can tell, during the first 30 seconds after the module loads a database with 6.8MB of content is created, and then this content is appended every 30 min or so. For what purpose? Nothing happened, so nothing should need updating.
I'm digging through sources now and will try to recompile with some changes and see where that gets me.