db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arm...@apache.org
Subject svn commit: r474575 - in /db/ojb/branches/OJB_1_0_RELEASE: ./ src/doc/forrest/src/documentation/content/xdocs/ src/doc/forrest/src/documentation/content/xdocs/docu/ src/doc/forrest/src/documentation/content/xdocs/docu/guides/
Date Mon, 13 Nov 2006 23:30:54 GMT
Author: arminw
Date: Mon Nov 13 15:30:53 2006
New Revision: 474575

URL: http://svn.apache.org/viewvc?view=rev&rev=474575
Log:
update docs

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/build.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml
    db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml

Modified: db/ojb/branches/OJB_1_0_RELEASE/build.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/build.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/build.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/build.xml Mon Nov 13 15:30:53 2006
@@ -17,10 +17,6 @@
  */
 -->
 <!-- @version $Id$ -->
-<!--
-     ObJectRelationalBridge ANT build configuration.
-     initial author: Thomas Mahler
--->
 
 <project name="ObJectRelationalBridge" default="jar" basedir=".">
 
@@ -232,7 +228,6 @@
             <arg value="${JDBC}"/>
         </java>
         <replace dir="${build.src}" token="$$VERSION$$" value="${version}"/>
-        <replace dir="${build.src}" token="$$VERSION$$" value="${version}"/>
         <replace dir="${build.src}" token="$$MAJOR$$" value="${major}"/>
         <replace dir="${build.src}" token="$$MINOR$$" value="${minor}"/>
         <replace dir="${build.src}" token="$$BUILD$$" value="${build}"/>
@@ -361,10 +356,16 @@
 
     </target>
 
+    <!-- ================================================================== -->
+    <!-- prepare test database                                              -->
+    <!-- ================================================================== -->
     <target name="prepare-testdb"
             description="prepare testdb using torque or ddlutils"
             depends="prepare-testdb-torque, prepare-testdb-ddlutils"/>
- 
+
+    <!-- ================================================================== -->
+    <!-- prepare test database using torque                                 -->
+    <!-- ================================================================== -->
     <target name="prepare-testdb-torque"
             description="prepare testdb using torque"
             depends="prepare, prepare-repository"
@@ -401,6 +402,9 @@
 
     </target>
 
+    <!-- ================================================================== -->
+    <!-- prepare testdb using DdlUtils                                      -->
+    <!-- ================================================================== -->
     <target name="prepare-testdb-ddlutils"
             description="prepare testdb using DdlUtils"
             depends="prepare, prepare-repository"
@@ -890,6 +894,12 @@
         <copy todir="${build.doc}">
             <fileset dir="${src.forrest}"/>
         </copy>
+
+        <!-- Prepare release-notes doc -->
+        <loadfile property="release-notes.content" srcfile="${basedir}/release-notes.txt"/>
+        <replace file="${build.doc}/src/documentation/content/xdocs/release-notes.xml" token="@@content@@" value="${release-notes.content}"/>
+
+
         <!-- clean forrest build -->
         <ant antfile="${env.FORREST_HOME}/main/forrest.build.xml"
     		 dir="${build.doc}"
@@ -924,6 +934,7 @@
             <param name="forrest-mode" value="site"/>
         </antcall>
         <!-- Finally we can copy the generated documentation to its designated place -->
+        <delete dir="${doc}"/>
         <mkdir dir="${doc}"/>
         <copy todir="${doc}">
             <fileset dir="${forrest.output.dir}"/>
@@ -1490,8 +1501,6 @@
     </target>
 
     <target name="perf-test-jar" depends="prepare">
-
-
         <!-- compile perf classes -->
         <javac srcdir="${build.srctest}"
             includes="**/performance/*"

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/getting-started.xml Mon Nov 13 15:30:53 2006
@@ -134,7 +134,7 @@
                     for details). Therefore, this directory also contains the build script of Torque, but
                     you won't need to invoke it directly.
                 </dd>
-                <dt><strong>src/java</strong></dt>
+                <dt><strong>src/test</strong></dt>
                 <dd>
                     Place your unit tests in here.
                 </dd>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/odmg-guide.xml Mon Nov 13 15:30:53 2006
@@ -81,8 +81,10 @@
                     auto_update="none"
                 </li>
                 <li>
