1 概述
我们从Root Server开始分析。Root Server主要是提供命名服务,管理数据库系统的meta信息,管理ChunkServer,Root Server对集群的管理主要基于lease租约机制。Root Server使用HA主备机制来提高可用性。由HA检测master/slave节点的状态,如果master节点不可用,则虚拟IP会自动漂移到slave节点,slave节点接着提供服务。这块具体见《OceanBase介绍》。
2 Server框架
2.1 简单类框架
Oceanbase使用了tbnet网络框架,其服务基类ObBaseServer就是派生自tbnet::IServerAdapter类,继承这类需要实现handlePacket这两个操作接口。
关于tbnet框架的简单介绍,见《tbnet框架简介》。
这个鸟毛的类里面,start_service接口是public,但实际上代码里调用的地方只有一处,就是在start()函数里。如果是protected的就不会引起歧义了。
这个类里面的IPacketFactory、PacketStreamer和Transport都是tbnet网络框架定义的类,与底层网络和数据包相关。
几个相关函数:
1 虚函数initialize()给了实现类一个初始化机会;
2 函数start是服务启动程序;
3 发送response packet都是统