SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
LAMP人 主题分享交流会




      www.LAMPER.cn
       QQ群:3330312
 http://weibo.com/lampercn
LAMP人 主题分享交流会



       www.LAMPER.cn
        QQ群:3330312
  http://weibo.com/lampercn
OceanBase
 千亿级海量数据库

        2011.5
日照:rizhao.ych@taobao.com


                           3
Agenda
   存储需求与现有方案
   Oceanbase技术方案
   收藏夹应用案例
   系统展望




                             4
在线存储需求
 数据库在线存储需求
    数据规模:百TB级,百台机器
    OLTP:几十万QPS,几万TPS
    OLAP:支持千万级记录实时计算
    支持事务
    强一致性 (vs. 弱一致性、最终一致性)
    可用性:5个9
    运维简单性:不再拆库,自动扩容




                             5
现有存储方案对照
          Bigtable

             HBase
              万亿记录 数                              Megastore
                     据
 Dynamo        (十PB) 规
                     模
 Cassandra                                        OceanBase
              千亿记录
               (百TB)



              十亿记录
                (TB)
                                                   RDBMS
              千万记录                    事务与数据一致性
               (百GB)
                       最终一致    单行事务      跨行跨表事务
 NoSQL系统
    数据容量大、可扩展性好、容错能力强
    没有跨行跨表事务、数据一致性弱                                       6
OceanBase
 始于2010年5月
 海量数据存储特点的进一步分析
   数据量大但修改量较小,一千亿 * 1%* 100B = 100G
   区分最新修改的增量数据和以前的基准数据?
 OceanBase = RDBMS + 云存储
     增量数据(增删改操作):单机之内存+SSD
     基准数据:静态B+树,多机
     数据读取 :基准数据+增量数据
     数据写入 :增量数据
     事务:集中化写事务+分布式读事务




                                       7
OceanBase系统架构
                        RootServer/           RootServer/
                       UpdateServer          UpdateServer
                           (主)                   (备)

JavaClient




             ChunkServer    ChunkServer   ChunkServer   ChunkServer


   主控服务器RootServer:主+备,数据定位/全局Schema/机器管理…
   增量数据服务器UpdateServer:主+备,实时修改(内存+SSD)
   基准数据服务器ChunkServer:多台,B+树叶子节点 (磁盘或SSD)
   增量数据定期合幵到基准数据中,从而分散到多台ChunkServer
                                                                      8
数据结构
 分布式Hash表
     随机读,不支持范围查询;
     Hash划分均匀;
     两种Hash:取模Hash与一致性Hash
     实例:Tair,Memcache,Dynamo,Cassandra
 分布式B+ Tree
   随机读和顺序扫描,支持范围查询;
   顺序划分不均匀,需要叶子节点分裂合幵
   实例:Bigtable & HBase,Google Megastore
 Oceanbase数据结构
   增量数据:单机B+树
   基准数据:分布式B+树
   新的基准数据 = 老的基准数据 + 增量数据
                                           9
可扩展性 & 可靠性
 可扩展性
  基准数据服务器ChunkServer
     机器动态上下线
  增量数据服务器UpdateServer
     内存+SSD服务,多网卡,万兆网卡
     备提供读服务
 可靠性
  基准数据服务器ChunkServer
     数据存储多份,一般为3份
  增量数据服务器UpdateServer
     Commit log + RAID 1磁盘
     实时本地热备(主+备) + 准实时异地热备
  定位服务器RootServer
     实时本地热备(主+备) + 准实时异地热备   10
事务&一致性
 数据库事务
  单机写事务 +分布式读事务
  支持跨表事务
 一致性选择
  弱一致性
  最终一致性
  强一致性
     本地实时同步,异地准实时同步




                            11
负载平衡 & 读写分离
 自动负载均衡
  RootServer总体协调
  负载均衡因素:内存,磁盘等资源占用,读写负载等;
  数据迁移:迁移过程不影响对外服务
 读写分离
  ChunkServer只读,简化设计幵提高读性能
  UpdateServer采用copy-on-write数据结构,写不影响读
  Oceanbase系统读和写基本不干扰




                                           12
