在带有tokuDb引擎的mariadb表中;我正在发生以下错误 - 要么删除声明;虽然有背景插入负载,反之亦然。
Lock wait timeout exceeded; try restarting transaction
tokuDb用户是否可以更新设置以确定在超时声明之前等待多长时间?
我无法在tokuDb文档中找到答案。玛丽亚变量仍处于默认值:' lock_wait_timeout',' 31536000' - 但是我的超时时间还不到一年。超时是在负载测试期间发生的;我没有在错误中发现时间价值 - 但感觉就像几秒钟;在超时被抛出之前最多几分钟。
谢谢, 布伦特
答案 0 :(得分:0)
TokuDB有自己的timeout variable,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;