-----Original Message----- From: squeak-dev-bounces@lists.squeakfoundation.org [mailto:squeak-dev- bounces@lists.squeakfoundation.org] On Behalf Of Todd Blanchard Sent: Tuesday, January 02, 2007 7:17 AM To: The general-purpose Squeak developers list Subject: Re: relational for what? [was: Design Principles Behind Smalltalk,Revisited]
Funny, I just blogged about this.
Todd,
As a long-time user of Object Databases (and now a vendor's employee) I found your comments interesting. A few responses with regard to GemStone/Smalltalk: - Object accesses do not need to be done within a transaction. - Locking is at the object (not page) level (and can be optimistic or pessimistic). - Classes are available that allow things like a queue to have multiple producers and a single consumer without conflicts. - A number of classes have automatic retry built in. - GemBuilder provides client-side in-memory user-level caching. - Schema migration is very flexible. You can have multiple versions of a class, each of which may have live instances. The database does not have to be off-line to update the schema. - Most image-level bug fixes can be applied with the system in production. - Users can be assigned to groups and objects can be assigned security based on owner/group/world. - Garbage collection is quite sophisticated and is not adversely impacted by schema changes.
James