决定静下来这周好好看看 mogilefs 的实现。所以先从 http://code.sixapart.com/svn/mogilefs/ 的地址,来 checkout sizapart 的这个系统的所有源码。为了简单点,先选择最老的一个版本来看。可以从 tag 中见到最开始的是 mogilefs-server-2.00_01 这个版本,所以先从这个开始。
这次的主要目标是看设计,架构和实现,细节只看部分重点,以后详细分析,所以要搞明白每个文件的作用,和其中有那些重要的子函数,子函数大体上做了些什么事情。这是个私人笔记,不考虑可读性(我需要花大量的时间来读源码,在讲,我这么烂的水平,不想害着大家)
这次分析的主要是二个文件
MogileFs/Worker.pm
MogileFs/Worker/Query.pm
选择文件没有目前因为不了解大体,所以基本没有选择性的看。
MogileFs/Worker.pm
从这个上面来看这个文件,只是一个基本的功能,用来给子文件做重载用
validate_dbh 可用的 dbh
get_dbh 取得 get_dbh
still_ablive workers 写一些内容给父,告诉还活着 :still_alive
send_to_parent 上面的 still_ablive 是调用这个来发数据的
read_from_parent 从 sock 中读一些数据对比
parent_ping 给 sock 中发一个 :ping 的数据
_broadcast_state 传发给