Committed.
-----Original
Message-----
From: JAMES.SUTHERLAND@xxxxxxxxxx
Sent: Wednesday, August 13, 2008
4:21 PM
To: Eclipselink-Dev@Eclipse. Org
(E-mail)
Subject: SVN Pending commit:
bug#220394 - improve insert performance, avoid change records for new wobjects
https://bugs.eclipse.org/bugs/show_bug.cgi?id=220394
Main change was to have new objects not build change
records (still create change set, but it is empty). This improves performance of inserts. Insert always used the object, so is
unchanged, merge no uses the existing object merge, instead of merging with
change sets.
If the descriptor uses cache synch of new objects,
change records are still built and merged. A backdoor to switch back to using changes sets is in
ClassDescriptor.
Changes:
- Changed new objects to not build change records,
merge new objects using object merge.
- Extended testing EmulatedDriver to work for adhoc
SQL.
- Added support for comparing clone with database in
ComplexUpdateTest, but disable by default because of some test failures (logged
bug).
- Fixed bug in aggregate collection change detection
to not always think that everything changed.
- Fixed bug in flush/resume for deferred change
tracking to not use merge into backup clone for new objects, (re-build backup
clone instead), (logged bug that updates still corrupt object identity in the
backup clone).
- Optimized sequence check to use sequence mapping.
- Removed some dead code in ObjectBuilder.
- Some micro optimizations in uow and mappings.
- Use descriptor insert query on inserts, instead of
new query that then has to find the descriptor query.
- Fixed some comments.
- Optimized some commit/merge cases to avoid
writes/merges when no changes or not required.
- Avoid comparing if changed and raising change
events when not in mergeClone merge.
- Fixed class-cast exception in DirectMapMapping when
collection is replaced, (logged bug that deferred changes does not always work
correctly).
- Changed sequencing to use long instead of
BigDecimal.
- Some fixes to JPA performance tests.
- Use batch writing for cached performance tests.
Code Review: Gordon (pending)