0

在带有 tokuDb 引擎的 mariadb 表中;我遇到以下错误 - 在删除语句中;虽然有后台插入负载,反之亦然。

Lock wait timeout exceeded; try restarting transaction

tokuDb 用户是否可以更新设置以确定它在语句超时之前等待多长时间?

我在 tokuDb 文档中找不到答案。maria 变量仍然是它的默认值:'lock_wait_timeout'、'31536000'——但我的超时时间在不到一年的时间里又回来了。负载测试期间出现超时;而且我没有在错误中发现时间值 - 但感觉就像几秒钟;在引发超时之前最多几分钟。

谢谢,布伦特

4

1 回答 1

0

TokuDB 有自己的超时变量, tokudb_lock_timeout,它以毫秒为单位并具有默认值4000(4 秒),这符合您的观察结果。它可以在会话和全局级别进行修改,也可以在 .cnf 文件中进行配置。

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

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

-- for future sessions
SET GLOBAL tokudb_lock_timeout = 60000;
于 2017-03-05T11:07:42.447 回答