Merging Cayenne-Andriy with Cayenne :-)

From: Andrus (andru..bjectstyle.org)
Date: Sun Jan 26 2003 - 19:09:07 EST

  • Next message: Craig Miskell: "Re: Merging Cayenne-Andriy with Cayenne :-)"

    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