Pie is having some folder object problems [ Tip: A Documentum Folder’s Existential Crisis « Word of Pie ] and it’s no surprise to me. I trust folder objects less than I trust an insane homicidal computer; at least I know for certain that GLaDOS is still trying to kill me.
I’ve fantasized for years about replacing dm_sysobject with something light weight and implementing things like folder location and versioning as interfaces applied to that type as needed. Pie might not have had hair pulling to do if dm_folder wasn’t bringing along all of dm_sysobject’s baggage. It’s another example of the junk DNA rife through Documentum’s API and schema.
Documentum did add lightweight objects a few years ago, but they fell far short of my fantasy. They turned out to be a hack to deal with bulk object creation instead of a fundamental refactoring of the object schema. I wasn’t surprised; implementing something like my fantasy would be an upgrade/compatibility nightmare; every single sysobject would have to be folded, spindled, and mutilated in the process. Just the database part of that upgrade could take days on big docbases, and those upgrades could fail in spectacular ways noticeable only long after the fact. Oh well.
It’s a lesson to inform the creators of new systems like Documentum. Of course there are scaling problems at the database level if those interface abstractions result in lots of separate tables and joins at the concrete level assuming a relational database infrastructure. I think that’s still a safe assumption since object databases haven’t gotten that much better and NoSQL databases don’t seem to be a good fit to this problem space on first blush. I wonder: Did Alfresco learn any of these lessons? Maybe I’ll go take a look under its hood and see.