揭阳市建设发展总公司网站,自己做的视频网站如何赚钱,珠海企业网站建设费用,邢台pc网站开发OceanBase于2020年3月在阿里云上完成了商业化#xff0c;在公有云上正式对外开放。同步上线的还有相关的生态产品#xff0c;包括集群管控#xff08;OCP:OceanBase Cloud Platform#xff09;#xff0c;诊断#xff08;OTA:OceanBase Tunning Advisor#xff09;…OceanBase于2020年3月在阿里云上完成了商业化在公有云上正式对外开放。同步上线的还有相关的生态产品包括集群管控OCP:OceanBase Cloud Platform诊断OTA:OceanBase Tunning Advisor迁移服务OMS:OceanBase Migration Service及开发者中心ODC:OceanBase Developer Center。
一、公共云OceanBase服务端部署
蚂蚁金服自研分布式关系数据库OceanBase是一款纯原生的分布式关系数据库在代码层面完全可控。公共云OceanBase产品图1-1是基于三份副本3AZ部署通过paxos协议保证了多节点间的数据一致性单点故障甚至单AZ故障也可以保障业务连续性RPO0RTO30s做到机房级高可用未来还将推出三地五中心的产品形态具备城市级高可用切换能力。同时OceanBase的资源管理具有非常高的灵活性。它支持多租户部署在OceanBase集群里面我们可以按需分配实例并且可以进行在线资源扩容或者缩容。 从安全性和可用性来讲OceanBase是非常适合金融业务场景的。因为监管需求金融业务场景像银行业务等不能上公有云。但是这并不影响类金融业务像保险、基金等。 图1-1
二、OceanBase架构原理
与大多数分布式系统不同的地方在于OceanBase这个系统没有单独的总控服务器或者总控进程。分布式系统一般包含一个单独的总控进程用来做全局管理、负载均衡等等。OceanBase没有单独的总控进程它的总控是一个服务叫做RootService集成在ObServer里面。OceanBase会从所有的工作机中动态地选出一台ObServer执行总控服务另外当总控服务所在的ObServer出现故障时系统会自动选举一台新的ObServer提供总控服务。这种方式的好处在于简化部署虽然实现很复杂但是大大降低了使用成本。
OceanBase通过分区能力做到无限水平扩展图1-2。OceanBase跟传统数据库分区不一样的地方在于传统数据库所有的分区只能在一台服务器而OceanBase每个分区可以分布到不同的服务器每个分区都有三副本。从数据模型的角度看OceanBase可以被认为是传统的数据库分区表在多机的实现。它可以把不同的用户生成的数据全部融合到统一的表里面。无论这些分区在多台服务器上是如何分布的整个系统对用户呈现的都是一张表后台实现对用户完全透明。OceanBase在用户入口使用了OBProxy它是一个访问代理它会根据用户请求的数据将请求转发到合适的服务器。ObProxy的最大的亮点在于性能突出它可以在非常一般的普通服务器上达到每秒百万级的处理能力。 图1-2
如图1-2多个分区分布在多台服务器上。由于多个分区跨ObServer内部通过两阶段提交实现分布式事务。当然两阶段提交协议性能较差OceanBase内部做了很多优化。它提出了分区组的概念会把多个经常一起访问或者说访问模式比较类似的不同表的分区放到一个分区组里面。OB后台会将同一个分区组尽可能调度到一台服务器上避免分布式事务。同时优化了两阶段提交协议的内部实现。两阶段提交协议涉及多台服务器协议中包含协调者、参与者这两种角色参与者维护了每台服务器的局部状态协调者维护了分布式事务的全局状态。常见的做法是对协调者记日志来持久化分布式事务的全局状态而OceanBase的做法是如果出现故障通过查询所有参与者的状态来恢复分布式事务。这种方式节省了协调者日志而且只要所有的参与者都预提交成功整个事务就成功了不需要等协调者写日志就可以应答客户端。
三、OceanBase存储架构
OceanBase是一个shared noting的架构每一个OBServer都有独立的存储引擎将数据保存在本地这样可以满足容灾场景下的数据连续服务。OceanBase采用LSM-Tree的架构来设计Cache和数据存储数据首先被写入内存中的MemTable当中这样最高频和最活跃的数据都在内存访问极大的提升了热数据的访问效率。当MemTable的写入到达一个阈值的时候MemTable中的数据会做一次合并将数据转到磁盘的SSTable中。在很多基于LSM Tree的存储系统中为了解决写入的性能问题通常会将SSTable分为多层当一层的SSTable个数或者大小达到某个阈值时合并入下一层SSTable。 图1-3
在OceanBase内部也会有很多种不同类型的Cache有类似于Oracle和MySQL的buffer。cache用于缓存sstable数据的块缓存还有用于缓存数据行的行缓存、日志缓存、位置缓存等等。基线数据缓存到内存中提升查询性能。对于不同租户每个租户都有自己独立的缓存可以配置对应租户内存使用的上下限做到租户隔离或者抢占超卖适用于不同需求的场景。
在存储成本上OceanBase采用了多种数据压缩算法例如lz4、zstd等。OceanBase会对数据集做两层瘦身第一层是encoding会使用字典、RLE等算法对数据做瘦身第二层是通用压缩使用lz4等压缩算法对encoding之后的数据再做一次瘦身。在zstd算法下相较传统MySQL Innodb的压缩可以做到相同数据集只是用MySQL的1/3的存储帮助用户极大的节省存储成本。更重要的是传统数据库定长页的设计压缩不可避免的会造成存储的空洞压缩效率会受影响而OB这样的LSM-tree架构的存储系统压缩对数据写入性能是0影响的。
四、OceanBase SQL引擎
OceanBase的租户支持Oracle和MySQL两种SQL兼容性首先相较于传统MySQLOB除了硬解析以外与Oracle一样支持软解析同时解析器还支持SQL参数化以及绑定变量如图1-4所示解析器将解析后的SQL模板以及执行计划放在plan cache中已经存在plan cache中的SQL就可以省去每一次硬解析带来的开销提升了SQL运行效率。 图1-4
基于LSM-Tree的存储架构OB设计了一套独特的代价模型引入统计信息拥有了基于代码模型的优化器这意味着OB可以根据统计信息计算每条SQL的最优访问路径给出最优的执行计划。同时OB也可以根据用户的需求在线动态绑定固化执行计划针对应急、效率的场景可以很好的提供便捷性。在执行器方面OB不仅仅支持Nest Loop的Join方式同时也支持了Hash Join、Merge Join针对大表join提高效率。还支持并发执行、分布式SQL等等。
五、OceanBase的AACID特性
OceanBase是一个分布式的关系型数据库符合ACID原则。在传统ACID的基础上OceanBase特别强调多了一个A可用性。基于Paxos协议的多副本日志复制可以在单点故障的情况下提供无数据丢失的业务连续性。在一致性上OB采用MVCC的多版本一致读当数据块被更新时OB会新开启一个数据块并带上数据版本于事务id只有事务内的SQL可以访问到未提交的数据不会被其他会话访问当。隔离性上OB支持Oracle的提交读和串行化两种事务隔离级别对Oracle做到了很好的兼容。在持久性上和大多数传统数据库一样的日志先行事务提交的时候先保证redo日志的写成功后才写数据出现异常情况时不会存在数据二义性。
在数据安全上OB也做了多种保护措施最大程度的保障数据安全。比如回收站机制在租户级别设置回收站的开关当回收站打开的状态下drop table、truncate的情况下数据不会被立马删除而是进入了回收站在回收站保留有效期内都可以通过flashback的命令将表恢复原状极大程度上避免了误操作带来的一些风险。
针对delete、update这种数据修改类的操作OB支持基于位点的Flashback Query来将数据恢复到某一个时间点这样针对业务或者运维过程中的错误SQL执行具备数据找回能力。同时在Oracle租户下还支持as of timestam/scn这种查询。
2019年10月OceanBase斩获TPC-C性能测试榜首。创造了tpmc6088万的世界记录是前任榜首Oracle的2倍。同年十一月份在支付宝的双十一大促中又创造了6100万笔/秒的支付峰值再次打破世界记录。经过多次极端业务的考验OceanBase证明在性能、可靠性、可用性上分布式数据库是可以和集中式数据库媲美的。传统的商业数据库如oracle、SQL server、DB2都依赖高端的硬件设备小机存储还有光纤网络但是OceanBase只需要普通的PC服务器SSD盘、万兆网络就行。而且它还具有高存储压缩率。OceanBase上云后目前除了数据库本身是按规格收费、迁移服务按小时收费外其它管理平台OCP、ODC、OTA是免费的。通过OCP可以方便地管理集群、租户、数据库。用户监控租户和节点的性能。通过ODC可以方便地管理和维护数据库对象表/视图/函数/存储过程等。使用其SQLConsole可以便捷地操作数据库。通过OTA可以及时发现当前业务库存在问题的SQL提供优化建议绑定执行计划。使用这些平台可以使运维操作白屏化降低了运维难度。
未来OceanBase将会根据用户需求提供更多实用、高效的特性同时周边生态产品的功能也会越来越完善敬请期待。
免费看直播并有好礼相送https://yq.aliyun.com/live/2301100%自研数据库OceanBase正式对外开放欢迎前来体验: https://www.aliyun.com/database/oceanbasept
原文链接 本文为云栖社区原创内容未经允许不得转载。