淘宝海量数据库之一:来自业务的挑战

简介:

作为一个电子商务企业,从一开始,数据库及其事务能力在淘宝就扮演着十分关键的角色,淘宝也积累了丰富的数据库的架构和规划等方面的经验,产生了众多优秀的DBA。

 

淘宝是一家迅速发展的公司。全球网站排名公司Alexa提供的数据显示,2010年4月27日,Amazon、Ebay的用户占全球互联网用户的百分比分别为3.47%和2.68%,而淘宝的用户占全球互联网用户的百分比则达到了4.1%,淘宝网日独立访问量从此超过了Amazon和Ebay。

 

淘宝的数据规模及其访问量对关系数据库提出了很大挑战:数十亿条的记录、数TB的数据、数千TPS、数万QPS让传统的关系数据库不堪重负,单纯的硬件升级已经无法使得问题得到解决,分库分表也并不总是凑效。下面来看一个实际的例子。

 

淘宝收藏夹是淘宝线上应用之一,淘宝用户在其中保存自己感兴趣的宝贝(即商品,此外用户也可以收藏感兴趣的店铺)以便下次快速访问、对比和购买等,用户可以展示和编辑(添加/删除等)自己的收藏。

 

淘宝收藏夹数据库包含了收藏info表(一条一条的收藏信息)和收藏item表(被收藏的宝贝和店铺)等:

  • 收藏info表保存收藏信息条目,数十亿条
  • 收藏item表保存收藏的宝贝和店铺的详细信息,数亿条
  • 热门宝贝可能被多达数十万买家收藏
  • 每个用户可以收藏千个宝贝
  • 宝贝的价格、收藏人气等信息随时变化

 

如果用户选择按宝贝价格排序后展示,那么数据库需要从收藏item表中读取收藏的宝贝的价格等最新信息,然后进行排序处理。如果用户的收藏条目比较多(例如1000条),那么查询对应的item的时间会较长:假设如果平均每条item查询时间是5ms,则1000条的查询时间可能达到5s,若果真如此,则用户体验会很差。

 

如果把收藏的宝贝的详细信息实时冗余到收藏info表,则上述查询收藏item表的操作就不再需要了。但是,由于许多热门商品可能有几千到几十万人收藏,这些热门商品的价格等信息的变动可能导致收藏info表的大量修改,并压垮数据库。

 

OceanBase是淘宝自主研发的海量数据库,并且已经开源( http://oceanbase.taobao.org/ )。在应用团队和OceanBase团队的共同努力下,上述问题得到了很好地解决:平均响应时间几十毫秒,最长响应时间一百多毫秒。与先前使用的关系数据库相比,系统QPS和TPS提升了几倍,服务器数量反而减少了。


Author:正祥


目录
相关文章
|
8月前
|
JSON API 数据库
商城系统数据源 requests 淘宝商品数据库 API 接口
这些信息包括标题、价格、描述、图片等等。介绍如何对接淘宝详情API接口,并提供一些示例代码来帮助你开始
|
SQL 存储 NoSQL
淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式
淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式 什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我们可以可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的柜子,行和列就是柜子
1837 0
|
数据库 分布式计算 数据库管理
|
SQL 数据库 OceanBase
淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划
SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理执行计划。前两个步骤请参见我的博客<<淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树>>和<<淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划>>.这篇博客主要研究第三步,生成物理查询计划。 一、 什么是
1734 0
|
SQL 存储 数据库
淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划
淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树,生成逻辑计划,指定物理执行计划。第一步骤,在我的上一篇博客淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树里做了介绍,这篇博客主要研究第二步,生成逻辑计划。 一、 什么是逻辑计划? 我们已经知道,语法树就是一个树状的结
1439 0
|
SQL 关系型数据库 数据库
淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树
OceanBase是阿里巴巴集团自主研发的可扩展的关系型数据库,实现了跨行跨表的事务,支持数千亿条记录、数百TB数据上的SQL操作。在阿里巴巴集团下,OceanBase数据库支持了多个重要业务的数据存储,包括收藏夹、直通车报表、天猫评价等。截止到2013年4月份,OceanBase线上业务的数据量已经超过一千亿条。 看起来挺厉害的,今天我们来研究下它的源代码。关于
2983 0
|
4天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
33 2
|
20天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
104 0

热门文章

最新文章