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

Karl Wright commented on DERBY-6011:
------------------------------------

Adding derby.locks.deadlockTimeout=0 cuts the time from 10x worse than other 
databases down to only 3x worse.  However, even with that setting, there is 
still quite a lot of long-running queries in the log:

{code}
 WARN 2012-12-09 18:59:22,869 (Worker thread '10') - Found a long-running query 
(52511 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 18:59:22,869 (Worker thread '10') -   Parameter 0: 
'033689A1424C66E5C15F3A553ED632D7711F18C7'
 WARN 2012-12-09 18:59:22,869 (Worker thread '10') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 18:59:22,949 (main) - Found a long-running query (52071 ms): 
[SELECT jobid,CAST(COUNT(dochash) AS bigint) AS doccount FROM jobqueue t1 WHERE 
EXISTS(SELECT 'x' FROM jobs t0 WHERE t0.id=t1.jobid AND id=?) GROUP BY jobid]
 WARN 2012-12-09 18:59:22,949 (main) -   Parameter 0: '1355097490879'
 WARN 2012-12-09 18:59:22,949 (Worker thread '0') - Found a long-running query 
(30291 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 18:59:22,949 (Worker thread '0') -   Parameter 0: 
'42B481A0A216F2427C32510AF60BC454003C404E'
 WARN 2012-12-09 18:59:22,949 (Worker thread '0') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) - Found a long-running query 
(45233 ms): [SELECT id FROM jobqueue WHERE jobid=? AND status IN (?,?,?,?,?,?) 
FETCH NEXT 1 ROWS ONLY]
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 0: '1355097490879'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 1: 'A'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 2: 'a'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 3: 'P'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 4: 'F'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 5: 'f'
 WARN 2012-12-09 18:59:22,949 (Finisher thread) -   Parameter 6: 'G'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) - Found a long-running query 
(51101 ms): [SELECT 
t0.id,t0.jobid,t0.dochash,t0.docid,t0.status,t0.failtime,t0.failcount,t0.priorityset
 FROM jobqueue t0 WHERE t0.status IN (?,?) AND t0.checkaction=? AND 
t0.checktime<=? AND EXISTS(SELECT 'x' FROM jobs t1 WHERE t1.status IN (?,?) AND 
t1.id=t0.jobid AND t1.priority=?) AND NOT EXISTS(SELECT 'x' FROM jobqueue t2 
WHERE t2.dochash=t0.dochash AND t2.status IN (?,?,?,?,?,?) AND 
t2.jobid!=t0.jobid) AND NOT EXISTS(SELECT 'x' FROM prereqevents t3,events t4 
WHERE t0.id=t3.owner AND t3.eventname=t4.name) ORDER BY t0.docpriority 
ASC,t0.status ASC,t0.checkaction ASC,t0.checktime ASC FETCH NEXT 120 ROWS ONLY]
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 0: 'P'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 1: 'G'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 2: 'R'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 3: '1355097511858'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 4: 'A'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 5: 'a'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 6: '5'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 7: 'A'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 8: 'F'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 9: 'a'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 10: 'f'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 11: 'D'
 WARN 2012-12-09 18:59:22,969 (Stuffer thread) -   Parameter 12: 'd'
 WARN 2012-12-09 19:00:03,021 (Worker thread '6') - Found a long-running query 
(40052 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:00:03,021 (Worker thread '6') -   Parameter 0: 
'089C4A318256A5BE24751A18C15B12534088AE53'
 WARN 2012-12-09 19:00:03,021 (Worker thread '6') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:00:03,091 (main) - Found a long-running query (40142 ms): 
[SELECT jobid,CAST(COUNT(dochash) AS bigint) AS doccount FROM jobqueue t1 WHERE 
status IN (?,?,?,?,?,?) AND EXISTS(SELECT 'x' FROM jobs t0 WHERE t0.id=t1.jobid 
AND id=?) GROUP BY jobid]
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 0: 'A'
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 1: 'a'
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 2: 'P'
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 3: 'F'
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 4: 'f'
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 5: 'G'
 WARN 2012-12-09 19:00:03,091 (main) -   Parameter 6: '1355097490879'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) - Found a long-running query 
