论文部分内容阅读
随着互联网的发展以及移动互联网时代的到来,各应用领域如电子商务、网络社交、搜索引擎提供商等都积累了大量的数据并且迫切期望对已有的数据进行高效的分析以产出学术和商业价值,信息技术的发展进入大数据处理时代。传统的单机串行化的数据处理方式已无法满足日益增长的数据处理要求,分布式技术越来越受到人们的关注。而同步是分布式系统中一个重要的概念,代表了分布式系统中各个单机节点之间协同工作的一种方式。与单机系统不同,由于分布式系统中各个节点之间的网络通信是不稳定的,如何保证分布式环境中通信错误造成的影响不至于让整个分布式系统紊乱掉,就是同步机制要研究的课题,也是任何分布式系统的基础。本文将阐述的stage,就是一个提供了分布式同步服务的系统。文章将分几部分,对国内外相关技术,stage的功能需求,设计和实现进行详细的叙述。stage自底向上,层层依赖,主要由四大子系统构成。第一层是基于COM的组件框架OCF,基于这个框架的编写和使用规范,可以很容易地开发出高可重用,高可扩展的组件应用;第二层是基础网络通信引擎,它是基于Proactor的异步事件驱动模型的实现,使用了多线程下的I/O复用模型,充分利用了服务器硬件资源,提高了系统吞吐量;第三层是类RPC的消息通信组件,它使用了ProtoBuf提供的序列化反序列化机制以及自动生成相关代码的生成器,并集成了第二层的网络通信引擎,让开发者只需编写简单的IDL文件,即可通过自动生成代码向消息通信组件中添加新的服务;第四层则是stage的应用实现,它采用了Raft算法和类POSIX Thread的接口,并作为一种服务添加到了消息通信组件中,为用户提供了同步服务。stage系统在Free BSD下使用C++进行编写,采用了完全异步的模型,并使用回调的方式完成业务逻辑,使得系统中的阻塞点尽可能的少,提高了系统的效率。经测试,stage在功能和性能上能够满足用户在分布式系统中所需同步服务的需求。