`
isiqi
  • 浏览: 16550012 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Oceanbase – 千亿级海量数据库

阅读更多

from:http://www.nosqlnotes.net/archives/170

我在数据库大会有一个报告:<<Oceanbase – 千亿级海量数据库>>,ppt已上传到Slideshare上。有一些同学问我,Oceanbase的创新点在哪里?

从大学的数据结构课程可以知道,数据量比较大时,有两种数据结构很常用:哈希表和B+树,分布式系统也是类似的。如下图:

云存储系统.png

Amazon的系统实现了一个分布式哈希表,而Google Bigtable, Yahoo PNUTS,Microsoft SQL Azure实现了一颗分布式B+树。分布式哈希表实现相对简单,但只支持随机读取;而分布式B+树支持范围查询,但实现比较复杂,主要有两个难点:

1, 状态数据的持久化和迁移。更新操作改变系统的状态,数据库系统中更新操作首先以事务提交日志(MySQL称为binlog, NOSQL称为commit log)写入到磁盘,为了保证可靠性,commit log需要复制多份并保证它们之间的一致性。另外,机器宕机时需要通过commit log记录的状态修改信息将服务迁移到集群中的其它节点。

2, 子表的分裂和合并。B+树实现的难点在于树节点的分裂与合并,在分布式系统中,数据被顺序划分为大小在几十到几百MB大小的数据范围,一般称为子表,相当于B+树结构中的叶子节点。由于每个子表在系统中存储多份,需要保证多个副本之间的分裂点是一致的。由于子表在分裂的同时也有更新操作,保证多个副本之间一致是比较困难的。

对于这两个问题,不同的系统有不同的解决方法:

1, 状态维持。Google Bigtable将状态数据写入到GFS中,由GFS提供可靠性保证,但GFS本身是一个巨大的工程;Yahoo PNUTS将状态数据写入到分布式消息中间件,Yahoo内部称为Yahoo Message Broker;Microsoft SQL Azure直接通过网络将数据复制到多机,由于一台机器服务多个子表,这些子表的副本可能分布在整个集群中,因此,任何两台机器都可能建立数据复制的网络通道,需要处理与这些通道有关的异常情况。

2, 子表分裂。由于底层有GFS保证可靠性,Google Bigtable设计时保证每一个子表同时只被一台机器(Tablet Server)服务;Yahoo PNUTS通过引入复杂的两节点提交(Two-phase commit)协议协调多个副本之间的一致性,使得他们的分裂点相同;Microsoft SQL Azure干脆不支持子表分裂,牺牲一部分扩展性从而简化系统设计。

淘宝Oceanbase设计之初对淘宝的在线存储需求进行分析发现:淘宝的数据总量比较大,未来一段时间,比如五年之内的数据规模为百TB级别,千亿条记录,另外,数据膨胀很快,传统的分库分表对业务造成很大的压力,必须设计自动化的分布式系统;然而,在线存储每天的修改量很小,大多数情况下单机的内存就能存放下。因此,我们采用将动态数据和静态数据分离的办法。动态数据的数据量小,采用集中式的方法解决,这样,状态数据维持从一个分布式的问题转化为单机的问题;静态数据的数据量大,采用分布式的方法解决,因为静态数据基本不变,实现时不需要复杂的线程同步机制,另外,保证静态数据的多个副本之间一致性是比较容易的,简化了子表的分裂和合并操作。通过这样的权衡,淘宝Oceanbase以一种很简单的方式满足了未来一段时间的在线存储需求,并且还获得了一些其它特性,如高效支持跨行跨表事务,这对于淘宝的业务是非常重要的。另外,我们之所以敢于做这样的权衡,还有一个重要的原因:我们内部已经思考了很多关于动态数据由集中式变为分布式的方案,即使我们对需求估计有些偏差,也可以很快修改原有系统进一步提高可扩展性。

分享到:
评论

相关推荐

    OceanBase---千亿级海量数据库

    ### OceanBase:千亿级海量数据库的关键技术与应用 #### 存储需求与现有方案 在互联网时代,数据的爆炸性增长对数据库系统提出了前所未有的挑战。以阿里巴巴旗下的淘宝平台为例,2010年的运营数据显示,注册会员达...

    OceanBase-V4.2.1数据库文档

    《OceanBase-V4.2.1数据库文档》是一份全面介绍OceanBase数据库系统V4.2.1版本的综合资料,包含了多个方面的内容,旨在帮助用户深入理解和使用这个分布式数据库系统。以下是根据提供的文件名提炼出的相关知识点: 1...

    OceanBase企业级分布式数据库介绍.pdf

    "OceanBase企业级分布式数据库介绍.pdf" 以下是从给定的文件中生成的相关知识点: OceanBase企业级分布式数据库介绍 OceanBase是一种透明可扩展的企业级数据库,具有高性能、可扩展性和高可用性的特点。它可以...

    蒋志勇:OceanBase支撑支付宝交易的分布式数据库系统

    OceanBase在处理海量数据的场景中也表现出色,例如全国人口数据库的案例,其中存储了14亿条记录。支付宝交易数据库涉及到每笔交易一条或几条记录的增删改操作,以及支付宝账务库中每个人的记录,均是高并发、高稳定...

    OceanBase:云时代企业级分布式数据库的技术挑战.pdf

    【OceanBase:云时代企业级分布式数据库的技术挑战】 在当今的云时代,企业级数据库面临着巨大的挑战,尤其是在扩展性和成本方面。传统的单机数据库由于其不可扩展性,往往需要高昂的维护费用。为了应对这一问题,...

    阿里 & 蚂蚁 OceanBase 原生分布式关系数据库介绍及典型使用案例

    总的来说,OceanBase是一个拥有原生分布式架构、强大功能、良好扩展性以及丰富产品体系的企业级分布式关系数据库。它不仅能够提供传统数据库的功能,还能在分布式环境下提供更好的性能和稳定性。OceanBase在为企业...

    OceanBase企业级数据库介绍.pptx

    OceanBase 企业级数据库介绍 OceanBase 是一款透明可扩展的企业级数据库,旨在解决传统企业级数据库和云数据库的可扩展性问题。该数据库系统具有高度的可扩展性、可靠性和安全性,能够满足企业级应用的需求。 透明...

    Python链接oceanbase各个版本oceanbase-client驱动jar包

    Python链接Oceanbase数据库通常涉及到使用特定的驱动程序,这些驱动程序是Java编写的,因为Oceanbase的客户端库主要以Java接口提供。在Python环境中,我们可以借助Jython或使用桥梁技术如`jdbc4py`来调用Java的jar包...

    OceanBase-数据库-V4.1.0.zip

    《OceanBase数据库4.1详解》 OceanBase是一款由中国阿里巴巴集团自主研发的分布式数据库系统,它在高并发、大规模数据处理方面表现出色,尤其适合大型互联网企业和金融行业的核心业务场景。在OceanBase 4.1.0版本中...

    OceanBase分布式数据库热门到实战

    OceanBase分布式数据库热门到实战 OceanBase分布式数据库是当前流行的分布式数据库管理系统,具有高性能、可扩展、灵活等特点。该数据库系统广泛应用于大数据时代的各个领域,例如金融、电商、社交媒体等。 ...

    OceanBase官方共享培训文件

    OceanBase 官方共享培训文件是 OceanBase 数据库认证专员(OBCA)认证培训课程的第一章,主要介绍了分布式数据库与集中式数据库的差异。 分布式数据库与集中式数据库的差异 OceanBase 数据库是一个分布式关系型...

    OceanBase导入导出工具用法

    obdumper是OceanBase提供的一款逻辑导入导出工具,用于将数据从OceanBase数据库中导出到文件中,或者将数据从文件中导入到OceanBase数据库中。obdumper支持多种导出格式,包括SQL、CSV、TXT等。 obdumper的基本用法...

    OceanBase云时代的关系数据库

    从发展历程来看,OceanBase自2010年诞生以来,经历了从收藏夹数据库到电商数据库,再到金融级云数据库的跃迁。在早期版本中,OceanBase定位于收藏夹数据库,逐步发展至能够支持OLAP业务的电商数据库版本,这些经历为...

    OceanBase分布式数据库技术概述.pdf

    OceanBase分布式数据库技术概述 OceanBase分布式数据库技术概述是原生分布式数据库,具有良好的扩展性和容灾能力。 OceanBase给用户透明的体验,像使用单机数据库一样使用分布式数据库。没有分库分表的烦恼,支持...

    OceanBase数据库源码解析.docx

    OceanBase数据库的诞生旨在解决传统关系型数据库在处理海量数据、高并发访问、共享访问等方面遇到的性能瓶颈。 OceanBase数据库的架构设计旨在实现数据的高可用性、可扩展性和容错性。OceanBase的分布式架构包括...

    银河麒麟操作系统 安装OceanBase 3.1图文详解

    本教程将详细介绍如何在银河麒麟操作系统上安装OceanBase 3.1,这是一款分布式数据库系统,特别适合处理大规模数据并发和高可用性需求。 首先,确保你的银河麒麟操作系统是最新的。通过运行系统的更新工具,检查并...

    阿里技术 OceanBase支撑支付宝交易的分布式数据库系统 共26页.pptx

    阿里技术 OceanBase支撑支付宝交易的分布式数据库系统 共26页.pptx

    OceanBase数据库白皮书资料

    《OceanBase数据库详解》 OceanBase数据库是一款由阿里巴巴集团自主研发的分布式数据库系统,以其高可用性、高性能和可扩展性而备受关注。本资料集合涵盖了OceanBase数据库V4.1.0版本的相关知识,旨在帮助读者全面...

    淘宝数据库架构演进历程及OceanBase架构PPT课件.pptx

    淘宝数据库架构演进历程及OceanBase架构PPT课件.pptx 本资源摘要信息涵盖淘宝数据库架构演进历程的三个阶段,包括早期单机式的 MySQL 使用方式、Mysql 迁移到 Oracle 并升级到小型机、高端存储,最后到异构数据库...

    Oceanbase-all-in-one-4.2.0.0一键安装包

    OceanBase 是一款分布式数据库系统,由阿里巴巴集团研发,主要用于处理大规模数据事务处理和分析查询。其设计目标是提供高可用性、高性能、可扩展性和低成本的数据库服务。在这个"Oceanbase-all-in-one-4.2.0.0一键...

Global site tag (gtag.js) - Google Analytics