-                    auto-delete="none" (in this case the reference between the objects, the foreign key entry will 
-                    be nullified) or auto-delete="object" (to enable cascading delete, since OJB 1.0.4!)
+                    auto-delete="none", disable cascading delete, in this case the foreign key will
+                    be nullified, but the referenced object will not be deleted too) or  use
+                    <br/>
+                    auto-delete="object" (to enable cascading delete, since OJB 1.0.4!)
                 </li>
             </ul>
             <note>
@@ -321,6 +323,36 @@
                         feature and to disable OJB's object ordering.
                     </td>
                 </tr>
+                <tr>
+                    <td>
+                        OptimizedTransientObjectDetection
+                    </td>
+                    <td>
+                        If set 'true' an optimized and performant way is used to detect the
+                        state (persistent/transient) of an object. The detection of transient
+                        objects could be costly (e.g. if a select of ID in database is used to
+                        check if object already exists) OJB does in the following order:
+                        <ol>
+                            <li>
+                                Check if the object Identity mark the specified object as transient.
+                                If this is 'false' the object has populated primary key fields,
+                                if 'true' at least one PK field is <em>null</em>
+                                and the object is transient.
+                            </li>
+                            <li>
+                                Then we check if the object was already registered in current transaction.
+                                If it's already registered OJB ask for current state (transient/persistent).
+                            </li>
+                            <li>
+                                If the primary key fields (all fields are populated) are defined/mapped
+                                as 'autoIncrement' fields and 'optimizedTransientObjectDetection' is enabled,
+                                OJB assume that the object is persistent. If the PK fields are not
+                                'autoIncrement' fields or the optimized detection is disabled a database
+                                "exists object"-query is performed to check if the object is persistent or transient.
+                            </li>
+                        </ol>
+                    </td>
+                </tr>
                 <!--<tr>-->
                     <!--<td>-->
                         <!--NoteUserOrder-->
@@ -432,34 +464,34 @@
                         <br/>
                         Use this methods to change the used OQL query result class at runtime.
                         Description can be found in
-                        <a href="#configuration">
-                            <em>Configuration Properties</em>
-                        </a> section
-                        and in javadoc of
-                        <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                        <a href="#configuration"><em>Configuration Properties</em></a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
                     </li>
                     <li>
                         is/setImpliciteWriteLocks
                         <br/>
-                        Use this methods to global change the associated locking type at runtime when implicit
-                        locking is used.
+                        Use this methods to change the associated locking type at runtime for the whole
+                        applicationwhen implicit locking is used.
                         Description can be found in
-                        <a href="#configuration">
-                            <em>Configuration Properties</em>
-                        </a> section
-                        and in javadoc of
-                        <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                        <a href="#configuration"><em>Configuration Properties</em> </a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
                     </li>
                     <li>
                         is/setOrdering
                         <br/>
                         Use this methods to global enable/disable OJB's object ordering algorithm.
                         Description can be found in
-                        <a href="#configuration">
-                            <em>Configuration Properties</em>
-                        </a> section
-                        and in javadoc of
-                        <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                        <a href="#configuration"><em>Configuration Properties</em></a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
+                    </li>
+                    <li>
+                        is/setOptimizedTransientObjectDetection
+                        <br/>
+                        Use this method to global enable/disable use a performance-optimized
+                        check to differ persistent/transient objects.
+                        Description can be found in
+                        <a href="#configuration"><em>Configuration Properties</em></a> section
+                        and in javadoc of <a href="ext:odmg-implementation-ext">ImplementationExt</a>.
                     </li>
                     <!--<li>-->
                         <!--is/setNoteUserOrder-->
@@ -513,6 +545,12 @@
                     </li>
                     <li>
                         is/setOrdering
+                        <br/>
+                        Description can be found in javadoc of
+                        <a href="ext:odmg-transaction-ext">TransactionExt</a>.
+                    </li>
+                    <li>
+                        is/setOptimizedTransientObjectDetection
                         <br/>
                         Description can be found in javadoc of
                         <a href="ext:odmg-transaction-ext">TransactionExt</a>.

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/performance.xml Mon Nov 13 15:30:53 2006
@@ -95,6 +95,10 @@
                 <ul>
                     <li>
                         <code>perf-test</code>  single/multi-threaded performance (stress) test of PB/ODMG api against native JDBC
+                        <note>
+                            The <em>performance test</em> output is written to console and in a
+                            file called <em>OJB-Performance-Result.txt</em>.
+                        </note>
                     </li>
                     <li>
                         <code>performance</code>  single-threaded test, OJB API implementations (PB, ODMG) against native JDBC
