On Nov 10, 2003, at 10:34 AM, Colin Putney wrote:
> If you must or prefer to use a relational database, check out Avi's
> Roe package. It's basically the successor to Tantalus - it goes off
> in another direction based on problems we had writing and using
> Tantalus.
Note that as a successor to Tantalus, Roe is fairly incomplete - it
provides a very nice abstraction for dealing with relational data as
relational data, but it doesn't do any kind of mapping into an object
graph. I still think the mapping part of the Tantalus/GLORP style of
O/R tool is useful, and this would need to be layered on top of Roe.
The part I'm experimenting with ditching is the caching. The theory,
based on my work on Tantalus and other frameworks, goes something like
this:
- O/R tools usually force you to use suboptimal queries, because they
don't properly model SQL
- to make up for this, they do a lot of caching
- this caching causes lots of problems (how do you keep the data
consistent and up to date?)
- Roe provides a solid model of SQL, which would allow you to use
arbitrary queries with your O/R framework
- thus, you should be able to get adequate performance without caching
anything for longer than a single transaction
Fortunately, however, all of the projects I'm currently involved in
are using OODBs, so I haven't had much motivation to fully flesh this
stuff out. If anyone else is interested in pursuing an O/R mapping
system based on Roe, let me know and I'll provide you with what info
and code I have.
Cheers,
Avi