db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4565) Create concurrency test to stress sequence generators.
Date Thu, 15 Apr 2010 19:58:50 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Rick Hillegas updated DERBY-4565:

    Attachment: derby-4565-xx-deoptimized.diff

Attaching derby-4565-xx-deoptimized.diff and derby-4565-throughput.html.

1) derby-4565-xx-deoptimized.diff is a patch which removes the optimization that pre-allocates
ranges of sequence numbers. After applying this patch, each execution of "next value for"
causes the engine to update the corresponding SYSSEQUENCES row.

2) derby-4565-throughput.html describes some experiments I ran to compare transaction throughput
with and without the optimization.

Here is a summary of my findings:

i) The throughput gain is impressive if your transaction simply grabs one number from a single
sequence generator. On my dual-core Macbook Pro, I saw a 305% throughput boost in this case.

ii) The throughput gain is less impressive if your transaction grabs 100 numbers from a single
sequence generator. In this case the optimization boosted throughput only by 30%.

iii) The throughput gain can be even less impressive if your transaction grabs a sequence
number and stuffs it into a table. Here the benefits of the optimization may be swamped by
other contention in the engine. In the worst case which I measured, the optimization only
boosted throughput by 14%.

In short, the added complexity of the optimization may seem more or less justified depending
on the nature of your workload.

> Create concurrency test to stress sequence generators.
> ------------------------------------------------------
>                 Key: DERBY-4565
>                 URL: https://issues.apache.org/jira/browse/DERBY-4565
>             Project: Derby
>          Issue Type: Task
>          Components: SQL, Test
>    Affects Versions:
>            Reporter: Rick Hillegas
>            Assignee: Rick Hillegas
>         Attachments: derby-4565-01-ad-firstRev.diff, derby-4565-02-aa-useWaitTimeout.diff,
derby-4565-02-ab-useWaitTimeout.diff, derby-4565-03-aa-academicTest.diff, derby-4565-throughput.html,
> Create a concurrency test to find bottlenecks and bugs in sequence generators.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message