Welcome Guest  |  Register  |  Login
Login Name Password
  Search  
  Index  | Recent Threads  | Unanswered Threads  | Who's Online  | Help


Quick Go »

No member browsing this thread
Thread Status: Active
Total posts in this thread: 5
[ Jump to Last Post ]
Post new Thread
Author
Previous Thread This topic has been viewed 3737 times and has 4 replies Next Thread
Male erik
Expert
Member's Avatar

Belgium
Joined: Mar 12, 2004
Post Count: 2991
Status: Offline
Reply to this Post  Reply with Quote 
Sizing Up Open Source Java Persistence

Link to article
----------------------------------------
Erik Bengtson


[Feb 27, 2007 7:06:06 PM] Show Printable Version of Post    View Member Profile    Send Private Message    Hidden to Guest [Link] Report threatening or abusive post: please login first  Go to top 
Male andy
Expert
Member's Avatar

UK
Joined: Mar 13, 2004
Post Count: 5686
Status: Offline
Reply to this Post  Reply with Quote 
Re: Sizing Up Open Source Java Persistence


I replied to the author some time ago
Page 1
"JPOX JDO 1.2" ?
JPOX implements JDO1/JDO2 yes, but it also implements JPA1 ... and we have
never used the name "JPOX JDO" in the last year. Version 1.2 is not out yet.
You mean 1.1.6? (most recent production release) ? or 1.2.0-beta-1 ?

Page 2
JPOX has "log4j" as a dependency. This is optional and if using JDK1.4+ you
would have had logging via java.util.logging otherwise. You have "c3p0" for
Hibernate (and so are using connection pooling) yet you dont for JPOX (and so
arent for JPOX). This will significantly impact any performance!

Page 4
I've seen many benchmarks showing JPOX way ahead of Hibernate on updates
(never seen anything to the contrary). On INSERTs I've occasionally seen
Hibernate faster (since it has batching enabled, whereas you have to wait for
a later version of JPOX for that). As always there are reasons for
differences between Hibernate and JPOX when they have the same functionality
available ... JPOX uses the byte-code enhancement process and avoids
reflection and so is faster in many areas. I don't see this mentioned and
would have been good to see it as the reason why bytecode enhancement is
used .

What you could have done in the performance section is try to address what you
did to get those performance results. JPOX and Hibernate have much
configuration that can be done and these can completely change the
performance (and I mean completely). Again, the comment about connection
pooling (above).


Page 6
"JDO takes a different approach. It allows lazy loading, but does not load
anything into the lazily loaded field like addresses. In fact, if you access
the property directly, you will see that the lazy loaded field would contain
null. This can cause some issues if you don’t properly access the data with
getters and setters:"

Access the data from where ? another class that you didn't bother marking as
"PersistenceAware" ? If you mark any class that accesses fields directly as
"PersistenceAware" then you have NO issue.

----------------------------------------
-Andy smile

[Feb 27, 2007 7:10:28 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male erik
Expert
Member's Avatar

Belgium
Joined: Mar 12, 2004
Post Count: 2991
Status: Offline
Reply to this Post  Reply with Quote 
Re: Sizing Up Open Source Java Persistence


JDO is the only framework that has oscillating performance over multiple iterations


probably because of the lack of connection pooling
----------------------------------------
Erik Bengtson


[Feb 27, 2007 7:25:39 PM] Show Printable Version of Post    View Member Profile    Send Private Message    Hidden to Guest [Link] Report threatening or abusive post: please login first  Go to top 
Male chrisco
Expert
Member's Avatar

Australia
Joined: Nov 24, 2005
Post Count: 706
Status: Offline
Reply to this Post  Reply with Quote 
Re: Sizing Up Open Source Java Persistence


JDO is the only framework that has oscillating performance over multiple iterations


probably because of the lack of connection pooling


Interesting results in Table 7 - even with no connection pooling JPOX still beats Hibernate. Imagine if they had tested JPOX without shoving potatoes up its exhaust pipe and pulling out half of it's spark plug leads.

Table 7 also seems to demonstrate, in a practical way, the performance "glass wall" that reflection based technologies can't pass through. Everyone knows this to be the case "intuitively" but it's interesting to see it demonstrated so clearly.

Now if the benchmarker could just turn on JPOX connection pooling and run the tests again...
----------------------------------------
Chris Colman
http://visualclassworks.com
Javelin: Visual modeling & coding with automatic JDO 2/DataNucleus meta data generation.
http://expojo.com
expojo: Simple dependency injection and exposed POJO domain model pattern
[Mar 1, 2007 6:50:38 AM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
Male o_swas
Member




Joined: Aug 8, 2007
Post Count: 55
Status: Offline
Reply to this Post  Reply with Quote 
Re: Sizing Up Open Source Java Persistence

Andy, so did the author of the article ever respond after you voiced your concerns to him? I'm guessing he didn't probably because he knew he screwed up and didn't want to admit it.
[Mar 3, 2008 4:54:44 PM] Show Printable Version of Post    View Member Profile    Send Private Message [Link] Report threatening or abusive post: please login first  Go to top 
[ Jump to Last Post ]
Show Printable Version of Thread  Post new Thread