Hypertable包括四部分核心组件:
- Hyperspace
- Range server
- Master
- DFS broker
Hyperspace
最核心的组件,提供分布式锁服务的支持和元数据处理,是保证hypertable数据一致性的核心组件之一。另外还提供了高效的,可靠性的主机选举服务;
Range server
负责对外提供服务的组件单元,负责数据的读取与写入。将每个表按照主键进行切分,形成多个Ranger(类似关系型数据库中的分表),每个Range由一个RangeServer(RangeServer调用DFS Broker来进行数据的读写)负责管理。在Hypertable中通常会部署多个RangeServer,每个RnageServer负责管理部分数据,由Master来负责RangeServer的集群管理;
Master
元数据管理中心,创建/删除表,或者其他表空间表更的所有的数据操作,同时负责RangeServer工作状态监测,一旦监测到其中某一个RangeServer被宕机或者服务出现了故障,Master会自动进行Range的重新分配,从而实现RangeServer的集群和RangeServer的负载均衡;
DFS Broker
底层分布式文件系统的抽象层,起到一个承上启下的作用。上层Hypertable和底层文件存储。所有的对文件系统的对写操作,都是通过DFS Broker来完成的;
算法实现:
Hyperspace集群选举策略
当Hyperspace集群中的active Server由于故障中断后,Hyperspace集群会进行重新的active选举。选举的策略是看BDB中记录的最新的一条事务日志,来保证Hyperspace服务是最新的一台Server,当选举出MasterServer之后,其他的Server会同步Master Server中的数据和状态,这样Hperspace重新进入正常的状态。