暂无图片
暂无图片
6
暂无图片
暂无图片
暂无图片

Yugabyte DB 2.0 发布,云原生的分布式 SQL 数据库

原创 blog.yugabyte.com 2019-09-19
2373

在分布式数据库领域中,高性能 + 强一致性事务是代表数据库水平高低的重要象征,这个领域最高水平的数据库是 Google Cloud Spanner 和 Azure Cosmos DB 以及 Apple 最近开源的 FoundationDB,YugaByte DB 是这个领域的另外一个开源数据库,虽然知名度不高,也没有经过生产实践检验,但是相比 Google 大公司把这种技术当成看家本事不示于人的做派相比,YugaByte DB 设计思想可以通过源码共享与世人。


值得一提的是,2019 年 7 月 16 日,YugaByte DB 创始人兼 CTO  Karthik Ranganathan 在其官方博客发文宣布  YugaByte DB  已经 100% 开源,遵守 Apache 2.0 开源许可。


YugaByte DB (GitHub)是一个高性能、云原生的分布式 SQL 数据库,目前2.0 版本已经发布。


YugaByte DB 与 PostgreSQL 兼容,下面是它与 PostgreSQL 兼容的几个特性:


1. 所有的 PostgreSQL 数据类型:包括数组和用户定义的类型等

2. 内置函数和表达式

3. 具有可序列化和快照隔离级别的分布式事务

4. 索引:包括部分索引

5. 外键

6. 用于加速应用程序开发的视图和子查询

7. 基于角色的权限访问控制(RBAC)

8. 高级功能,如存储过程和触发器,支持开箱即用


使用快速启动和客户端驱动程序为最流行的语言构建 YSQL 支持的应用程序,比以往任何时候都容易,其中包括:


1. Java

2. Node.js

3. Go

4. Python

5. Ruby

6. C#

7. PHP

8. C++

9. C


高性能遇到云原生


YSQL 不仅兼容 PostgreSQL 和 Jepsen Test,与 Amazon Aurora 相比,YSQL 的可伸缩性是其最大吞吐量的 10 倍。YSQL 实现了 45k 个操作的写入吞吐量,延迟仅为 4.5ms。与类似硬件配置文件上的其他分布式 SQL 产品相比,这种吞吐量几乎是 AWS Aurora 和 Cockroach DB 的 2 倍。与 Aurora 相比,Yugabyte CQL(YCQL) API 在 3 倍的延迟下实现了 3 倍的高吞吐量。


yugabyte-db-vs-aws-aurora-cockroachdb-benchmarks-42.png



Jepsen Tests


YSQL Jepsen Test 的主要重点是测试分布式事务的新的可序列化隔离级别,即 ACID 中的“i”。作为一个完全关系型的 SQL API,YSQL 支持可序列化和快照隔离,而半关系型 YCQL API 只支持快照隔离级别。


传统 RDBMS 的在线迁移&基于 Blitzz 的 NoSQL


企业能够使用分布式数据复制软件 Blitzz,实现从各种数据库如 Oracle、SQLServer、MySQL、MongoDB、DynamoDB、Apache Cassandra、PostgreSQL 到 Yugabyte DB 的零停机时间迁移(zero-downtime)。Blitzz 插件进入到源数据库的 CDC 流,以便不仅自动迁移表数据,而且自动迁移相关的元数据(表、索引和视图的定义)。


除此之外,还有一些测试中的特性:


1. Change Data Capture:(CDC)允许外部客户端对数据库中数据进行的修改。

2. Multi-Master & Master-Slave Clusters:支持多主配置和主从配置

3. Deep Ecosystem Integrations:2.0 兼容并集成了许多开发人员已经熟悉的流行技术

4. New Cluster-Aware JDBC Driver:目前正在开发一个标准 JDBC 驱动程序的集群版本,称为 Yugabyte JDBC

5. Spring Application Framework for Java:该模块目前支持 JDBC 和 JPA 模式,目前正在增强以支持反应性关系数据库连接(R2DBC)方法


更多详情见发布说明:https://blog.yugabyte.com/announcing-yugabyte-db-2-0-ga-jepsen-tested-high-performance-distributed-sql/


补充知识:


Yugabyte DB 与 MongoDB、Cockroach Labs,Confluent(Apache Kafka 背后的主要商业公司)和 Elastic(2018-2019 年)所做的开源更改,如下图所示:


24a81d9bc25b531212631aa2cb3f408c.png


YugaByte DB 整体架构:


18085855_8NrT.png


YugaByte DB 的查询层结构:


18085504_2NSG.png


四个节点的 YugaByte DB 的结构:


18085505_RaLB.png


YugaByte DB 的存储层是基于 RocksDB (是一个来自 Facebook 的可嵌入式的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,但主要目的还是嵌入式。RocksDB 基于 LevelDB 构建,关于 RocksDB 的性能说明)的,结构如下:


18085505_9pLk.png

最后修改时间:2019-09-19 14:47:25
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论