2017-03-05 223 views
0

在带有tokuDb引擎的mariadb表中;我正在处理下面的错误 - 无论是删除语句;同时存在后台插入负载,反之亦然。tokuDb设置时间以超时语句

Lock wait timeout exceeded; try restarting transaction

不tokuDb用户可以更新,以确定多长时间等待它timesout声明之前的设置?

我在tokuDb文档中找不到答案。 maria varaible仍然处于默认值:'lock_wait_timeout','31536000' - 但是我的暂停时间比一年少了一点。超时正在进行负载测试期间;我没有发现错误中的时间值 - 但感觉像是几秒钟;在抛出超时之前最多分钟。

感谢, 布伦特

回答

0

TokuDB都有自己的timeout variabletokudb_lock_timeout,它以毫秒为单位进行测量,并具有默认值4000(4秒),它适合你的观察。它可以在会话和全局级别进行修改,也可以在.cnf文件中进行配置。

请记住,当您为具有两个范围的变量设置全局值时,它仅影响将来的会话(连接),但不影响现有的会话。

-- for the current session 
SET SESSION tokudb_lock_timeout = 60000; 

-- for future sessions 
SET GLOBAL tokudb_lock_timeout = 60000; 
+0

在提高它之前,请认真思考长时间运行的查询正在做什么。它目前说可以拖延用户长达4秒。也许长时间运行的查询可以重写? –