tokuDb设置时间以超时语句
问题描述:
在带有tokuDb引擎的mariadb表中;我正在处理下面的错误 - 无论是删除语句;同时存在后台插入负载,反之亦然。tokuDb设置时间以超时语句
Lock wait timeout exceeded; try restarting transaction
不tokuDb用户可以更新,以确定多长时间等待它timesout声明之前的设置?
我在tokuDb文档中找不到答案。 maria varaible仍然处于默认值:'lock_wait_timeout','31536000' - 但是我的暂停时间比一年少了一点。超时正在进行负载测试期间;我没有发现错误中的时间值 - 但感觉像是几秒钟;在抛出超时之前最多分钟。
感谢, 布伦特
答
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;
在提高它之前,请认真思考长时间运行的查询正在做什么。它目前说可以拖延用户长达4秒。也许长时间运行的查询可以重写? –