Re: LARGE operation stuck. What now?

2005-09-08 Thread Gleb Paharenko
Hello.



Here is described the possible way of how to force the rollback

(you can kill the mysqld process and set innodb_force_recovery to 3 to

bring the database up without the rollback, then DROP the table that is

causing the runaway rollback):

http://dev.mysql.com/doc/mysql/en/forcing-recovery.html







Joseph Cochran [EMAIL PROTECTED] wrote:



Thanks for the questions, hopefully this will help: InnoDB, yes. It's 

version 4.1.11, not replicated.



I am familiar with KILL. It is definitely something I CAN do, but not 

necessarily something I SHOULD do at this point in time. Usually when you 

kill a process while it's running, it will roll back the transaction before 

releasing the process, which often takes as long as the commit: I'd rather 

not kill it and have it rolling back for two weeks if I can help it.



Thanks!



-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
   __  ___ ___   __
  /  |/  /_ __/ __/ __ \/ /Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.NET
   ___/   www.mysql.com




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



Re: LARGE operation stuck. What now?

2005-09-08 Thread Joseph Cochran
Thank you. This is a very promising answer. I don't know that we want to 
drop the table if we don't have to, but knowing that we can restart the DB 
without the rollback operation is a boon! We could certainly do a mysqldump 
of just that table (which works fine, we continue to run nightly backups), 
then restore it if we do need to drop it. 

-- Joe

On 9/7/05, Gleb Paharenko [EMAIL PROTECTED] wrote:
 
 Hello.
 
 
 
 Here is described the possible way of how to force the rollback
 
 (you can kill the mysqld process and set innodb_force_recovery to 3 to
 
 bring the database up without the rollback, then DROP the table that is
 
 causing the runaway rollback):
 
 http://dev.mysql.com/doc/mysql/en/forcing-recovery.html
 
 
 
 
 
 
 
 Joseph Cochran [EMAIL PROTECTED] wrote:
 
 
 
 Thanks for the questions, hopefully this will help: InnoDB, yes. It's
 
 version 4.1.11, not replicated.
 
 
 
 I am familiar with KILL. It is definitely something I CAN do, but not
 
 necessarily something I SHOULD do at this point in time. Usually when you
 
 kill a process while it's running, it will roll back the transaction 
 before
 
 releasing the process, which often takes as long as the commit: I'd 
 rather
 
 not kill it and have it rolling back for two weeks if I can help it.
 
 
 
 Thanks!
 
 
 
 --
 For technical support contracts, goto https://order.mysql.com/?ref=ensita
 This email is sponsored by Ensita.NET http://www.ensita.net/
 __ ___ ___  __
 / |/ /_ __/ __/ __ \/ / Gleb Paharenko
 / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
 /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET
 ___/ www.mysql.com http://www.mysql.com
 
 
 
 
 --
 MySQL General Mailing List
 For list archives: http://lists.mysql.com/mysql
 To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
 



Re: LARGE operation stuck. What now?

2005-09-06 Thread Kevin Burton
INNODB I assume?

Replicated environment?

What version of mysql?

See KILL in the SQL manual.. if you do a show processlist you can get the 
pid and you might be able to kill it.

I believe that it's safe to do a KILL on an DELETE but any decision you make 
her is your own...

That's a LOT of data...

Also.. if the kill works you could still delete in the future but put a 
LIMIT on the delete clause. This way you can determine how long your 
delete's will take. 

Kevin

On 9/6/05, Joseph Cochran [EMAIL PROTECTED] wrote:
 
 Here's the situation. I have a table of about 900 million rows, consisting
 of a bigint and an int in each row. There's an index on the bigint. The
 table is referenced in a SELECT in other DB operations roughly 15 or 20
 times per day.
 
 We're under tight deadlines and some operations on the table were getting
 too slow, so two weeks ago I initiated a DELETE from the table that should
 remove about 600 million of the rows, based on values in the int column.
 
 It's still running.
 
 In the interim, it appears that the transaction has finished (doing a 
 select
 will yield rows that should be there while rows that should not are indeed
 excluded), but the transaction is still updating in the processlist and
 hasn't returned to the prompt that issued it. Further, MySQL appears to be
 thrashing the disk, running about 250 transactions per second of about 
 20-25
 KB per transaction. The end result of this is that any DB operation we run
 that's small enough to be in memory is unaffected, but anything that 
 starts
 swapping to the disk is slw.
 
 We have changed our workflow and I've changed the code so that the 
 affected
 table isn't hurting us directly anymore, but now it's two weeks on and 
 very
 soon our deadline will have passed and I'll need to resolve this if the
 transaction doesn't finish.
 
 At this point I don't care what I should or should not have done, or what
 went wrong to cause this sort of hang. I need to know what my options are
 when we have time to work on the server without impacting other people's
 deadlines, which means I need a few educated guesses on what's going on 
 with
 the DB. What will happen if I stop the transaction from my client? If I 
 kill
 the process? What will happen if we reboot the server? What the heck is
 MySQL DOING that's thrashing the disk anyway? Why is it not using a higher
 throughput to the disk?
 
 We're okay for now, but we're kind of without a net in that backups take 
 16
 hours to run because of the slow disk access. So we have something, it's
 just not very optimal.
 
 But at some point in the next few weeks I'm going to have to take some 
 sort
 of action if this thing doesn't commit, and I don't want it to be offline
 for several days undoing whatever it's done.
 
 Any advice would be most appreciated.
 
 -- Joe
 
 


