This is a test version of Biostars. For the public version, visit https://www.biostars.org.
orthomclpairs table lock size error

I was using orthomcl and have a question on orthomclpairs. It works perfectly fine for 7-8 species. I then used it for 50 species, in this case orthomclloadblast was alright but I have issues with orthomclpairs. I get the following error

DBD::mysql::st execute failed: The total number of locks exceeds the lock table size at /share/apps/orthomcl-2.0.9/bin/orthomclPairs line 709, <F> line 15.

This is how my .cnf file looks like

[client]

socket=/tmp/mysql_2.sock

port=3307

####################################

[mysqld]

#REQUIRED!!
#Change the basedir directory to reflect your mysql home directory
basedir=/home/spaul/softwares-2/mysql/mysql-5.6.21-linux-glibc2.5-x86_64

#REQUIRED!!
#Change the data direcory to reflect your mysql data directory
datadir=/home/spaul/softwares-2/mysql/mysql-5.6.21-linux-glibc2.5-x86_64/data

port=3307

socket=/tmp/mysql_2.sock

key_buffer_size=60G

#[OPTIMIZATION]
#Set this value to 50% of available RAM if your environment permits.
myisam_sort_buffer_size=60G

#[OPTIMIZATION]
#This value should be at least 50% of free hard drive space. Use caution if setting it to 100% of free space however. Your hard disk may fill up!
myisam_max_sort_file_size=200G

#[OPTIMIZATION]
#Our default of 2G is probably fine for this value. Change this value only if you are using a machine with little resources available.
read_buffer_size=8G

after changing this, I restarted mysql, deleted and rebuilt the orthomcl database and uploaded sequences but still have the error. Is there a workaround for this? I have around 40 million sequences in the database. Is there a way to split this and run orthomclpairs??

orthomcl sql clustering

1 answer

This error is due to the use of the InnoDB storage engine. There are two things to do: either set innodb_buffer_pool_size (in my.cnf) to a very large value (it's 8GB by default) and restart the mysql server or switch to the MyISAM storage engine. See this post.

Log in to answer this question.