其它特性
 其它特性
    在线修改schema
    没有随机写,SSD友好
    内置数据压缩,减少机器数量和网络数据流量
    在线(不停机)系统版本升级




                            13
写节点是否成瓶颈?
 CPU,内存,网络,磁盘…
 内存容量
   新增的记录:1千万条/天,1KB/条10GB/天
   记录的修改:1亿条/天,100B/条10GB/天
 网络:100,000QPS,100B/条10MB/s
 磁盘
   Commit log (bin log):Group commit
 改进方案
   SSD
   多网卡、万兆网卡
   …


                                        14
收藏夹的挑战
 收藏夹挑战
    需求:查找一个用户的所有收藏的所有商品详情
    收藏信息表保存收藏信息条目,40亿+
    收藏商品表保存收藏的商品详细信息,4亿+
    执行两张表的暴力Join?一个用户可以收藏数千商品
    冗余商品详细信息到收藏表?一件商品可被数十万用户收藏




                                  15
收藏夹解决方案
 解决方案
  收藏夹数据 = 基准数据 + 增量数据
  基准数据:收藏信息表冗余存储商品详情信息
  增量数据:收藏信息表和商品详情表分别存放到UpdateServer内
   存中
  操作步骤:
    1. 顺序读取基准数据中用户的收藏信息及商品详情;
    2. 将增量数据中的用户收藏信息更新到读取结果中;
    3. 将增量数据中的用户收藏的商品信息更新到读取结果中;




                                        16
收藏夹性能
 收藏夹性能
 – 数据膨胀:冗余收藏item信息到收藏info表:~1.6TB(压缩
   前)/800GB(压缩后)
 – 平均响应时间<50ms
 – Mysql 16 * 2减少为Oceanbase 12 + 2




                                       17
Oceanbase性能
 Oceanbase性能
   4 ChunkServer, 2 * E5520 @2.27HZ, 10 * 300GB SAS, 16GB
   21亿条记录, 压缩后160GB * 3, 10k块, 随机读, cache基本不命中
   140.0
    6000
     30
   120.0
    5000
     25
   100.0
    4000
     20
    80.0
    3000
     15
    60.0                              响应时间
                                        QPS
    2000
     10
    40.0                               CS负载
    1000
       5
    20.0
       00
     0.0
            10
             10
             10   50 150 300 1000
                   50 150 300 1000
                           300 1000

      CS load高:全异步模型
      响应时间长:同步读 -> 预读


                                                         18/26
UpdateServer性能
 UpdateServer性能
   2 * E5520 @ 2.27HZ, 24G, 千兆网卡
     Size(byte)       20    100     1024    2048
     QPS              78000 76000   70000   55000
     Context Switch   26W   25W     21W     13W

   待优化点
      优化网络框架内存分配:优化后 QPS > 10W
      减少任务队列导致的上下文切换:优化后 QPS > 20W
   结论:UPS不是性能瓶颈




                                                    19
经验教训
 高性能服务器
     数据拷贝:Direct IO,权衡接口模块化与性能
     内存分配:内存池,线程缓存
     锁:线程缓存,减少Cache锁冲突,copy-on-write数据结构
     上下文切换:替换基于任务队列的网络模型
 多UpdateServer?
     不求大而全,但求明晰的技术发展路线图
     取决于业务需求




                                            20
Oceanbase展望
   支持OLAP应用
   列式存储
   Blob支持
   MapReduce
   TPC-E
   代码开源
   …




                              21
• weibo.com: 淘宝日照
• 个人博客:http://nosqlnotes.net



                               22

Más contenido relacionado

La actualidad más candente

百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010Chuanying Du
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践isnull
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面Tianwei Liu
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Redis分享
Redis分享Redis分享
Redis分享yiihsia
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析Leechael
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Hanborq Inc.
 
了解内存
了解内存了解内存
了解内存Feng Yu
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介昱劭 劉
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese Vickie Zeng
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能Feng Yu
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践Feng Yu
 
Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照knuthocean
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念haiyuan ning
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术团队
 

La actualidad más candente (20)

Redis介绍
Redis介绍Redis介绍
Redis介绍
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Redis分享
Redis分享Redis分享
Redis分享
 
