目录
一、OceanBase 开发者大会的一天
2024年4月20日,OceanBase开发者大会在上海举办,有幸参加了这场面向开发者的盛会,与来自各行各业的数据库大咖和开发者朋友一起,探讨了关于分布式数据库的前沿技术和最佳实践。
大会开场
大会在一片热烈的氛围中开场,来自 OceanBase 的创始人和技术领导层分享了 OceanBase 的发展历程和未来愿景。从2010年第一行代码,到2022年发布4.0版本,OceanBase 已逐渐成为企业级分布式数据库领域的重要玩家。尤其是其突破性的“三地五中心”城市级容灾能力,赢得了金融、互联网等行业的青睐。
主题演讲 - 云时代的分布式数据库
上午的主题演讲环节由《云时代的分布式数据库》开始。他深入探讨了分布式数据库在云时代的发展趋势,强调了 OceanBase 在实现高可用性和云原生特性方面的创新。通过分享 OceanBase 如何通过自研技术实现高效的分布式数据管理,他鼓励开发者积极拥抱分布式数据库,并强调在云时代,这一趋势将愈加明显。
主题演讲 - 分布式 + AI 的未来
接下来,另一位演讲嘉宾分享了关于分布式数据库和人工智能(AI)结合的可能性。他指出,随着 AI 技术的发展,数据库不再只是传统的数据存储与查询工具,而是一个可以与 AI 深度融合的基础设施。通过在分布式数据库中嵌入 AI 算法,未来可以实现更智能的数据处理和决策支持。
主题演讲 - 分布式数据库最好的时代
顾星宇的演讲以“分布式数据库最好的时代”为题,他认为目前正是分布式数据库的黄金时代。随着云计算、大数据、AI 等技术的迅速发展,分布式数据库的应用场景愈发广泛。他提到了 OceanBase 如何通过自身技术的演进,不断拓展在各个行业的应用场景,并与开发者一起共建生态。
技术专场 - 开发者互动和实践
下午的活动更加多样化,不仅有关于技术产品的深入讨论,还有许多互动体验环节,如产品 Demo、Hands-on Workshop、Developer Hub、人才集市等。通过这些活动,我感受到 OceanBase 致力于打造一个与开发者紧密互动的生态环境。
在技术生态专场中,OceanBase 团队详细介绍了如何构建完整的分布式数据库生态系统,包括技术支持、社区活动、人才培养等。在专有云实践专场中,演讲者展示了 OceanBase 在关键业务系统中的应用实例,并分享了在构建分布式数据库时遇到的挑战和解决方案。
二、从技术角度介绍一下Oceanbase
OceanBase 数据库(OceanBase Database)是一款原生分布式数据库。
在普通硬件上实现金融级高可用,首创“三地五中心”城市级故障自动无损容灾新标准,刷新 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。
Oceanbase架构+使用场景+数据存储原理图
1、Oceanbase六大核心特性
高可用:独创 “三地五中心” 容灾架构方案,建立金融行业无损容灾新标准。支持同城/异地容灾,可实现多地多活,满足金融行业 6 级容灾标准(RPO=0,RTO< 8s),数据零丢失。
高兼容:高度兼容 Oracle 和 MySQL,覆盖绝大多数常见功能,支持过程语言、触发器等高级特性,提供自动迁移工具,支持迁移评估和反向同步以保障数据迁移安全,可支撑金融、政府、运营商等关键行业核心场景替代。
水平扩展:实现透明水平扩展,支持业务快速的扩容缩容,同时通过准内存处理架构实现高性能。支持集群节点超过数千个,单集群最大数据量超过 3PB,最大单表行数达万亿级。
低成本:基于 LSM-Tree 的高压缩引擎,存储成本降低 70% - 90%;原生支持多租户架构,同集群可为多个独立业务提供服务,租户间数据隔离,降低部署和运维成本。
实时 HTAP:基于“同一份数据,同一个引擎”,同时支持在线实时交易及实时分析两种场景,“一份数据”的多个副本可以存储成多种形态,用于不同工作负载,从根本上保持数据一致性。
安全可靠:自 2010 年开始完全自主研发,代码级可控,自研单机分布式一体化架构,连续多年通过大规模金融核心场景的可靠性验证;完备的角色权限管理体系,数据存储和通信全链路透明加密,支持国密算法,通过等保三级专项合规检测。
2、OceanBase整体架构
OceanBase 数据库采用 Shared-Nothing 架构,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎、事务引擎,运行在普通 PC 服务器组成的集群之上,具备高可扩展性、高可用性、高性能、低成本、与主流数据库高兼容等核心特性。
节点和可用区(Zone):OceanBase数据库由多个节点构成,这些节点被组织在不同的可用区内。每个可用区代表一组具有相似硬件可用性的节点,是实现物理隔离和容灾的重要逻辑单位。在单一数据中心部署的场景中,一个可用区可能对应一个机架或交换机;而在跨数据中心部署的场景中,一个可用区则可能对应整个数据中心。每个可用区都具有特定的IDC(Internet Data Center)和地域(Region)属性,这些属性反映了节点所在的具体物理位置,对于优化数据复制和访问策略至关重要。
数据分区(Partition)和分片:OceanBase数据库中,表的数据会被水平拆分成多个分片,即分区。这种分区可以基于多种规则,包括hash、range或list等,以支持不同的数据管理策略。此外,OceanBase还支持二级分区,如可以将订单表首先按用户ID分区,然后根据月份进行二次分区。这种分层的分区策略不仅优化了数据的存储效率,还提高了查询性能。每个分区都存储在一个名为Tablet的存储层对象中,Tablet负责存储排序后的数据记录。为了数据的持久化,对Tablet中的数据进行修改时,需要将变更写入对应的日志流(Log Stream)中。
副本和数据一致性:为了保证数据的高可用性,OceanBase数据库为每个日志流和Tablet设置了多个副本,这些副本分布在不同的可用区中。在这些副本中,只有一个被指定为主副本(Leader),负责处理写操作,而其他的从副本(Follower)则负责同步数据。主从副本(主副本(Leader)、从副本(Follower))间的数据一致性通过基于Multi-Paxos协议的分布式共识机制来维护。一旦主副本发生故障,系统会自动从从副本中选举出新的主副本,确保服务的连续性。
服务进程和通信:每个节点上运行着名为observer的服务进程,这些进程通过TCP/IP协议交换信息,处理数据的存取和SQL语句的执行。observer进程内部含有多个操作系统线程,使得OceanBase数据库能够高效地处理并发请求。
总结与感想
OceanBase 开发者大会不仅让我对分布式数据库技术有了更深入的了解,还让我认识到与开发者互动的重要性。通过与业内专家和开发者的交流,我了解到分布式数据库的发展方向和可能的应用场景。此外,互动体验和实践环节让我对 OceanBase 的产品和技术有了更直观的感受。
这次大会让我深深感受到 OceanBase 致力于打造一个开放、友好的开发者社区,并通过不断创新,推动分布式数据库领域的发展。我相信,随着技术的不断进步,分布式数据库将成为越来越多企业的首选,而 OceanBase 将继续引领这一领域的发展。
欢迎评论区留言讨论,如果本文对你有帮助 欢迎关注 、点赞 、收藏 、评论!!!
博主v:XiaoMing_Java
📫作者简介:嗨,大家好,我是 小 明
互联网大厂后端研发专家,2022博客之星TOP3 / 博客专家 / CSDN后端内容合伙人、InfoQ(极客时间)签约作者、阿里云签约博主、全网 10 万粉丝博主。
🍅 文末获取联系 🍅 👇🏻 精彩专栏推荐订阅收藏 👇🏻
专栏系列(点击解锁)
学习路线(点击解锁)
知识定位
全面讲解MySQL知识与企业级MySQL实战 🔥计算机底层原理🔥