Oceanbase的存储.ppt

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

Oceanbase的存储 Introduction 淘宝Oceanbase是从2010年5月开始研发的,其定位是解决淘宝内部在线业务的云存储问题。我们在设计系统时,总是考虑现在及今后一段时间的需求。互联网业务大致可以分为OLTP和OLAP两类,对在线存储的需求简单归纳如下。 OLTP:今后数据规模为千亿级,数据量百TB,要求几十万QPS和几万TPS。 OLAP:支持千万级记录的数据集上进行实时计算。 功能:支持范围查询,支持跨行跨表事务。 其他:5个9的可用性、自动故障处理、自动扩容等。 因为OLTP和OLAP业务对性能的要求,我们必须采用分布式方案。另外,淘宝的业务发展迅猛,传统的分库/分表方法带来的扩容及运维成本太高,必须构建异构的云存储系统。 传统的做法 (1)直接采用关系数据库Join操作 根据collect_info中存储的商品编号(item_id),实时地从商品表读取商品的价格、人气等信息。然而,商品表数据量太大,需要分库分表后分布到多台数据库服务器,即使是同一个用户收藏的商品也会被打散到多台服务器。某些用户收藏了几千个商品或者店铺,如果需要从很多台服务器读取几千条数据,整体延时是不可接受的,系统的并发能力也将受限 (2)冗余 在collect_info表中冗余商品的价格、人气等信息,读取时就不需要读取collect_item表了。然而,热门商品可能被数十万个用户收藏,每次价格、人气发生变化时都需要修改数十万个用户的收藏条目。显然,这是不可接受的。 OceanBase的特色功能 1.大表左连接 2.数据过期与批量删除 3.OceanBase并发查询 大表左连接 需求来源:淘宝收藏夹业务 (1)收藏夹业务:包含收藏表collect_info以及商品表collect_item ◆ collect_info:存储用户的收藏信息,如收藏时间、标签等 ◆ collect_item:存储用户收藏的商品或者店铺的信息,包括价格、人气等 (2)收藏夹业务的数据量 ◆ collect_info的数据条目达到100亿条 ◆ collect_item的数据条目接近10亿条 ◆ 每个用户平均收藏了50 ~ 100个商品或者店铺 数据过期与批量删除 一、数据过期 (1)优点:节省存储成本 很多业务只需要存储一段时间,比如三个月或者半年的数据,更早之前的数据可以被丢弃。 (2)实现 ◆ OceanBase线上每个表格都包含创建时间(gmt_create)和修改时间(gmt_modified)列 ◆使用者可以设置自动过期规则,比如只保留创建时间或修改时间不晚于某个时间点的数据行,读取操作会根据规则过滤这些失效的数据行,每日合并时这些数据行会被物理删除 二、批量删除 (1)需求来源:OLAP业务 OLAP(数据仓库)业务往往每天导入一批数据,由于业务逻辑复杂,上游系统很可能出错,导致某一天导入的数据出现问题,需要将这部分出错的数据删除掉。由于导入的数据量很大,一条一条删除其中的每行数据是不现实的,需要具有批量删除功能。 (2)实现 使用者可以增加一个删除规则,比如删除创建时间在某个时间段的数据行,以后所有的读操作都会自动过滤这些出错的数据行,每日合并时这些出错的数据行会被物理删除。 如图3-14,MergeServer解析SQL语句,根据本地缓存的tablet位置信息获取需要请求的ChunkServer。 1. 如果请求只涉及一个tablet,将请求发送给该tablet所在的ChunkServer执行;如果请求涉及多个tablet,将请求按照tablet拆分为多个子请求,每个子请求对应一个tablet,并发送给该tablet所在的ChunkServer并发执行。MergeServer等待每个子请求的返回结果。 2. ChunkServer执行子请求,计算子请求的部分结果。SQL执行遵从本地化原则,即能让ChunkServer执行的尽量让ChunkServer执行,包括Filter、Project、子请求部分结果的GroupBy、OrderBy、聚合运算,等等。 3. 每个子请求执行完成后,ChunkServer将执行结果回复MergeServer,MergeServer首先将每个子请求的执行结果保存起来。如果某个子请求执行失败,MergeServer会将该子请求发往tablet其它副本所在的ChunkServer执行。 4. 等到所有的子请求执行完成后,MergeServer会对全部数据排序、分组、聚合并将最终结果返回给客

文档评论(0)

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

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

1亿VIP精品文档

相关文档