SET @transaction_isolation= @@global.transaction_isolation; SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; INSERT INTO cache_policies VALUES("cache_policy", "innodb_only", "innodb_only", "innodb_only", "innodb_only"); INSERT INTO config_options VALUES("separator", "|"); INSERT INTO containers VALUES ("desc_t1", "test", "t1", "c1", "c2", "c3", "c4", "c5", "PRIMARY"); USE test; connect con1,localhost,root,,; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (c1 VARCHAR(32), c2 VARCHAR(1024), c3 INT, c4 BIGINT UNSIGNED, c5 INT, primary key(c1)) ENGINE = INNODB; INSERT INTO t1 VALUES ('D', 'Darmstadt', 0, 0, 0); INSTALL PLUGIN daemon_memcached SONAME 'libmemcached.so'; SELECT c1,c2 FROM t1; c1 c2 D Darmstadt SELECT c1,c2 FROM t1; c1 c2 D Darmstadt ALTER TABLE test.t1 ADD COLUMN j JSON; CREATE PROCEDURE alter_column() BEGIN SELECT SLEEP(10); ALTER TABLE test.t1 ADD COLUMN foo varchar(200) AS (j->'$.foo') VIRTUAL; END// connection con1; set session lock_wait_timeout=1; call alter_column();; connection default; Here are the memcached results with E: Darmstadt connection con1; SLEEP(10) 0 ERROR HY000: Lock wait timeout exceeded; try restarting transaction connection default; disconnect con1; drop procedure alter_column; DROP TABLE t1; UNINSTALL PLUGIN daemon_memcached; DROP DATABASE innodb_memcache; SET @@global.transaction_isolation= @transaction_isolation;