@@ -153,10 +157,10 @@
                     shouldn't cause any problems.
                 </p>
                 <p>
-                    Per default OJB use a in-memory hsql database, by changing the
+                    By default OJB use HSQL database (in-memory mode), by changing the
                     <a href="site:repository/jdbc-connection-descriptor">JdbcConnectionDescriptor</a>
-                    in the <em>repository.xml</em> file or modify the <em>build.properties</em> file when
-                    running OJB out of the box you can point to your specific RDBMS.
+                    in the <em>repository.xml</em> file or by modifing the <em>build.properties</em> file when
+                    running OJB out of the box, you can point to your specific RDBMS.
                     <br/>
                     Please refer to this
                     <a href="site:platform/select-profile">document for details</a>.
@@ -168,13 +172,66 @@
                 <source><![CDATA[
     ant perf-test]]></source>
                 <p>
-                    A typical output of this test, using OJB against in-memory hsql
-                    (batch statements and pooled prepared statements are not used)
-                    looks like this:
+                    If you want to play with different test settings, e.g. settings conform to
+                    your requirement, modify the ant target for this test.
+                    <br/>
+                    To change the test properties go to target
+                    <code>perf-test</code>
+                    in the
+                    <code>build.xml</code> file and change the program parameter.
+                    <br/>
+                    The test needs five parameter:
+                    <br/>- A comma separated list of the test implementation classes (no blanks!)
+                    <br/>- The number of test loops
+                    <br/>- The number of concurrent threads
+                    <br/>- The number of managed objects per thread
+                    <br/>- The desired test mode.
+                    <code>false</code> means run in
+                    performance mode,
+                    <code>true</code> means run in stress mode
+                    (useful only for developer to check stability).
+                </p>
+                <source><![CDATA[
+<target name="perf-test" depends="prepare-testdb"
+        description="Simple performance benchmark and stress test for PB- and ODMG-api">
+    <java fork="yes" classname="org.apache.ojb.performance.PerfMain"
+          dir="${build.test}/ojb" taskname="ojb" failonerror="true" >
+        <classpath refid="runtime-classpath"/>
+        <!-- comma separated list of the PerfTest implementations -->
+        <arg value=
+        "org.apache.ojb.compare.OJBPerfTest$JdbcPerfTest,
+        org.apache.ojb.compare.OJBPerfTest$PBPerfTest,
+        org.apache.ojb.compare.OJBPerfTest$ODMGPerfTest"
+        />
+        <!-- test loops, default was 6 -->
+        <arg value="6"/>
+        <!-- performed threads, default was 12 -->
+        <arg value="12"/>
+        <!-- number of managed objects per thread, default was 500 -->
+        <arg value="500"/>
+        <!-- if 'false' we use performance mode, 'true' we do run in stress mode -->
+        <arg value="false"/>
+        <!-- if 'true' all log messages will be print -->
+        <arg value="true"/>
+        <jvmarg value="-Xms128m"/>
+        <jvmarg value="-Xmx256m"/>
+    </java>
+    <!-- do some cleanup -->
+    <ant target="copy-testdb"/>
+</target>]]></source>
+                <p>
+                    It's easy to change target database. Please
+                    refer to this
+                    <a href="site:platform/select-profile">document for details</a>.
+                </p>
+                <p>
+                    A typical output of this test, using OJB against in-memory HSQL database
+                    (connection pooling and pooled prepared statements are enabled, objects put
+                    to a second-level cache, no batching) looks like this:
                     </p>
                 <source><![CDATA[
 [ojb] ================================================================================================
-[ojb]             OJB PERFORMANCE TEST SUMMARY, Fri Feb 03 12:21:30 CET 2006
+[ojb]             OJB PERFORMANCE TEST SUMMARY, Mon Oct 30 14:02:52 CET 2006
 [ojb] ------------------------------------------------------------------------------------------------
 [ojb]   12 concurrent threads, handle 500 objects per thread
 [ojb]   500 INSERT operations per test instance
@@ -188,11 +245,11 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] JDBC        100         587(100%)   25(100%)    26(100%)    255(5100%)  531(100%)   211(100%)
-[ojb] PB          164         1362(232%)  80(320%)    75(288%)    5(100%)     897(168%)   269(127%)
-[ojb] ODMG        233         1716(292%)  102(408%)   98(376%)    9(180%)     1276(240%)  604(286%)
+[ojb] JDBC        100         159(100%)   45(109%)    26(100%)    127(2116%)  185(100%)   198(159%)
+[ojb] PB          140         523(328%)   47(114%)    68(261%)    6(100%)     242(130%)   148(119%)
+[ojb] ODMG        151         598(376%)   41(100%)    58(223%)    6(100%)     290(156%)   124(100%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 72 [sec]]]></source>
+[ojb] PerfTest takes 36 [sec]]]></source>
                 <p>
                     This test run shows the overhead caused by the O/R layer compared to handcoded sql
                     statements. Most overhead result in populate the two-level cache which is useless
