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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.