Entries not being deleted from backend MySQL table when memcached storage time expires
Posted by:
Alex Gut
Date: June 15, 2013 02:13PM
Hello, guys.
I am currently experimenting with mysql 5.6.11 builded with innodb memcached plugin and have just faced an interesting behavior: when I add an entry with a limited expiration time (!=0) using memcached interface, this entry being deleted from memcached after this time expires, but still being stored in the backend mysql table. Below is what I do and what I get:
<memcached interface, entry being created>
set China 22 30 20
1347350000|9640821|R
STORED
<30 seconds later, memcached interface, storage time expired and entry was deleted>
get China
END
<myql client, entry still being stored in the backend table>
mysql> select country, population, area_sq_km, drive_side, c3, c4, from_unixtime(c5) from test.multicol;
+---------+------------+------------+------------+------+------+---------------------+
| country | population | area_sq_km | drive_side | c3 | c4 | from_unixtime(c5) |
+---------+------------+------------+------------+------+------+---------------------+
| Canada | 34820000 | 9984670 | R | 11 | 5 | 1970-01-01 03:00:00 |
| China | 1347350000 | 9640821 | R | 22 | 9 | 2013-06-15 23:46:31 |
+---------+------------+------------+------------+------+------+---------------------+
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 23:51:29 |
+-----------+
So I'm currently facing two questions:
1) Is it a by design behavior or a bug?
2) Is there any way to get rid of stale entries in mysql table automatically or, at least, using memcached interface? The "delete" and "flush_all" commands work fine, but it's not exactly what I need...
Hope you can help me.