-- 
Kevin A. Burton, Location - San Francisco, CA
AIM/YIM - sfburtonator, Web - http://www.feedblog.org/
GPG fingerprint: 5FB2 F3E2 760E 70A8 6174 D393 E84D 8D04 99F1 4412


Re: LARGE operation stuck. What now?

2005-09-06 Thread Joseph Cochran
Thanks for the questions, hopefully this will help: InnoDB, yes. It's 
version 4.1.11, not replicated.

I am familiar with KILL. It is definitely something I CAN do, but not 
necessarily something I SHOULD do at this point in time. Usually when you 
kill a process while it's running, it will roll back the transaction before 
releasing the process, which often takes as long as the commit: I'd rather 
not kill it and have it rolling back for two weeks if I can help it.

Thanks!

-- Joe

On 9/6/05, Kevin Burton [EMAIL PROTECTED] wrote:
 
 INNODB I assume?
 
 Replicated environment?
 
 What version of mysql?
 
 See KILL in the SQL manual.. if you do a show processlist you can get the 
 pid and you might be able to kill it.
 
 I believe that it's safe to do a KILL on an DELETE but any decision you 
 make her is your own...
 
 That's a LOT of data...
 
 Also.. if the kill works you could still delete in the future but put a 
 LIMIT on the delete clause. This way you can determine how long your 
 delete's will take. 
 
 Kevin
 
 On 9/6/05, Joseph Cochran [EMAIL PROTECTED] wrote:
  
  Here's the situation. I have a table of about 900 million rows, 
  consisting
  of a bigint and an int in each row. There's an index on the bigint. The
  table is referenced in a SELECT in other DB operations roughly 15 or 20 
  times per day.
  
  We're under tight deadlines and some operations on the table were 
  getting
  too slow, so two weeks ago I initiated a DELETE from the table that 
  should
  remove about 600 million of the rows, based on values in the int column. 
  
  
  It's still running.
  
  In the interim, it appears that the transaction has finished (doing a 
  select
  will yield rows that should be there while rows that should not are 
  indeed
  excluded), but the transaction is still updating in the processlist 
  and 
  hasn't returned to the prompt that issued it. Further, MySQL appears to 
  be
  thrashing the disk, running about 250 transactions per second of about 
  20-25
  KB per transaction. The end result of this is that any DB operation we 
  run 
  that's small enough to be in memory is unaffected, but anything that 
  starts
  swapping to the disk is slw.
  
  We have changed our workflow and I've changed the code so that the 
  affected
  table isn't hurting us directly anymore, but now it's two weeks on and 
  very 
  soon our deadline will have passed and I'll need to resolve this if the
  transaction doesn't finish.
  
  At this point I don't care what I should or should not have done, or 
  what
  went wrong to cause this sort of hang. I need to know what my options 
  are 
  when we have time to work on the server without impacting other people's
  deadlines, which means I need a few educated guesses on what's going on 
  with
  the DB. What will happen if I stop the transaction from my client? If I 
  kill 
  the process? What will happen if we reboot the server? What the heck is
  MySQL DOING that's thrashing the disk anyway? Why is it not using a 
  higher
  throughput to the disk?
  
  We're okay for now, but we're kind of without a net in that backups take 
  16 
  hours to run because of the slow disk access. So we have something, it's
  just not very optimal.
  
  But at some point in the next few weeks I'm going to have to take some 
  sort
  of action if this thing doesn't commit, and I don't want it to be 
  offline 
  for several days undoing whatever it's done.
  
  Any advice would be most appreciated.
  
  -- Joe
  
  
 
 
 -- 
 Kevin A. Burton, Location - San Francisco, CA
 AIM/YIM - sfburtonator, Web - http://www.feedblog.org/
 GPG fingerprint: 5FB2 F3E2 760E 70A8 6174 D393 E84D 8D04 99F1 4412