2017-03-05 222 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秒。也許長時間運行的查詢可以重寫? –