张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析张铁安:Feed系统架构浅析
张铁安:Feed系统架构浅析
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
了解内存
了解内存了解内存
了解内存
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
利用新硬件提升数据库性能
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能
 
SSD在淘宝的应用实践
SSD在淘宝的应用实践SSD在淘宝的应用实践
SSD在淘宝的应用实践
 
Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照Ocean base --千亿级海量数据库-lamper_日照
Ocean base --千亿级海量数据库-lamper_日照
 
Hic2011
Hic2011Hic2011
Hic2011
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
Hbase运维碎碎念
Hbase运维碎碎念Hbase运维碎碎念
Hbase运维碎碎念
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
 

Destacado

Redis的一点想法 - 杨海潮
Redis的一点想法 - 杨海潮Redis的一点想法 - 杨海潮
Redis的一点想法 - 杨海潮Shaoning Pan
 
海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用Shaoning Pan
 
Technology Changes
Technology ChangesTechnology Changes
Technology ChangesShaoning Pan
 
互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动 互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动 Shaoning Pan
 
分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏Shaoning Pan
 
移动互联网产业分析 梁文静
移动互联网产业分析 梁文静移动互联网产业分析 梁文静
移动互联网产业分析 梁文静Shaoning Pan
 
互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动Shaoning Pan
 
如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动 如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动 Shaoning Pan
 
Redis 介绍 -田琪
Redis 介绍 -田琪Redis 介绍 -田琪
Redis 介绍 -田琪Shaoning Pan
 
身随心动—《汉字工具箱》开发历程 姚鸿滨
身随心动—《汉字工具箱》开发历程 姚鸿滨身随心动—《汉字工具箱》开发历程 姚鸿滨
身随心动—《汉字工具箱》开发历程 姚鸿滨Shaoning Pan
 
Cassandra实时统计分享 - 赵伟
Cassandra实时统计分享  - 赵伟Cassandra实时统计分享  - 赵伟
Cassandra实时统计分享 - 赵伟Shaoning Pan
 
Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Shaoning Pan
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构Shaoning Pan
 
曾勇 Elastic search-intro
曾勇 Elastic search-intro曾勇 Elastic search-intro
曾勇 Elastic search-introShaoning Pan
 
高性能Lamp程序设计 付超群
高性能Lamp程序设计   付超群高性能Lamp程序设计   付超群
高性能Lamp程序设计 付超群Shaoning Pan
 
Tanx成长之路 real time media
Tanx成长之路 real time mediaTanx成长之路 real time media
Tanx成长之路 real time mediaShaoning Pan
 
Hadoop的etl任务—flume使用及其 优化-品友互动
 Hadoop的etl任务—flume使用及其 优化-品友互动 Hadoop的etl任务—flume使用及其 优化-品友互动
Hadoop的etl任务—flume使用及其 优化-品友互动Shaoning Pan
 
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林Shaoning Pan
 

Destacado (19)

Presentation
PresentationPresentation
Presentation
 
Redis的一点想法 - 杨海潮
Redis的一点想法 - 杨海潮Redis的一点想法 - 杨海潮
Redis的一点想法 - 杨海潮
 
海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用海量用户数据处理及其在一淘广告和推荐中的应用
海量用户数据处理及其在一淘广告和推荐中的应用
 
Technology Changes
Technology ChangesTechnology Changes
Technology Changes
 
互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动 互联网广告发展的趋势-品友互动
互联网广告发展的趋势-品友互动
 
分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏
 
移动互联网产业分析 梁文静
移动互联网产业分析 梁文静移动互联网产业分析 梁文静
移动互联网产业分析 梁文静
 
互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动互联网行为分析和数据挖掘-品友互动
互联网行为分析和数据挖掘-品友互动
 
如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动 如何构建一个高可用可扩展的广告投放平台-品友互动
如何构建一个高可用可扩展的广告投放平台-品友互动
 
Redis 介绍 -田琪
Redis 介绍 -田琪Redis 介绍 -田琪
Redis 介绍 -田琪
 
身随心动—《汉字工具箱》开发历程 姚鸿滨
身随心动—《汉字工具箱》开发历程 姚鸿滨身随心动—《汉字工具箱》开发历程 姚鸿滨
身随心动—《汉字工具箱》开发历程 姚鸿滨
 
