Fog Creek Software
Discussion Board




Prevayler

anyone try playing with it or read this book Java RAMBO Manifesto by Peter Wanyer (hxxp://www.wayner.org/books/rambo/)?

the actual site is here
hxxp://www.prevayler.org/wiki.jsp

someone have ported it to LISP

hxxp://homepage.mac.com/svc/RebelWithACause/

eddy
Tuesday, January 06, 2004

I've always thought the ideas behind Prevayler were very interesting. However, there's a big advantage to using a separate database, and it has nothing to do with relational models, robustness, or any of the other stuff.

In the typical business application, how long does the logic last? A year? Six months? If you're using an object database, your data and behavior are inextricably tied together; if the logic changes, your data needs at the minimum to be be reformatted or something.

On the other hand, how long is a customer list valid? 10 years? 30 years? Mortgage information?

Data lasts longer than logic, and having data in a separate, easy to access storage allows you to build new applications easily on your existing data.

Chris Tavares
Tuesday, January 06, 2004

Chris, I agree with you, but I also think it's quite possible that the data will be exported back as XML, sidestepping the relational DB entirely.

At my current contract, ALL the backend data comes back as XML. Whether you love it or hate it, I think this is the way things are going in the future.

Portabella
Tuesday, January 06, 2004

Using XML as the interchange format is just fine, but anybody who's using XML as the actual STORAGE mechanism is going to be in big trouble.

Searching an XML file is hideously inefficient. Heck, STORING a straight XML file is hideously inefficient. Using XML to shoot stuff between components? I'm all over it, I think it's great. But XML will not replace the back end data storage.

Chris Tavares
Tuesday, January 06, 2004

> Using XML as the interchange format is just fine

I agree, and that's what I'm suggesting: a prevayler-type backend which exports data as XML. (Even XML databases don't actually store the data as XML).

Along the same lines, a standard XML mapping for databases (like Microsoft's SQLXML), and possibly another chance for the databases to try to replace application servers again.

Portabella
Tuesday, January 06, 2004

The main drawback with Prevayler is versioning, that is changing the meta data. Changing data in memory is a lot harder than changing data in a database. A ram based server could be used between the business layer and the database, using write thru, and essentially caching everything, but still there is a problem with ad hoc updates of the database. Probably the ram cache has to be cleared.

Conclusion: the database engine should do all the caching. Then we won´t see this 9000-fold performance increase anymore.

Christer Nilsson
Friday, January 09, 2004

*  Recent Topics

*  Fog Creek Home