As objects are deleted, Frontier monitors their freed-up blocks so they can be reused, as Matt Neuberg describes in Frontier: The Definitive Guide:
... as the database is used, free space opens up in it, and pointers to the free blocks are added to a list called the "avail list," which must be traversed each time Frontier searches the database. This strategy makes saving and accessing the database rapid and robust in the short term, but over time its accumulated effects reduce the database's efficiency.
I took Buzzword.Com offline this evening for 90 minutes to compact all object database files and wipe out these avail lists. I'm hoping that it improves the server speed; users should let me know if it's making a difference.
Update from Craig Jensen: "Longtime blogging friend Garret Vreeland says he can connect to BookNotes in less than 5 minutes. That's progress!"
There has been some discussion about some weaknesses in the allocation strategy on the open source project's mailing list, but it doesn't seem like anyone's quite ready to take that one on quite yet. I'm sure it'll happen at some point, though.
For instance, Andre outlines one scenario that is troublesome and I'd bet hits Manila, too.
Ah yes, packing the Frontier ODB, I remember it well. It made the web app I had running on a Mac IIfx back in 1997 much faster. ;)