@@ -209,23 +266,26 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] JDBC        100         6064(100%)  56(107%)    55(100%)    1326(14733%)6259(154%)  3973(125%)
-[ojb] PB          105         11143(183%) 62(119%)    80(145%)    9(100%)     4062(100%)  3178(100%)
-[ojb] ODMG        113         11055(182%) 52(100%)    67(121%)    44(488%)    5067(124%)  3741(117%)
+[ojb] PB          100         4401(179%)  14(100%)    16(100%)    3(100%)     909(100%)   709(100%)
+[ojb] ODMG        103         3863(157%)  22(157%)    22(137%)    6(200%)     1292(142%)  1024(144%)
+[ojb] JDBC        109         2453(100%)  19(135%)    16(100%)    648(21600%) 2390(262%)  1089(153%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 430 [sec]]]></source>
+[ojb] PerfTest takes 165 [sec]]]></source>
                 <p>
                     You can see that the overhead caused by the O/R layer disappears bit by bit because
                     the database latency and the network traffic is much longer than the OJB overhead.
+                    Only on insert of new data OJB couldn't keep up with the JDBC-layer. Because of using
+                    a cache OJB show a dramatic better performance when doing a "lookup by primary key
+                    (by Identity)".
                 </p>
                 <p>
-                    If we now enable prepared statement pooling (for OJB and the JDBC layer) and batch
-                    statements (for OJB only - unfair game but adding all these features to the sample
-                    JDBC-layer is too complex) the result will be completely different.
+                    If we now enable batch statements (for OJB only - unfair game but adding all
+                    these features to the sample JDBC-layer is too complex) the result will be
+                    completely different.
                     <br/>
-                    The JDBC-layer show about 50% better performance because of the prepared statement
-                    pooling. OJB with prepared stament pooling and enabled batch mode shows about five
-                    times better performance for insert, update and delete operations.
+                    The JDBC-layer show the same performance because nothing changed.
+                    OJB with enabled batch mode shows about 4-11 times better performance
+                    for insert, update and delete operations.
                 </p>
                 <source><![CDATA[
 ....
@@ -233,11 +293,11 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] PB          100         2176(100%)  41(100%)    45(100%)    8(100%)     311(104%)   52(100%)
-[ojb] ODMG        117         2428(111%)  80(195%)    70(155%)    18(225%)    297(100%)   182(350%)
-[ojb] JDBC        417         4078(187%)  69(168%)    65(144%)    1432(17900%)4224(1422%) 1110(2134%)
+[ojb] ODMG        100         1396(100%)  24(120%)    19(126%)    4(133%)     102(100%)   66(108%)
+[ojb] PB          105         1453(104%)  23(115%)    24(160%)    3(100%)     132(129%)   61(100%)
+[ojb] JDBC        386         2530(181%)  20(100%)    15(100%)    398(13266%) 2450(2401%) 814(1334%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 139 [sec]]]></source>
+[ojb] PerfTest takes 86 [sec]]]></source>
                 <p>
                     Now OJB trounce the JDBC-layer when running a mass test.
                 </p>
@@ -250,12 +310,14 @@
                     a few objects per transaction.
                     <br/>
                     If we chose a more realistic scenario e.g. 30 threads handle 20 objects per thread