Cassandra实时统计分享 - 赵伟
Cassandra实时统计分享  - 赵伟Cassandra实时统计分享  - 赵伟
Cassandra实时统计分享 - 赵伟
 
Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构
 
曾勇 Elastic search-intro
曾勇 Elastic search-intro曾勇 Elastic search-intro
曾勇 Elastic search-intro
 
高性能Lamp程序设计 付超群
高性能Lamp程序设计   付超群高性能Lamp程序设计   付超群
高性能Lamp程序设计 付超群
 
Tanx成长之路 real time media
Tanx成长之路 real time mediaTanx成长之路 real time media
Tanx成长之路 real time media
 
Hadoop的etl任务—flume使用及其 优化-品友互动
 Hadoop的etl任务—flume使用及其 优化-品友互动 Hadoop的etl任务—flume使用及其 优化-品友互动
Hadoop的etl任务—flume使用及其 优化-品友互动
 
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林
 

Similar a Ocean base 千亿级海量数据库-日照

网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdfYu Lin
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践Wensong Zhang
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践drewz lin
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践lovingprince58
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统智杰 付
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Wensong Zhang
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Michael Zhang
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统Dai Jun
 
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02lovingprince58
 
稳定、高效、低碳 -淘宝软件基础设施构建实践
稳定、高效、低碳  -淘宝软件基础设施构建实践稳定、高效、低碳  -淘宝软件基础设施构建实践
稳定、高效、低碳 -淘宝软件基础设施构建实践Wensong Zhang
 
20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统锐 张
 
Selling sybase hds solution for banking
Selling sybase hds solution for bankingSelling sybase hds solution for banking
Selling sybase hds solution for bankingfocusbi
 
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师Enlight Chen
 
Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Wensong Zhang
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构Cosey Lee
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局Alex Lau
 

Similar a Ocean base 千亿级海量数据库-日照 (20)

网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdf
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
 
Taobao base
Taobao baseTaobao base
Taobao base
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统Taobao海量图片存储与cdn系统
Taobao海量图片存储与cdn系统
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
 
Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02Taobao 海量图片存储与CDN系统02
Taobao 海量图片存储与CDN系统02
 
Hbase
HbaseHbase
Hbase
 
稳定、高效、低碳 -淘宝软件基础设施构建实践
稳定、高效、低碳  -淘宝软件基础设施构建实践稳定、高效、低碳  -淘宝软件基础设施构建实践
稳定、高效、低碳 -淘宝软件基础设施构建实践
 
20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统20110625.【打造高效能的cdn系统】.易统
20110625.【打造高效能的cdn系统】.易统
 
Selling sybase hds solution for banking
Selling sybase hds solution for bankingSelling sybase hds solution for banking
Selling sybase hds solution for banking
 
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
章文嵩:Taobao海量图片存储与cdn系统 v2-系统架构师
 
Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师Taobao海量图片存储与cdn系统 v2-系统架构师
Taobao海量图片存储与cdn系统 v2-系统架构师
 
构建基于Lamp的网站架构
构建基于Lamp的网站架构构建基于Lamp的网站架构
构建基于Lamp的网站架构
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 

Más de Shaoning Pan

海量数据计算架构实现
海量数据计算架构实现海量数据计算架构实现
海量数据计算架构实现Shaoning Pan
 
一淘广告机器学习
一淘广告机器学习一淘广告机器学习
一淘广告机器学习Shaoning Pan
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶Shaoning Pan
 
网站前段性能优化-品友互动
 网站前段性能优化-品友互动 网站前段性能优化-品友互动
网站前段性能优化-品友互动Shaoning Pan
 
品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化Shaoning Pan
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海Shaoning Pan
 
Think social to go global
Think social to go globalThink social to go global
Think social to go globalShaoning Pan
 
腾讯开放平台 Hellena
腾讯开放平台 Hellena腾讯开放平台 Hellena
腾讯开放平台 HellenaShaoning Pan
 
No sql带来了什么 孙立
No sql带来了什么   孙立No sql带来了什么   孙立
No sql带来了什么 孙立Shaoning Pan
 

