tokuDb 设置超时语句的时间
tokuDb setting for time to timesout a statement
在带有 tokuDb 引擎的 mariadb table 中;我遇到了以下错误 - 在删除语句中;同时有后台插入加载,反之亦然。
Lock wait timeout exceeded; try restarting transaction
tokuDb 是否使用可以更新的设置来确定它在语句超时之前等待多长时间?
我在 tokuDb 文档中找不到答案。 maria varaible 仍然是默认值:'lock_wait_timeout', '31536000' -- 但我的超时在不到一年的时间里又回来了。负载测试期间超时;而且我还没有在错误中发现时间值——但感觉就像几秒钟;在超时前最多几分钟。
谢谢,
布伦特
TokuDB 有自己的 timeout variable、tokudb_lock_timeout
,它以毫秒为单位,默认值 4000
(4 秒),这符合您的观察。在session和global级别都可以修改,也可以在.cnf文件中配置。
请记住,当您为具有两个范围的变量设置全局值时,它只会影响未来的会话(连接),而不影响现有的会话。
-- for the current session
SET SESSION tokudb_lock_timeout = 60000;
-- for future sessions
SET GLOBAL tokudb_lock_timeout = 60000;
在带有 tokuDb 引擎的 mariadb table 中;我遇到了以下错误 - 在删除语句中;同时有后台插入加载,反之亦然。
Lock wait timeout exceeded; try restarting transaction
tokuDb 是否使用可以更新的设置来确定它在语句超时之前等待多长时间?
我在 tokuDb 文档中找不到答案。 maria varaible 仍然是默认值:'lock_wait_timeout', '31536000' -- 但我的超时在不到一年的时间里又回来了。负载测试期间超时;而且我还没有在错误中发现时间值——但感觉就像几秒钟;在超时前最多几分钟。
谢谢, 布伦特
TokuDB 有自己的 timeout variable、tokudb_lock_timeout
,它以毫秒为单位,默认值 4000
(4 秒),这符合您的观察。在session和global级别都可以修改,也可以在.cnf文件中配置。
请记住,当您为具有两个范围的变量设置全局值时,它只会影响未来的会话(连接),而不影响现有的会话。
-- for the current session
SET SESSION tokudb_lock_timeout = 60000;
-- for future sessions
SET GLOBAL tokudb_lock_timeout = 60000;