- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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来管理所有的套接字,称这个线程为网络线程。请求的分析与处理线程称为工作线程。网络线程与工作线程通过消息队列的方式进行通信。这样网络框架与服务器本身的处理逻辑
您可能关注的文档
- 2006届初三年级化学第二次月考试题2005.11.doc
- 2007年度新购买了下列17家出版机构的123种网络版全文.doc
- 2009-2010年太湖宏基因组和太湖、滇池铜绿微囊藻全基因组.doc
- 2010历史高考专题复习课件.ppt
- 2010年普通高等学校招生全国统一考试(全国Ⅱ卷)历史试题.ppt
- 2011学年第二学期《科学》八年级下学生学习自测单元练习.doc
- 2011年6月广东省普通高中学业水平考试化学试卷-2011年6月.doc
- 2011年宝鸡市高三教学质量检测(三)试卷分析.doc
- 2011海洋化学-青岛科技大学.doc
- 2013北京昌平初三二模化学(含答案)-昌平区2013年初三年.doc
文档评论(0)