Más de Shaoning Pan (10)

海量数据计算架构实现
海量数据计算架构实现海量数据计算架构实现
海量数据计算架构实现
 
RTB 优化算法
RTB 优化算法RTB 优化算法
RTB 优化算法
 
一淘广告机器学习
一淘广告机器学习一淘广告机器学习
一淘广告机器学习
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶
 
网站前段性能优化-品友互动
 网站前段性能优化-品友互动 网站前段性能优化-品友互动
网站前段性能优化-品友互动
 
品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化品友互动 Hadoop的etl任务—flume使用及其 优化
品友互动 Hadoop的etl任务—flume使用及其 优化
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
 
Think social to go global
Think social to go globalThink social to go global
Think social to go global
 
腾讯开放平台 Hellena
腾讯开放平台 Hellena腾讯开放平台 Hellena
腾讯开放平台 Hellena
 
No sql带来了什么 孙立
No sql带来了什么   孙立No sql带来了什么   孙立
No sql带来了什么 孙立
 

Ocean base 千亿级海量数据库-日照

  • 1. LAMP人 主题分享交流会 www.LAMPER.cn QQ群:3330312 http://weibo.com/lampercn
  • 2. LAMP人 主题分享交流会 www.LAMPER.cn QQ群:3330312 http://weibo.com/lampercn
  • 3. OceanBase 千亿级海量数据库 2011.5 日照:rizhao.ych@taobao.com 3
  • 4. Agenda  存储需求与现有方案  Oceanbase技术方案  收藏夹应用案例  系统展望 4
  • 5. 在线存储需求  数据库在线存储需求  数据规模:百TB级,百台机器  OLTP:几十万QPS,几万TPS  OLAP:支持千万级记录实时计算  支持事务  强一致性 (vs. 弱一致性、最终一致性)  可用性:5个9  运维简单性:不再拆库,自动扩容 5
  • 6. 现有存储方案对照 Bigtable HBase 万亿记录 数 Megastore 据 Dynamo (十PB) 规 模 Cassandra OceanBase 千亿记录 (百TB) 十亿记录 (TB) RDBMS 千万记录 事务与数据一致性 (百GB) 最终一致 单行事务 跨行跨表事务  NoSQL系统  数据容量大、可扩展性好、容错能力强  没有跨行跨表事务、数据一致性弱 6
  • 7. OceanBase  始于2010年5月  海量数据存储特点的进一步分析  数据量大但修改量较小,一千亿 * 1%* 100B = 100G  区分最新修改的增量数据和以前的基准数据?  OceanBase = RDBMS + 云存储  增量数据(增删改操作):单机之内存+SSD  基准数据:静态B+树,多机  数据读取 :基准数据+增量数据  数据写入 :增量数据  事务:集中化写事务+分布式读事务 7
  • 8. OceanBase系统架构 RootServer/ RootServer/ UpdateServer UpdateServer (主) (备) JavaClient ChunkServer ChunkServer ChunkServer ChunkServer  主控服务器RootServer:主+备,数据定位/全局Schema/机器管理…  增量数据服务器UpdateServer:主+备,实时修改(内存+SSD)  基准数据服务器ChunkServer:多台,B+树叶子节点 (磁盘或SSD)  增量数据定期合幵到基准数据中,从而分散到多台ChunkServer 8
  • 9. 数据结构  分布式Hash表  随机读,不支持范围查询;  Hash划分均匀;  两种Hash:取模Hash与一致性Hash  实例:Tair,Memcache,Dynamo,Cassandra  分布式B+ Tree  随机读和顺序扫描,支持范围查询;  顺序划分不均匀,需要叶子节点分裂合幵  实例:Bigtable & HBase,Google Megastore  Oceanbase数据结构  增量数据:单机B+树  基准数据:分布式B+树  新的基准数据 = 老的基准数据 + 增量数据 9
  • 10. 可扩展性 & 可靠性  可扩展性  基准数据服务器ChunkServer  机器动态上下线  增量数据服务器UpdateServer  内存+SSD服务,多网卡,万兆网卡  备提供读服务  可靠性  基准数据服务器ChunkServer  数据存储多份,一般为3份  增量数据服务器UpdateServer  Commit log + RAID 1磁盘  实时本地热备(主+备) + 准实时异地热备  定位服务器RootServer  实时本地热备(主+备) + 准实时异地热备 10
  • 11. 事务&一致性  数据库事务  单机写事务 +分布式读事务  支持跨表事务  一致性选择  弱一致性  最终一致性  强一致性  本地实时同步,异地准实时同步 11
  • 12. 负载平衡 & 读写分离  自动负载均衡  RootServer总体协调  负载均衡因素:内存,磁盘等资源占用,读写负载等;  数据迁移:迁移过程不影响对外服务  读写分离  ChunkServer只读,简化设计幵提高读性能  UpdateServer采用copy-on-write数据结构,写不影响读  Oceanbase系统读和写基本不干扰 12
  • 13. 其它特性  其它特性  在线修改schema  没有随机写,SSD友好  内置数据压缩,减少机器数量和网络数据流量  在线(不停机)系统版本升级 13
  • 14. 写节点是否成瓶颈?  CPU,内存,网络,磁盘…  内存容量  新增的记录:1千万条/天,1KB/条10GB/天  记录的修改:1亿条/天,100B/条10GB/天  网络:100,000QPS,100B/条10MB/s  磁盘  Commit log (bin log):Group commit  改进方案  SSD  多网卡、万兆网卡  … 14
  • 15. 收藏夹的挑战  收藏夹挑战  需求:查找一个用户的所有收藏的所有商品详情  收藏信息表保存收藏信息条目,40亿+  收藏商品表保存收藏的商品详细信息,4亿+  执行两张表的暴力Join?一个用户可以收藏数千商品  冗余商品详细信息到收藏表?一件商品可被数十万用户收藏 15
  • 16. 收藏夹解决方案  解决方案  收藏夹数据 = 基准数据 + 增量数据  基准数据:收藏信息表冗余存储商品详情信息  增量数据:收藏信息表和商品详情表分别存放到UpdateServer内 存中  操作步骤: 1. 顺序读取基准数据中用户的收藏信息及商品详情; 2. 将增量数据中的用户收藏信息更新到读取结果中; 3. 将增量数据中的用户收藏的商品信息更新到读取结果中; 16
  • 17. 收藏夹性能  收藏夹性能 – 数据膨胀:冗余收藏item信息到收藏info表:~1.6TB(压缩 前)/800GB(压缩后) – 平均响应时间<50ms – Mysql 16 * 2减少为Oceanbase 12 + 2 17
  • 18. Oceanbase性能  Oceanbase性能  4 ChunkServer, 2 * E5520 @2.27HZ, 10 * 300GB SAS, 16GB  21亿条记录, 压缩后160GB * 3, 10k块, 随机读, cache基本不命中 140.0 6000 30 120.0 5000 25 100.0 4000 20 80.0 3000 15 60.0 响应时间 QPS 2000 10 40.0 CS负载 1000 5 20.0 00 0.0 10 10 10 50 150 300 1000 50 150 300 1000 300 1000 CS load高:全异步模型 响应时间长:同步读 -> 预读 18/26
  • 19. UpdateServer性能  UpdateServer性能  2 * E5520 @ 2.27HZ, 24G, 千兆网卡 Size(byte) 20 100 1024 2048 QPS 78000 76000 70000 55000 Context Switch 26W 25W 21W 13W  待优化点  优化网络框架内存分配:优化后 QPS > 10W  减少任务队列导致的上下文切换:优化后 QPS > 20W  结论:UPS不是性能瓶颈 19
  • 20. 经验教训  高性能服务器  数据拷贝:Direct IO,权衡接口模块化与性能  内存分配:内存池,线程缓存  锁:线程缓存,减少Cache锁冲突,copy-on-write数据结构  上下文切换:替换基于任务队列的网络模型  多UpdateServer?  不求大而全,但求明晰的技术发展路线图  取决于业务需求 20
  • 21. Oceanbase展望  支持OLAP应用  列式存储  Blob支持  MapReduce  TPC-E  代码开源  … 21
  • 22. • weibo.com: 淘宝日照 • 个人博客:http://nosqlnotes.net 22