-                    (same configuration settings as above, OJB batch mode enabled) nevertheless the result
-                    is near-balance:
+                    the overhead of the O/R layer become more and more important, because the time of the
+                    network traffic is drastic reduced (compared to handle 500 objects).
+                    With the same configuration settings as above - OJB batch mode enabled - nevertheless
+                    the result is near-balance:
                 </p>
                 <source><![CDATA[
 [ojb] ================================================================================================
-[ojb]             OJB PERFORMANCE TEST SUMMARY, Fri Feb 17 13:08:27 CET 2006
+[ojb]             OJB PERFORMANCE TEST SUMMARY, Mon Oct 30 17:06:29 CET 2006
 [ojb] ------------------------------------------------------------------------------------------------
 [ojb]   30 concurrent threads, handle 20 objects per thread
 [ojb]   20 INSERT operations per test instance
@@ -269,11 +331,11 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] PB          100         135(100%)   14(280%)    11(183%)    3(100%)     19(100%)    11(100%)
-[ojb] ODMG        123         151(111%)   11(220%)    14(233%)    4(133%)     43(226%)    16(145%)
-[ojb] JDBC        170         137(101%)   5(100%)     6(100%)     35(1166%)   124(652%)   25(227%)
+[ojb] ODMG        100         16(145%)    1(100%)     1(100%)     0(0%)       4(100%)     2(100%)
+[ojb] PB          107         19(172%)    2(200%)     1(100%)     0(0%)       4(100%)     2(100%)
+[ojb] JDBC        159         11(100%)    1(100%)     1(100%)     6(600%)     10(250%)    10(500%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 144 [sec]]]></source>
+[ojb] PerfTest takes 73 [sec]]]></source>
                 <p>
                     Even if we disable the OJB batch mode to make the test fair, the result is near-balance:
                 </p>
@@ -282,81 +344,25 @@
 [ojb] API         Total       Insert      Fetch       Fetch 2     by Id       Update      Delete
 [ojb]             [%]         [msec]      [msec]      [msec]      [msec]      [msec]      [msec]
 [ojb] ------------------------------------------------------------------------------------------------
-[ojb] JDBC        100         174(100%)   10(100%)    8(100%)     51(5100%)   196(175%)   39(100%)
-[ojb] ODMG        126         384(220%)   15(150%)    11(137%)    0(0%)       124(110%)   69(176%)
-[ojb] PB          158         510(293%)   18(180%)    19(237%)    7(700%)     112(100%)   91(233%)
+[ojb] JDBC        100         12(100%)    1(100%)     1(100%)     6(600%)     13(118%)    9(100%)
+[ojb] PB          142         36(300%)    2(200%)     1(100%)     0(0%)       11(100%)    11(122%)
+[ojb] ODMG        156         34(283%)    3(300%)     2(200%)     0(0%)       18(163%)    11(122%)
 [ojb] ================================================================================================
-[ojb] PerfTest takes 215 [sec]
-                ]]></source>
+[ojb] PerfTest takes 117 [sec]]]></source>
                 <p>
-                    As you can see OJB show a overall good performance compared with a JDBC-layer
+                    As you can see OJB show an overall good performance compared with a JDBC-layer
                     against a RDMS.
+                    <br/>
                     Hence the interesting result: if you have an application that has a lot of object lookups,
                     OJB can be faster than a native JDBC application (without caching extensions) or if
-                    the JDBC-layer doesn't use batch statements, OJB can overall show a better performance.
+                    the JDBC-layer doesn't use batch statements, OJB can overall show a much better
+                    performance.
                 </p>
                 <note>
-                    The <em>performance test</em> output is written to console and in a
-                    file called <em>OJB-Performance-Result.txt</em>.
-                    <br/>
-                    <br/>
                     This simple test only compares the power of OJB and a JDBC-layer
                     relating to a simple "flat" POJO object. Dealing with complex object graphs
                     could give different results.
                 </note>
