You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rick Hillegas (Commented) (JIRA)" <ji...@apache.org> on 2012/04/13 21:00:17 UTC

[jira] [Commented] (DERBY-5471) Stress test for identity columns and sequence seem to be taking longer on trunk compared to 10.8.2.2 RC3

    [ https://issues.apache.org/jira/browse/DERBY-5471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13253647#comment-13253647 ] 

Rick Hillegas commented on DERBY-5471:
--------------------------------------

I am unable to reproduce Mamta's results, using the current head of the trunk. Perhaps something has changed in the trunk since Mamta ran her test. I did run a slightly different version of the test. I ran with debugging set to 0 rather than 1 in order to silence the sql printout during the warm-up phase.

I am puzzled by Mamta's results. Given those parameters, the test is supposed to run for a fixed, default length of time: 30 seconds of warmup followed by 60 seconds of actual test. My test runs consistently took between 1:32 and 1:34 seconds, regardless of the codeline which I used. I'm puzzled by Mamta's report that test runs took 10-20 seconds longer than that on 10.8.2.2 and 1 to 2 minutes longer on the trunk.

--------------------

I ran the following test 3 times each on 10.8.2.2 (with the 10.9 derbyTesting.jar) and on the current head of trunk (compiled insanely so that I compared apples to apples):

java -cp $CLASSPATH org.apache.derbyTesting.perf.clients.Runner -driver org.apache.derby.jdbc.EmbeddedDriver -init -load seq_gen -load_opts debugging=0,numberOfGenerators=5,tablesPerGenerator=10,insertsPerTransaction=100,identityTest=1 -gen b2b -threads 10 

The runs took on average 1:33 seconds. The average throughput was:

10.8.2.2: 321 tx/sec

trunk: 427 tx/sec (probably the increase is due to the larger pre-allocation range on the trunk)


--------------------

I ran the following test 3 times each on 10.8.2.2 and on the current head of trunk:

java -cp $CLASSPATH org.apache.derbyTesting.perf.clients.Runner -driver org.apache.derby.jdbc.EmbeddedDriver -init -load seq_gen -load_opts debugging=0,numberOfGenerators=5,tablesPerGenerator=10,insertsPerTransaction=100,identityTest=1 -gen b2b -threads 10 

Again, test runs took an average of 1:33 seconds. The average throughput was:

10.8.2.2: 320 tx/sec

trunk: 315 tx/sec


--------------------

Other than changes to the trunk since Mamta logged this bug, my only theories about the discrepancy in our results would be

1) some different behavior when you run with tracing on (debugging=1)

2) platform differences (Windows vs. Mac OSX).

                
> Stress test for identity columns and sequence seem to be taking longer on trunk compared to 10.8.2.2 RC3
> --------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5471
>                 URL: https://issues.apache.org/jira/browse/DERBY-5471
>             Project: Derby
>          Issue Type: Task
>          Components: Test
>    Affects Versions: 10.9.0.0
>         Environment: Windows XP version 2.18
> Genuine Intel(R) CPU T2600 dual core @2.16GHz 2.00GB of RAM 
> $ java -version
> java version "1.6.0"
> Java(TM) SE Runtime Environment (build pwi3260sr9fp1-20110208_03(SR9 FP1))
> IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows XP x86-32 jvmwi3260sr9-201102
> 03_74623 (JIT enabled, AOT enabled)
> J9VM - 20110203_074623
> JIT  - r9_20101028_17488ifx3
> GC   - 20101027_AA)
> JCL  - 20110203_01
>            Reporter: Mamta A. Satoor
>
> I have been trying to run org.apache.derbyTesting.perf.clients.Runner (which provides ways to stress test sequence generator and identity columns) on trunk and 10.8.2.2 RC3 to compare the performance and I find that it takes almost double the time for the tests to finish on trunk. Additionally, the identity column test consistently ran into lock timeouts on trunk. I am running with insane jars on trunk and 10.8.2.2 RC3. The test in question is not in official jars for the release candidate so I manually copied them to 10.8.2.2 RC3 environment during my test(basically copied the entire org.apache.derbyTesting.perf.clients.Runner directory from trunk to 10.8.2.2 RC3 environment).
> Command to do sequence stress testing is as follows
> java org.apache.derbyTesting.perf.clients.Runner -driver org.apache.derby.jdbc.EmbeddedDriver -init -load seq_gen -load_opts debugging=1,numberOfGenerators=5,tablesPerGenerator=10,insertsPerTransaction=100,identityTest=0 -gen b2b -threads 10
> Command to do identity column stress testing is as follows
> time java org.apache.derbyTesting.perf.clients.Runner -driver org.apache.derby.jdbc.EmbeddedDriver -init -load seq_gen -load_opts debugging=1,numberOfGenerators=5,tablesPerGenerator=10,insertsPerTransaction=100,identityTest=1 -gen b2b -threads 10
> An average run on 10.8.2.2 RC3 for sequence stress test is about a minute and 46 secs. On trunk, on an average it takes 2 and half minutes
> An average run on 10.8.2.2 RC3 for identity stress test is about a minute and 50 secs. On trunk, on an average it takes 3minsutes and 30 secs. Also, on trunk, this test runs into lock timeouts.
> I was wondering if this is the right behavior. The performance should be better in trunk because of pre-allocation of range for sequences and identity columns(which defaults to 20) but unless I have missed something in my tests, the results don't show the performance improvement.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira