Cayenne people, :-)
I just had a chance to evaluate some (but not all) of Andriy's changes.
They are really great. I regret that we didn't work on this together from
the beginning, and ended up with two versions of Cayenne. Now it is a real
pain to merge his contribution.
Need to figure out less painful path. I suggest doing it one feature at a
time. We don't have resources to do it in parallel. Lets send a small
proposal for each feature (my work at the current job made me a real spec
junkie), explaining the design, with the classes involved. Kind of like I
did here (only after the fact):
http://objectstyle.org/cayenne/lists/cayenne-devel/2003/01/0085.html
Features are (I am showing functionality, not the implementation, which
must be described in the "proposal "):
1. Sorting. Replacing OperationSorter with an Ashwood-based algorithm.
Resolve the issues of sorting in DataContext vs. sorting in DataNode with
adapter sorting hints. Address sorting of batches (see below), and sorting
of reflexive relationships. Lets start with the link above as initial
proposal for this feature.
2. Batches. Using batches (PreparedStatement.addBatch() and driver specific
tricks) should increase the performance of massive commits. Andriy reported
4x speed increase on Oracle. I wonder how much of it is attributed to the
actual database interaction, and how much - to the custom simplified code
for query translation. I tried Oracle batch features earlier with no such
drastic increase in performance.
3. Database automated regression testing suite for Cayenne. I haven't
looked into this code yet. Andriy, please fill free to fill us in on that.
4. Customizing primary key generation. Right now things like sequence names
and lookup tables are hardcoded per adapter. For instance for Oracle,
Cayenne would do a "pk_entity_name". If there is a need to use custom PK
generation objects (for instance on existing database), it has to be
configured in Cayenne per entity.
Andrus
This archive was generated by hypermail 2.0.0 : Sun Jan 26 2003 - 19:08:53 EST