缓存表写入延时问题

TIDB往缓存表写入数据时,有可能出现写入延迟吗?

在使用TiDB往缓存表写入数据时,有可能出现写入延迟。当TiDB服务器或者存储节点(如TiKV)的处理能力达到瓶颈时,新的写入请求可能会排队等待处理,从而导致延迟。

1 个赞

缓存表本来就是延迟写入的啊

缓存表写入的延迟和处理能力其实关系不大,主要在于你配置的tidb_table_cache_lease这个参数,也就是缓存表的租约时间,理论上你修改一张缓存表,最长可能等待这么长的时间。
举个例子,你有三个tidb节点ABC,一张缓存表t,租约时间为10秒,A 缓存了t刚4秒钟,B缓存了3秒钟,C刚刚缓存,即0秒钟,ABC的t表剩余租约时间分别为6/7/10。这时如果你在任意一个节点去修改t表,是需要ABC三个节点中的t都过了租约时间才可以修改成功的,也就是必须等C的剩余租约时间10秒钟过去,才能修改这张表。
如果你做了修改这个表的动作,还处于等待所有节点的租约过期时,所有节点续租这个动作就会被你修改的动作阻塞,它们只能读tikv中的此表数据而不能续租此表了,所以如果一个表需要频繁修改的话,还是不要缓存了。

好细节啊

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。