元数据操作日志的 3-gram 挖掘,用在大规模文件系统里,挺实用的。模型思路不复杂,就是把历史访问路径当作语料,提取三元组来预测下一个求。这种方法对预取元数据管用,毕竟元数据体积小,响应快,提前加载成本不高。

3-gram 的玩法其实挺像 NLP 那一套,但用在存储系统里,还蛮有意思。你可以想象成用户访问/a/b/a/b/c之后,系统就猜你要访问/a/b/c/d,提前准备好,省时又省资源。

再配合数据挖掘的一些基本统计和模式识别技巧,效果还不错。啦,前提是你有一堆靠谱的日志文件,没有数据就没得挖。

我看过的几个相关的系统也都提到过类似思路,像Redis那种键值存储虽然结构简单,但对元数据的热路径追踪也挺依赖访问模式;再比如Google BigtableDynamo,都注重读写预判。

如果你在搞文件系统优化,是在企业存储或云服务里,这篇文章的思路你值得看看,思路简单但挺实在。哦对了,别忘了检查你们的日志记录策略,别啥都记录太多,先过滤掉些无效数据更省事。

感兴趣的话你也可以顺带看看下面这些文章,像SQLite3SVN的元数据操作指令合集、Redis的 Windows 版本、高可用的Dynamo系统,思路都能互相借鉴。