-                <p>
-                    If you want to play with different test settings, e.g. settings conform to
-                    your requirement, modify the ant target for this test.
-                    <br/>
-                    To change the test properties go to target
-                    <code>perf-test</code>
-                    in the
-                    <code>build.xml</code> file and change the program parameter.
-                    <br/>
-                    The test needs five parameter:
-                    <br/>- A comma separated list of the test implementation classes (no blanks!)
-                    <br/>- The number of test loops
-                    <br/>- The number of concurrent threads
-                    <br/>- The number of managed objects per thread
-                    <br/>- The desired test mode.
-                    <code>false</code> means run in
-                    performance mode,
-                    <code>true</code> means run in stress mode
-                    (useful only for developer to check stability).
-                </p>
-                <source><![CDATA[
-<target name="perf-test" depends="prepare-testdb"
-        description="Simple performance benchmark and stress test for PB- and ODMG-api">
-    <java fork="yes" classname="org.apache.ojb.performance.PerfMain"
-          dir="${build.test}/ojb" taskname="ojb" failonerror="true" >
-        <classpath refid="runtime-classpath"/>
-        <!-- comma separated list of the PerfTest implementations -->
-        <arg value=
-        "org.apache.ojb.compare.OJBPerfTest$JdbcPerfTest,
-        org.apache.ojb.compare.OJBPerfTest$PBPerfTest,
-        org.apache.ojb.compare.OJBPerfTest$ODMGPerfTest"
-        />
-        <!-- test loops, default was 6 -->
-        <arg value="6"/>
-        <!-- performed threads, default was 12 -->
-        <arg value="12"/>
-        <!-- number of managed objects per thread, default was 500 -->
-        <arg value="500"/>
-        <!-- if 'false' we use performance mode, 'true' we do run in stress mode -->
-        <arg value="false"/>
-        <!-- if 'true' all log messages will be print -->
-        <arg value="true"/>
-        <jvmarg value="-Xms128m"/>
-        <jvmarg value="-Xmx256m"/>
-    </java>
-    <!-- do some cleanup -->
-    <ant target="copy-testdb"/>
-</target>]]></source>
-                <p>
-                    It's easy to change target database. Please
-                    refer to this
-                    <a href="site:platform/select-profile">document for details</a>.
-                </p>
             </section>
 
         </section>
@@ -502,23 +508,23 @@
 
     [jdbc] .[performance] INFO: Test for JDBC
     [jdbc] [performance] INFO:
-    [jdbc] [performance] INFO: inserting 1500 Objects: 78 msec
-    [jdbc] [performance] INFO: updating 1500 Objects: 47 msec
-    [jdbc] [performance] INFO: querying 1500 Objects: 31 msec
-    [jdbc] [performance] INFO: querying 1500 Objects: 31 msec
-    [jdbc] [performance] INFO: fetching 1500 Objects: 16 msec
-    [jdbc] [performance] INFO: deleting 1500 Objects: 15 msec
+    [jdbc] [performance] INFO: inserting 1500 Objects: 47 msec
+    [jdbc] [performance] INFO: updating 1500 Objects: 31 msec
+    [jdbc] [performance] INFO: querying 1500 Objects: 16 msec
+    [jdbc] [performance] INFO: querying 1500 Objects: 15 msec
+    [jdbc] [performance] INFO: fetching 1500 Objects: 0 msec
+    [jdbc] [performance] INFO: deleting 1500 Objects: 16 msec
 ....
     [jdbc] Time: 8,75
     [jdbc] OK (1 test)
 
     [ojb] .[performance] INFO: Test for PB-api
     [ojb] [performance] INFO:
-    [ojb] [performance] INFO: inserting 1500 Objects: 93 msec
-    [ojb] [performance] INFO: updating 1500 Objects: 94 msec
-    [ojb] [performance] INFO: querying 1500 Objects: 16 msec
-    [ojb] [performance] INFO: querying 1500 Objects: 16 msec
-    [ojb] [performance] INFO: fetching 1500 Objects: 62 msec
+    [ojb] [performance] INFO: inserting 1500 Objects: 46 msec
+    [ojb] [performance] INFO: updating 1500 Objects: 63 msec
+    [ojb] [performance] INFO: querying 1500 Objects: 0 msec
+    [ojb] [performance] INFO: querying 1500 Objects: 15 msec
+    [ojb] [performance] INFO: fetching 1500 Objects: 31 msec
     [ojb] [performance] INFO: deleting 1500 Objects: 32 msec
 ....
     [ojb] Time: 5,672
@@ -526,12 +532,12 @@
 
     [odmg] .[performance] INFO: Test for ODMG-api
     [odmg] [performance] INFO:
-    [odmg] [performance] INFO: inserting 1500 Objects: 188 msec
-    [odmg] [performance] INFO: updating 1500 Objects: 250 msec
-    [odmg] [performance] INFO: querying 1500 Objects: 531 msec
-    [odmg] [performance] INFO: querying 1500 Objects: 516 msec
+    [odmg] [performance] INFO: inserting 1500 Objects: 78 msec
+    [odmg] [performance] INFO: updating 1500 Objects: 110 msec
+    [odmg] [performance] INFO: querying 1500 Objects: 0 msec
+    [odmg] [performance] INFO: querying 1500 Objects: 16 msec
     [odmg] [performance] INFO: fetching 1500 Objects: 47 msec
