OceanBase架构浅析

  OceanBase是阿里集团研发的可扩展的关系数据库,实现了数千亿条记录、数百TB数据上的跨行跨表事务,截止到2012年8月,支持了收藏夹、直通车报表、天猫评价等OLTP和OLAP在线业务,线上数据量已经超过一千亿条。

  从模块划分的角度看,OceanBase可以划分为四个模块:主控服务器RootServer、更新服务器UpdateServer、基线数据服务器ChunkServer以及合并服务器MergeServer。OceanBase系统内部按照时间线将数据划分为基线数据和增量数据,基线数据是只读的,所有的修改更新到增量数据中,系统内部通过合并操作定期将增量数据融合到基线数据中。

  淘宝应用背景:

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

●收藏info表保存收藏信息条目,数百亿条。
●收藏item表保存收藏的宝贝和店铺的详细信息,数十亿条。
●热门宝贝可能被多达数十万买家收藏。

●每个用户可以收藏千个宝贝。

●宝贝的价格、收藏人气等信息随时变化。

如果用户选择按宝贝价格排序后展示,那么数据库需要从收藏item表中读取收藏的宝贝的价格等最新信息,然后进行排序处理。如果用户的收藏条目比较多(例如4000条),那么查询对应的item的时间会较长:假设如果平均每条item查询时间是5ms,则4000条的查询时间可能达到20s,如果真如此,则用户体验会很差。
如果把收藏的宝贝的详细信息实时冗余到收藏info表,则上述查询收藏item表的操作就不再需要了。但是,由于许多热门商品可能有几千到几十万人收藏,这些热门商品的价格等信息的变动可能导致收藏info表的大量修改,并压垮数据库。

时间: 2024-12-22 07:08:23

OceanBase架构浅析的相关文章

OceanBase架构浅析(二)

单点性能 OceanBase架构的优势在于既支持跨行跨表事务,又支持存储服务器线性扩展.当然,这个架构也有一个明显的缺陷:UpdateServer单点,这个问题限制了OceanBase集群的整体读写性能.下面从内存容量.网络.磁盘等几个方面分析UpdateServer的读写性能.其实大部分数据库每天的修改次数相当有限,只有少数修改比较频繁的数据库才有每天几亿次的修改次数.另外,数据库平均每次修改涉及的数据量很少,很多时候只有几十个字节到几百个字节.假设数据库每天更新1亿次,平均每次需要消耗100

大中型网站技术架构浅析 - 实时通信

本文所讲述的『实时通信』主要围绕浏览s器端和服务器端之间的实时通信.大中型网站技术架构浅析 系列之一. 实时通信主要分3大类: 1. Pull技术,轮询(Polling) 客户端定时轮询请求,服务器端立刻返回. 优点:短链接,服务器处理方便,支持跨域. 缺点:有一定延迟 微博未读微博数和未读消息(评论,@)就是用polling实现的. 应用场景:对实时性要求不高的应用,如新微博提示,评论提示,回复提示等. 2. Push,反向Ajax(Reverse Ajax)或者叫Comet. 实现方式主要有

三层架构浅析

表示层(UI):显示的界面,用户浏览和输入.业务逻辑层(BLL):对用户输入的数据进行处理:对从数据访问层获取的数据进行处理.数据访问层(DLL):从数据库或其他地方获取原始数据. Model层(实体类):让对象和表形成映射关系.Model层属于辅助作用. 分层的好处:实现"高内聚,低耦合".采用"分而治之"的思想,把问题划分开来各个解决,易于控制,延展和分配资源. 三层结追求的目标:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层.比如:表示层输入参数增加,

某移动社交应用服务端架构浅析

原文http://blog.csdn.net/lvjin110/article/details/12958463 TA是一款是基于地理位置的社交应用,帮助你与你不认识的.但就在附近的人进行即时沟通.TA是一款陌生人约会交友应用,无论你在银行排队.乘坐公交.咖啡厅或公园散步等任何地方,随时随地就能与附近有趣的陌生人进行即时沟通.分享照片.约会和交友-- 转眼间,离开该研发团队快半年了,在此期间不少网友问到后端架构,及技术细节.出于技术分享为目的,现将服务端架构及设计思路分享给大家. 如下图: 上图

Android应用内社区SDK技术架构浅析

Android应用内社区SDK技术架构浅析 应用内微社区是什么 ? 图1 图2 雪球财经应用内社区 一.以友盟微社区为例 简单来说,友盟的微社区就是一款帮助开发者在应用中快速搭建一个社区( 类似于新浪微博.朋友圈 )的产品.在很多应用中,开发商往往都会需要一个用户之间以及用户与开发商之间互动的社区,用户往往又会在社区里选择赞.评论.关注.转发.发帖等各种互动方式.但是开发一个社交系统可不是那么容易的一件事,复杂的用户关系.消息流.服务器架构等等都是棘手的问题,更重要的是大家都是重复地劳动!每个开

LAMP架构浅析

  LAMP架构浅析 一.LAMP简介 Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.LAMP具有Web资源丰富.轻量.快速开发等特点,微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的 优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台. 二.本实验目的 通过简单编译

boost.asio源码剖析(二) ---- 架构浅析

* 架构浅析 先来看一下asio的0层的组件图.                     (图1.0) io_object是I/O对象的集合,其中包含大家所熟悉的socket.deadline_timer等对象,主要功能是提供接口给用户使用. services服务是逻辑功能的实现者,其中包含提供定时功能的deadline_timer_service.提供socket相关功能的win_iocp_socket_service(windows平台)/reactive_socket_service(其他

Camera服务之--架构浅析

Camera服务之--架构浅析 分类: Camera 分析2011-12-22 11:17 7685人阅读 评论(3) 收藏 举报 android硬件驱动框架jnilinux内核平台 一.应用层 Camera 的应用层在Android 上表现为直接调用SDK API 开发的一个Camera 应用APK 包.代码在/android/packages/apps/Camera 下.主要对 android.hardware.Camera(在Framework中) 类的调用,并且实现Camera 应用的业

USB 驱动架构浅析

1.USB简介 USB,即Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口支持设备的即插即用和热插拔功能.USB是在1994年底由英特尔.康柏.IBM等多家公司联合提出的.USB版本经历了多年的发展,现已经发展为3.1版本,成为当今PC中的标准扩展接口.当前主要采用USB2.0和USB3.0接口,USB各版本间能很好的兼容. USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为设备提供电源,对于任何已经成