Skip to content

6. 路线演进

hizhangwei edited this page May 31, 2012 · 6 revisions

在ADFS项目启动的一年多来,我们的设计和架构并不是一成不变的,期间经历了各种尝试和调整。就目前ADFS的架构而言,我们相信它也不是最终的和最完美的,需求在不断的变化,架构和实现也需要不断的调整。

在最近的实践中,我们意识到以下三点会成为ADFS性能进一步提升的瓶颈:1. Stateless Namenode和State Manager的分离会造成较多的RPC调用;2. 采用ZooKeeper来持久化原Namenode中部分状态会引起过多的IO操作;3. State Manager通过JDBC等Socket方式操作innodb也属于进程间通信。在下一个ADFS版本中我们计划对现有ADFS架构进行重构,主要思路是减少RPC调用,体现在:1. Stateless Namenode、State Manager和innodb合并到一个进程中,新的Namenode重新具备状态,通过State Manager提供的分布式框架实现主从热备,State Manager通过JNI方式直接操作innodb;2. 不再使用Zookeeper保存原Namenode相关的结构,将这些结构转移到State Manager中,并取消某些结构的持久化,保留用Zookeeper实现主从选举和Failover切换,如图表 16所示。另外,我们发现现有RPC框架不能满足ADFS性能的要求,计划采用自主开发的RPC框架来替换现有框架。

ADFS Namenode架构改进方案 图表 16 ADFS Namenode架构改进方案

当前工作和详细的路线演进方案: 当前工作和详细的路线演进方案:

Clone this wiki locally