UpdateServer系统结构详细设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UpdateServer系统结构详细设计.doc

 PAGE 29 NUMPAGES 29 UpdateServer系统结构详细设计 编号文档版本修订章节修订原因修订日期修订人10.1全文新建2010-7-28日照\无施\郁白\刘珂20.2Commit Log和Lease模块细化Commit Log模块设计、修正Lease模块的错误2010-09-09颜然系统设计 系统综述 UpdateServer是OceanBase的单点更新模块,为了保证可靠性,采用主备实时同步机制。UpdateServer一期为收藏夹应用专门定制,收藏夹每日更新量较小,每天的更新可以存放到一台机器的内存中,然后选取一段空闲时间进行数据合并。因此,设计中UpdateServer单机服务OceanBase的所有更新请求,暂不支持系统中多个UpdateServer服务不同的数据范围功能。由于UpdateServer 在内存中保存一天的所有更新操作,实现时需要特别注意节约使用内存。 UpdateServer支持OB和DB两种语义,DB语义和数据库相同,OB语义将插入和更改操作模糊化:插入存在行视为更新,更改不存在行视为插入。DB语义实现时需要查询ChunkServer的静态表数据,性能差,外部应用应尽量少使用。UpdateServer采用单线程更新的实现,从而严格保证同一个客户端更新操作的顺序性。 名词解释 OB:全称OceanBase,核心系统研发部的海量存储系统,一期解决淘宝的收藏夹应用; UPS:全称Update Server,OB系统更新子系统,通过主备保证可靠性; CS:全称Chunk Server,OB静态表系统,存储每天合并UPS更新数据生成的静态表; MemTable:内存表,UPS内存中通过MemTable实现每天更新数据的组织和查询。根据是否冻结又可区分为frozen Memtable和active Memtable; Commit Log:操作日志,UPS为了保证可靠性,首先将更新操作序列化到主备机的文件中,称为操作日志; API:全称client API,客户端通过API访问OB系统,UPS也可通过API访问CS静态表数据; UPS Master(Master):全称Update Server Master,处理实际读写请求的Update Server; UPS Slave(Slave):全称Update Server Slave,用于实时备份的Update Server; 性能指标 假设:16核Intel(R) Xeon(R) CPU E5520 @ 2.27GHz ,24GB内存,300GSAS * 6硬盘,3000W条记录,平??大小为300字节(假设100字节的收藏夹单条记录膨胀3倍)。 写性能:OB语义且无备机,并发量 5000/s;OB语义且有一到两台同机房备机,并发量 2000/s,并发量为1000时4个9的写操作延时 20ms;DB语义性能暂不考虑; 读性能:读取并发量 50000/s,4个9的读取操作延时 5ms; 扫描性能:单行扫描并发量与读操作并发量相同,多行扫描带宽 30MB/s; 系统结构 UpdateServer由多台机器做热备(一主一备或一主两备),提供对外唯一的VIP,绑定在主服务器上,主负责提供所有对外服务,并且实时将数据同步到备机,并保证数据的顺序和一致性。主服务不可用时候,HA将VIP漂移到备机,将备机提升为主。 客户端所有的更新请求,都将由UpdateServer处理,UpdateServer将所有的更新记录写入commit log并同步到备机后再写入内存中。UpdateServer Slave启动后首先和Master同步,同步到一致状态后Master通过Lease机制给Slave授权,此时Slave可以切换为Master。当Master宕机后,HA将VIP漂移到备机,备机检测到VIP和本机IP相同且持有的Lease有效则自动切换为Master对外服务。 UpdateServer通过调用client api读取Chunk Server的静态表数据。 网络框架 服务器端,典型的处理流程是:从套接字读取请求;解析请求(反串行化);处理请求;发送响应。网络框架主要处理网络数据的接收,发送;套接字管理;接收与发送数据缓冲区内存管理。选取网络框架同时也选取了服务器的线程模型。 为了实现上述目标,使用单独的网络线程来管理套接字并处理所有的网络读写,socket采用非阻塞的方式进行读写,使用epoll来管理所有的套接字,称这个线程为网络线程。请求的分析与处理线程称为工作线程。网络线程与工作线程通过消息队列的方式进行通信。这样网络框架与服务器本身的处理逻辑

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档