(30124 ms): [SELECT id FROM jobqueue WHERE jobid=? AND status IN (?,?,?,?,?,?) 
FETCH NEXT 1 ROWS ONLY]
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 0: '1355097490879'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 1: 'A'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 2: 'a'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 3: 'P'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 4: 'F'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 5: 'f'
 WARN 2012-12-09 19:00:03,091 (Finisher thread) -   Parameter 6: 'G'
 WARN 2012-12-09 19:00:03,111 (Worker thread '8') - Found a long-running query 
(39502 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:00:03,111 (Worker thread '8') -   Parameter 0: 
'05A24080B87E69BADDA0A18B3FFD15C7585AFDEE'
 WARN 2012-12-09 19:00:03,111 (Worker thread '8') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) - Found a long-running query 
(40112 ms): [SELECT docpriority,jobid,dochash,docid FROM jobqueue t0 WHERE 
status IN (?,?) AND checkaction=? AND checktime<=? AND EXISTS(SELECT 'x' FROM 
jobs t1 WHERE t1.status IN (?,?) AND t1.id=t0.jobid)  ORDER BY docpriority 
ASC,status ASC,checkaction ASC,checktime ASC FETCH NEXT 1 ROWS ONLY]
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) -   Parameter 0: 'P'
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) -   Parameter 1: 'G'
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) -   Parameter 2: 'R'
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) -   Parameter 3: '1355097511858'
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) -   Parameter 4: 'A'
 WARN 2012-12-09 19:00:03,111 (Stuffer thread) -   Parameter 5: 'a'
 WARN 2012-12-09 19:00:43,138 (Worker thread '8') - Found a long-running query 
