LRU,SLAB 的逻辑真的太复杂了,完全看不懂,关键还没有文档可查。
1
agagega 2018-09-16 00:54:26 +08:00 1
看看相关的 Linux 内核介绍,SLAB 和那个有关系
|
2
simonliu2018 2018-09-17 10:23:25 +08:00
我也没看过 memcached 源码。
不过我想这种问题和『这个 BUG 好诡异,一点思路也没有』属于同类问题,缺乏相关的背景知识。 刚工作的时候遇到奇怪的 BUG 就束手无策,后来恶补了操作系统,数据库啥的基础知识,慢慢就得心应手了。 |
3
i4oolish 2018-09-17 10:43:40 +08:00
memcache 应该属于后端组件里面最简单的了吧
|
4
d18 OP @simonliu2018 并不是。主要是它的 LRU 不是简单的 LRU,另有一套自己的逻辑,但是又没有文档可查,只能自己看代码去琢磨。
|
5
d18 OP @i4oolish 和简单与否无关。就像给你一段全新的算法代码,但不告诉你这个算法大致的逻辑,那你就只能自己去猜这段代码到底是干嘛的,很痛苦。
|
6
i4oolish 2018-09-17 14:02:54 +08:00
网上有 memcached LRU 和 SLAB 的算法讲解,我之前看源码的时候搜过,看看别人画的图,然后自己再结合代码看应该会好理解一些。
个人感觉看别人的图很直观。另外,memcached 好像可以把 LRU 和 SLAB 的运行状态打印出来,你可以对照着学习。 |