-    [odmg] [performance] INFO: deleting 1500 Objects: 171 msec
+    [odmg] [performance] INFO: deleting 1500 Objects: 62 msec
 ....
      [odmg] Time: 13,75
      [odmg] OK (1 test)]]></source>
@@ -545,13 +551,8 @@
                             This is caused by warming up effects of JVM and OJB.
                         </li>
                         <li>
-                            ODMG is much slower than PB or JDBC. This is due to the complex object level
-                            transaction management it is doing and the fact that ODMG doesn't have a specific
-                            method to lookup objects by it's identity. The second reason is responsible for
-                            slow <em>querying</em> results, because in test always a complex query is done for
-                            each object. It is possible to use the PB-api within ODMG, then the query by identity
-                            will be as fast as in PB-api - see
-                            <a href="#multithreaded-performance">results for multi-threaded test</a>.
+                            ODMG is slower than PB or the JDBC layer. This is due to the complex object level
+                            transaction management it is doing.
                         </li>
                         <li>
                             You can see that for HSQLDB operations like insert and update are faster with
@@ -562,8 +563,10 @@
                             is much faster than ordinary database servers and caching the persistent objects
                             when using a in-memory database is pure overhead.
                             <br/>
-                            If you work against Oracle or DB2 the percentual OJB overhead is going down a
-                            lot (to 10 - 15 %), as the database latency is much longer than the OJB overhead.
+                            If you work against Oracle or DB2 the percentual overall OJB overhead is going down a
+                            lot (to 10 - 20 %), as the database latency and network overhead is much longer than
+                            the OJB overhead and when running OJB in batch mode it will beat a none optimized
+                            JDBC layer as shown in <a href="#multithreaded-performance">results for multi-threaded test</a>
                         </li>
                     </ul>
                 <p>
@@ -592,27 +595,19 @@
                 <ul>
                     <li>
                         <p>
-                            The API you use, e.g. PB-api is in many cases faster then the ODMG-api. See
-                            <a href="site:faq/api-differences">which API</a> for more information.
+                            The used API. The PB-api is in many cases faster then the ODMG-api (when using
+                            simple, non-complex object hierarchies). See
+                            <a href="site:faq/api-differences">which API</a> for more information. It's
+                            also possible to combine both API.
                         </p>
                     </li>
-                    <li><p>The <em>autocommit</em> setting of used connections. For best performance
-                        it's recommended to set <em>autocommit</em> 'false' in the <em>jdbc-driver</em>
-                        or to use 'useAutoCommit="2"' setting in
-                        <a href="site:repository/jdbc-connection-descriptor">repository file database setting</a>
-                        to avoid <code>Connection.setAutoCommit(...)</code> calls by OJB.</p>
-                    </li>
-                    <li><p>Use of batch statements by enable <em>batch mode</em> (when supported by the DB) when
-                        insert/update/delete many objects of the same type (e.g. insert ProductGroup with 20 Article objects).
+                    <li><p>Use of batch statements. Enable <em>batch mode</em> (if supported by the DB) when
+                        insert/update/delete many objects of the same type (e.g. insert ProductGroup with
+                        20 Article objects).
                         See <a href="site:repository/jdbc-connection-descriptor"><em>jdbc-connection-descriptor</em></a>
                         <em>batch-mode</em> attribute for more information.</p>
                     </li>
