Migration report
Karl Wettin <[email protected]>
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <[email protected]> |
I've migrated from JPA/Hibernate/PostgreSQL to Prevayler.
It's been a few years since I used Prevayler the last time. Don't know
why I forgot about it. The plan has never been to use JPA in the end,
I was going to use some key-value store. Each entity root in my domain
model has a huge and almost isolated object graph thats huge, contains
a lot of abstract layers and all the other things that will cause any
JPA to go nuts with instrumentation and lots of small requests to the
RDBMS in order to load the grpah. But I knew that my domain model
would evolve while beeing developed and for some reason I thought it
would be easier to retain data integrity if I was using an RDBMS.
But RDBMS was way slow. Fully loading one domain entity object graph
via JPA took ~8 seconds. I had to create layer upon layer that cached
this and that. In the end I pretty much had all my domain objects
loaded in RAM, just that there was all this overhead, latency and lots
of crazy code I had to consider every time I added something new. And
since my model is rather complex I had to do a lot of weird stuff in
order to get Hibernate accepting my business code. Nasty visitors
everywhere to handle lazy instrumentation problems of polymorphic and
abstract solutions, etc.
But I hanged in there and released version 0.1 backed by JPA.
I've now spent one week rebuilding the application from scratch to
make it fit Prevayler. The code is beutiful! No crazy solutions to
handle problems with JPA APIs and no need for any of those layers of
cache I used to have. A lot less code, cosmetically way better code,
and of course way greater performace than before. Here is my best
benchmark report:
~8 seconds per fully loaded domain entity object via JPA ment it took
17 hours when normalizing the complete data store in order to produce
a Lucene index. In version 0.1 I ended up using a native SQL-hack
instead and it then took ~30 minutes. Using Prevayler it takes less
than 2 minutes to produce the same index.
karl
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion
_______________________________________________
"Databases in Memoriam" -- http://www.prevayler.org