Since you are using repeatable read, this should not be a problem. And
regarding autocommit=0, I don't think it is playing any role here. From the
show processlist, if at all, at the max there were only two processes acting
on the row. But still this should not happen as your query should be kept in
the wait queue and served back once the lock gets free. 

Also check that no I/O contention is going on(This may be the cause to wait
for longer times for getting the lock), when you get into this problem. Also
have a look at your INNODB parameters and find out if any tuning is
required.

sujay

-----Original Message-----
From: Tony Leake [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, October 05, 2005 7:55 PM
To: Sujay Koduri
Cc: mysql@lists.mysql.com
Subject: RE: innodb locking

On Wed, 2005-10-05 at 07:12 -0700, Sujay Koduri wrote:
> Is this happening every time you try this, or it happened first time?

It's not every time but this is not the first. Mostly the query is ok, but I
would like to find out why it's happening.

> Also can you please tell what isolation level are you using now.

I am using the default which i beleive is REPEATABLE READ. The particular
query that is failing is done using autocommit as it a standalone query.

Thanks

tony


> 
> sujay
> 
> -----Original Message-----
> From: Tony Leake [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, October 05, 2005 7:27 PM
> To: mysql@lists.mysql.com
> Subject: innodb locking
> 
> Hi,
> 
> I have a query:
> 
> UPDATE dbseXyzOrders.tblOrder SET intPoUid = 98 WHERE intOrderUid =
> 100000798
> 
> intOrderUid is the primary key
> 
> There are 25 columns in the table and a further 8 of these have 
> indexes on them. The table is innodb
> 
> I have just tried to run the above query 3 times and i got the 
> follwing error
> 
> Invalid Query Lock wait timeout exceeded; try restarting transaction
> 
> AFAIK innodb locks on row level, so does that mean that something else 
> is locking that row and won't let me update. If so how can i find out
what?
> 
> Here is a copy of what mytop says at the time the query is being run
> 
> Thanks for any help
> 
> 
> MySQL on localhost (4.1.8a-Debian_1-log) up 4+08:28:06 [15:07:19]
>  Queries: 6.0M   qps:   17 Slow:   120.0         Se/In/Up/De(%):
> 68/19/01/00
>              qps now:    8 Slow qps: 0.0  Threads:    7 (   3/   0)
> 77/00/00/00
>  Cache Hits: 3.0M  Hits/s:  8.5 Hits now:   4.2  Ratio: 74.2% Ratio now:
> 70.0%
>  Key Efficiency: 97.7%  Bps in/out:  6.8k/ 9.8k   Now in/out:  3.5k/
> 5.0k
> 
>       Id      User         Host/IP         DB      Time    Cmd Query or
> State
>       --      ----         -------         --      ----    ---
> ----------
>   554082      root       localhost       test         0  Query show full
> processlist
>   603034      root       localhost                    0  Sleep
>   603086      root       localhost                    0  Sleep
>   602989      root       localhost                    1  Sleep
>   603301      root       localhost                    1  Sleep
>   604008      root       localhost                   11  Query UPDATE
> dbseXyzOrders.tblOrder SET intPoUid = 97 WHERE intOrde
>   389249      repl           clank               133504 Binlog Has sent
> all binlog to slave; waiting for binlog to be update
> 
> 
> 
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
> 

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to