-                    <li><p><a href="site:advanced-technique/persistent-field"><code>PersistentField</code> class
-                        implementation</a>. See <a href="ext:ojb.properties">OJB.properties section
-                        'PersistentFieldClass'</a> to change the implementation.</p>
-                    </li>
-                    <li><p>The used <a href="site:object-cache">cache implementation</a>.</p></li>
-                    <li><p>The <em>JDBC driver</em> settings (e.g. statement caching on/off).</p></li>
+                    <li><p>The <em>JDBC driver</em> settings (e.g. statement caching on/off, ...).</p></li>
                     <li><p>ConnectionFactory implementation / Connection pooling settings (e.g. prepared
                         statement caching if the jdbc-driver doesn't support this feature).
                         See <a href="site:faq">connection pooling</a> for more information.</p>
@@ -621,6 +616,17 @@
                         <a href="site:sequence-manager">sequence manager</a> for
                         more information.</p>
                     </li>
+                    <li><p>The <em>autocommit</em> setting of used connections. Some databases show better
+                        performance when <em>autocommit</em> is set 'false' in the <em>jdbc-driver</em>
+                        or 'useAutoCommit="2"' setting is used in
+                        <a href="site:repository/jdbc-connection-descriptor">the jdbc-connection-descriptor</a>
+                        to avoid <code>Connection.setAutoCommit(...)</code> calls by OJB.</p>
+                    </li>
+                    <li><p>The <a href="site:advanced-technique/persistent-field"><code>PersistentField</code> class
+                        implementation</a>. See <a href="ext:ojb.properties">OJB.properties section
+                        'PersistentFieldClass'</a> to change the implementation.</p>
+                    </li>
+                    <li><p>The used <a href="site:object-cache">cache implementation</a>.</p></li>
                     <li><p>PersistenceBroker pool size. See
                         <a href="ext:ojb.properties">OJB.properties</a> for more information.</p>
                     </li>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml Mon Nov 13 15:30:53 2006
@@ -136,9 +136,9 @@
                 <p>
                     The mandatory
                     <em>className</em> attribute needs the <strong>full-qualified class name</strong>
-                    of the desired sequence-manager implementation or the OJB-shortcut name (since OJB 1.0.5, all
-                    shipped implementations can be declared via a shortcut name - more details see description
-                    of the implementation).
+                    of the desired sequence-manager implementation or the <strong>OJB-shortcut name</strong>
+                    (since OJB 1.0.5, all shipped implementations can be declared via a shortcut
+                    name - more details see description of the implementation class).
                     <br/>
                     If a implementation needs configuration properties you pass them using
                     <a href="site:repository/custom-attribute">custom attribute</a> tags with
@@ -505,11 +505,11 @@
                         <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
                         <a href="site:repository/field-descriptor">field-descriptor</a>
                         (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
-                        the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>nextval</em>:
+                        the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>sequence</em>:
                     </p>
                     <source><![CDATA[
 <!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">-->
-<sequence-manager className="nextval">
+<sequence-manager className="sequence">
     <attribute attribute-name="seq.start" attribute-value="200000"/>
     <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
 

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/mail-archives.xml Mon Nov 13 15:30:53 2006
@@ -49,6 +49,18 @@
                 </tr>
 
                 <tr>
+                    <td>MARC</td>
+                    <td>
+                        <a href="ext:ojb/archives/theaimsgroup/user">ojb-user</a>
+                    </td>
+                    <td>
+                        <a href="ext:ojb/archives/theaimsgroup/dev">ojb-dev</a>
+                    </td>
+                    <td>yes</td>
+                    <td>--</td>
+                </tr>
+
+                <tr>
                     <td>The Mail Archive</td>
                     <td>
                         <a href="ext:ojb/archives/mail-archive/user">ojb-user</a>
@@ -84,17 +96,6 @@
                     <td>--</td>
                 </tr>
 
-                <tr>
-                    <td>MARC</td>
-                    <td>
-                        <a href="ext:ojb/archives/theaimsgroup/user">ojb-user</a>
-                    </td>
-                    <td>
-                        <a href="ext:ojb/archives/theaimsgroup/dev">ojb-dev</a>
-                    </td>
-                    <td>yes</td>
-                    <td>--</td>
-                </tr>
             </table>
         </section>
     </body>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/site.xml Mon Nov 13 15:30:53 2006
@@ -38,7 +38,7 @@
         <features label="Features" href="features.html"/>
         <!-- faq label="FAQ's" href="site:faq" / -->
         <status label="Status" href="status.html"/>
-        <release-notes label="Release Notes" href="ext:release-notes"/>
+        <release-notes label="Release Notes" href="release-notes.html"/>
         <references label="References" href="references.html"/>
         <wiki label="Wiki" href="ext:ojb/wiki-page"/>
         <mail-lists label="Mailing Lists" href="mail-lists.html"/>

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml?view=diff&rev=474575&r1=474574&r2=474575
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/status.xml Mon Nov 13 15:30:53 2006
@@ -28,7 +28,7 @@
         </p>
         <p>
             Any known issues, including for the parts of OJB that are <em>stable</em>,
-            can be found in <a href="ext:release-notes">release-notes.txt</a>.
+            can be found in <a href="site:release-notes">release-notes</a>.
         </p>
         <table class="ojb">
 



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


Mime
View raw message