![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I get the above error from MySQL. What is going on, is that I have a InnoDB table "filltable", into which I am doing a lot of INSERTs in parallel (populating a data warehouse). In addition, at some point during the ongoing INSERT process, I issued this command: START TRANSACTION INSERT INTO othertable ... SELECT from filltable DELETE FROM filltable COMMIT The above query was stuck. and then I started getting these errors "The total number of locks exceeds the lock table size" Why am I getting this error? I was expecting INSERTs to lock up until the transaction was done. Thanks i |
#3
| |||
| |||
|
|
The above query was stuck. and then I started getting these errors "The total number of locks exceeds the lock table size" Why am I getting this error? I was expecting INSERTs to lock up until the transaction was done. |
indicates
#4
| |||
| |||
|
|
On 2011-09-18 23:59, Ignoramus30681 wrote: [...] The above query was stuck. and then I started getting these errors "The total number of locks exceeds the lock table size" Why am I getting this error? I was expecting INSERTs to lock up until the transaction was done. Googling for the error (you might want to give it a try indicatesthat your bufferpool is to small. Another opportunity is to lock the whole table and thereby eliminating the need for row locks. I have not verified that innodb works this way, so it might not work at all. |
#5
| |||
| |||
|
|
I changed the buffer pool size to 2 GB, I will see if this helps. |
#6
| |||
| |||
|
|
On 2011-09-19 15:09, Ignoramus15208 wrote: [...] I changed the buffer pool size to 2 GB, I will see if this helps. It appears as if innodb uses row-locking no matter what (atleast I intepret it that way). On http://dev.mysql.com/doc/refman/5.0/...ion-model.html it is stated that: The lock table in InnoDB is stored so space-efficiently that lock escalation is not needed: Typically, several users are permitted to lock every row in InnoDB tables, or any random subset of the rows, without causing InnoDB memory exhaustion. |

#7
| |||
| |||
|
|
I get the above error from MySQL. What is going on, is that I have a InnoDB table "filltable", into which I am doing a lot of INSERTs in parallel (populating a data warehouse). In addition, at some point during the ongoing INSERT process, I issued this command: START TRANSACTION INSERT INTO othertable ... SELECT from filltable DELETE FROM filltable COMMIT The above query was stuck. and then I started getting these errors "The total number of locks exceeds the lock table size" Why am I getting this error? I was expecting INSERTs to lock up until the transaction was done. Thanks |
#8
| |||
| |||
|
|
On 2011-09-19, Lennart Jonsson <erik.lennart.jonsson (AT) gmail (DOT) com> wrote: On 2011-09-19 15:09, Ignoramus15208 wrote: [...] I changed the buffer pool size to 2 GB, I will see if this helps. It appears as if innodb uses row-locking no matter what (atleast I intepret it that way). On http://dev.mysql.com/doc/refman/5.0/...ion-model.html it is stated that: The lock table in InnoDB is stored so space-efficiently that lock escalation is not needed: Typically, several users are permitted to lock every row in InnoDB tables, or any random subset of the rows, without causing InnoDB memory exhaustion. Well, I guess I am not typical. ![]() |
#9
| |||
| |||
|
|
On 09/18/2011 05:59 PM, Ignoramus30681 wrote: I get the above error from MySQL. What is going on, is that I have a InnoDB table "filltable", into which I am doing a lot of INSERTs in parallel (populating a data warehouse). In addition, at some point during the ongoing INSERT process, I issued this command: START TRANSACTION INSERT INTO othertable ... SELECT from filltable DELETE FROM filltable COMMIT The above query was stuck. and then I started getting these errors "The total number of locks exceeds the lock table size" Why am I getting this error? I was expecting INSERTs to lock up until the transaction was done. Thanks how many records are we talking about? |
#10
| |||
| |||
|
|
On 2011-09-19 19:06, Ignoramus15208 wrote: On 2011-09-19, Lennart Jonsson <erik.lennart.jonsson (AT) gmail (DOT) com> wrote: On 2011-09-19 15:09, Ignoramus15208 wrote: [...] I changed the buffer pool size to 2 GB, I will see if this helps. It appears as if innodb uses row-locking no matter what (atleast I intepret it that way). On http://dev.mysql.com/doc/refman/5.0/...ion-model.html it is stated that: The lock table in InnoDB is stored so space-efficiently that lock escalation is not needed: Typically, several users are permitted to lock every row in InnoDB tables, or any random subset of the rows, without causing InnoDB memory exhaustion. Well, I guess I am not typical. ![]() :-) Don't get me wrong, without knowing any details, your ETL process looks kinda normal to me. However, the statement above makes me wonder whether innodb is the best choice for a DW. I googled for "mysql datawarehouse engine" and it appears to be a couple of engines that claims to be better than innodb for DW. Whether this is true or not (I don't know), it's probably a good idea to read up on alternatives to innodb for DW. |
![]() |
| Thread Tools | |
| Display Modes | |
| |