(40007 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:00:43,138 (Worker thread '8') -   Parameter 0: 
'06115678F7341BDA326CEC24B8EBC61068045500'
 WARN 2012-12-09 19:00:43,138 (Worker thread '8') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:00:43,218 (main) - Found a long-running query (40127 ms): 
[SELECT jobid,CAST(COUNT(dochash) AS bigint) AS doccount FROM jobqueue t1 WHERE 
status IN (?,?,?,?,?) AND EXISTS(SELECT 'x' FROM jobs t0 WHERE t0.id=t1.jobid 
AND id=?) GROUP BY jobid]
 WARN 2012-12-09 19:00:43,218 (main) -   Parameter 0: 'C'
 WARN 2012-12-09 19:00:43,218 (main) -   Parameter 1: 'Z'
 WARN 2012-12-09 19:00:43,218 (main) -   Parameter 2: 'F'
 WARN 2012-12-09 19:00:43,218 (main) -   Parameter 3: 'f'
 WARN 2012-12-09 19:00:43,218 (main) -   Parameter 4: 'G'
 WARN 2012-12-09 19:00:43,218 (main) -   Parameter 5: '1355097490879'
 WARN 2012-12-09 19:00:43,218 (Worker thread '1') - Found a long-running query 
(39417 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:00:43,218 (Worker thread '1') -   Parameter 0: 
'0593EFDEBC69F8EF57E3BBC6C028889F9EF149C5'
 WARN 2012-12-09 19:00:43,218 (Worker thread '1') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:00:43,218 (Worker thread '12') - Found a long-running query 
(48812 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:00:43,218 (Worker thread '12') -   Parameter 0: 
'0F87592E9B7A46E5ED62CD24494494340CDF9017'
 WARN 2012-12-09 19:00:43,218 (Worker thread '12') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:00:43,218 (Worker thread '9') - Found a long-running query 
(32241 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:00:43,218 (Worker thread '9') -   Parameter 0: 
'0CDC72CE178F4A53C54B31EEAA879ED10C8ABF50'
 WARN 2012-12-09 19:00:43,218 (Worker thread '9') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) - Found a long-running query 
(30112 ms): [SELECT id FROM jobqueue WHERE jobid=? AND status IN (?,?,?,?,?,?) 
FETCH NEXT 1 ROWS ONLY]
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 0: '1355097490879'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 1: 'A'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 2: 'a'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 3: 'P'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 4: 'F'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 5: 'f'
 WARN 2012-12-09 19:00:43,218 (Finisher thread) -   Parameter 6: 'G'
 WARN 2012-12-09 19:01:03,308 (Worker thread '0') - Found a long-running query 
(40889 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:01:03,308 (Worker thread '0') -   Parameter 0: 
'42B481A0A216F2427C32510AF60BC454003C404E'
 WARN 2012-12-09 19:01:03,308 (Worker thread '0') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:01:03,448 (Worker thread '2') - Found a long-running query 
(32970 ms): [SELECT id,status,checktime FROM jobqueue WHERE dochash=? AND 
jobid=? FOR UPDATE]
 WARN 2012-12-09 19:01:03,448 (Worker thread '2') -   Parameter 0: 
'19EA2C455D02F87BD90F42697A383329C87528EB'
 WARN 2012-12-09 19:01:03,448 (Worker thread '2') -   Parameter 1: 
'1355097490879'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) - Found a long-running query 
(60227 ms): [SELECT 
t0.id,t0.jobid,t0.dochash,t0.docid,t0.status,t0.failtime,t0.failcount,t0.priorityset
 FROM jobqueue t0 WHERE t0.status IN (?,?) AND t0.checkaction=? AND 
t0.checktime<=? AND EXISTS(SELECT 'x' FROM jobs t1 WHERE t1.status IN (?,?) AND 
t1.id=t0.jobid AND t1.priority=?) AND NOT EXISTS(SELECT 'x' FROM jobqueue t2 
WHERE t2.dochash=t0.dochash AND t2.status IN (?,?,?,?,?,?) AND 
t2.jobid!=t0.jobid) AND NOT EXISTS(SELECT 'x' FROM prereqevents t3,events t4 
WHERE t0.id=t3.owner AND t3.eventname=t4.name) ORDER BY t0.docpriority 
ASC,t0.status ASC,t0.checkaction ASC,t0.checktime ASC FETCH NEXT 120 ROWS ONLY]
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 0: 'P'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 1: 'G'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 2: 'R'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 3: '1355097603111'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 4: 'A'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 5: 'a'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 6: '5'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 7: 'A'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 8: 'F'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 9: 'a'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 10: 'f'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 11: 'D'
 WARN 2012-12-09 19:01:03,458 (Stuffer thread) -   Parameter 12: 'd'
{code}

Can you explain this?

                
> Derby performs very badly (seems to deadlock and timeout) in very simple 
> multi-threaded tests
> ---------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6011
>                 URL: https://issues.apache.org/jira/browse/DERBY-6011
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.7.1.1, 10.8.2.2, 10.9.1.0
>         Environment: Lenovo laptop with SSD's, Windows 7, 64-bit, Sun JDK 
> 1.6.xx
>            Reporter: Karl Wright
>         Attachments: derby.log, manifoldcf.log
>
>
> The Apache ManifoldCF project supports Derby as one of its underlying 
> databases.  Simple tests, however, demonstrate that Derby is apparently 
> deadlocking and timing out repeatedly under multi-thread conditions.  This 
> problem is long-standing, and is not exhibited by any other database 
> ManifoldCF supports, and makes a simple test take between 6x and 12x as long.
> There is a trivial test with demonstrates the problem vs. other databases.  
> Please do the following (once you have java 1.6+, svn 1.7+, and ant 1.7+ 
> available):
> (1) Check out https://svn.apache.org/repos/asf/manifoldcf/trunk
> (2) Run the following ant target to download the dependencies: "ant 
> make-core-deps"
> (3) Run the Derby test: "ant run-rss-tests-derby" . Note the time required - 
> at least 180 seconds, can be up to 360 seconds.
> (4) Run the equivalent HSQLDB test: "ant run-rss-tests-HSQLDB".  This test 
> takes about 31 seconds to run.
> The output of the Derby test can be found in the directory 
> "tests/rss/test-derby-output".  Have a look at manifoldcf.log, where all 
> long-running queries are reported.  Derby.log is also included, which shows 
> only that during the test's cleanup phase the database is deleted before it 
> is shutdown, which is not pertinent to the performance issue.
> I am available to assist with ManifoldCF, if that seems to be required.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to