昆仑分布式数据库技术特点

柯里磷火
• 阅读 775

上章节介绍了昆仑分布式数据库的架构,这章节接着介绍昆仑分布式数据库的技术特点!

一、高可用性(HA)

兼容多种强一致性,高可用性方案(strong consistency,high availability)

1.1 存储shard:默认使用MySQLGroupReplication保障数据库服务高可用

1.2 2*N+1个节点的shard,每个已提交的事务都复制到了至少N个备机

昆仑分布式数据库技术特点

1.3 兼容基于mysqlrowbasedreplication的半同步同步的高可用技术(*)

1.4 兼容基于共享存储实现高可用的mysql存储集群(*)

二、完备的容灾能力

完备的容灾能力(crash safety&fault tolerance)

2.1 存储集群主备强一致

2.2 GTP:全局事务容灾能力

  • 分布式事务两阶段提交
  • 节点/网络故障时可以保障分布式事务ACID

2.3 GMR:DDL与集群全局元数据一致性

  • DDL事务涉及计算节点,元数据集群,存储集群

2.4 GMR:计算节点之间的元数据语句复制及其一致性保障

  • 复制过程随时可能中断

2.5 GTP:计算节点自动切换存储集群主节点(auto failover)

  • 元数据集群,存储集群

2.6 GTP:cluster_mgr:自动维护各shard的存储集群复制状态

三、水平扩展能力

高可扩展性(high scalability):计算能力,存储空间,资源利用率

3.1 IAP:灵活的sharding方式

  • 用户对sharding方式拥有全部控制

* sharding方式:hash/range/list,未来mirror(*)




* 选择sharding列:任意若干个列

 


* 用户最理解自己的数据及其访问模式
  • 定制分区选项达到最优性能

专业模式VS 傻瓜模式

  • 根据数据表的规模定制sharding方案

* 不需要预估全局的固定的分区数目,也不把所有表等分为固定数量的分区




* 可以为每个表按需增加分区,各表分区数量各异




* 最少化两阶段提交的事务数量
  • 计算节点自动为每个分片选择合适的存储集群

3.2 ESO:自动按需扩展(*)

  • 自动透明地分布数据表到新加入的存储集群
  • 业务和最终用户无感知

3.3 GPQP:全局并行查询处理:后摩尔时代,利用更多的计算资源

  • 计算节点层的并行
  • 计算节点与存储节点之间的并行
  • 存储节点层的并行(*)

3.4 多点读写

  • 按需增加/减少计算节点
  • 按需增加/减少存储shard(*)
  • 存储集群支持多点写入(*)
  • 备机读(*)

四、查询处理

4.1 充分理解用户数据

  • 本地存储完备的元数据和数据字典
  • 本地存储完备的全局数据统计信息
  • 有条件产生最优的分布式查询计划和查询执行性能

4.2 完整的查询处理过程

  • parser->resolver->optimizer->executer
  • 可以处理任意SQL查询
支持多表连接,子查询,聚集查询,CTE,window function,存储过程,视图,物化视图
  • 完整的查询处理功能:真prepared statement

4.3 完美支持OLAP查询

  • 查询处理能力完美支持大数据分析任务
  • 直接使用本地数据,无需数据搬迁,无需spark/hadoop生态

4.4 可以调用MySQL系统函数和用户定义的存储过程/函数

点击阅读原文

 推荐阅读

KunlunBase架构介绍
KunlunBase技术优势介绍
PostgreSQL vs MySQL TPC-H 测试
Kunlun-Storage vs PostgreSQL OLTP 测试
*KunlunBase项目已开源

【GitHub:】
https://github.com/zettadb

【Gitee:】
https://gitee.com/zettadb

END

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
ttserver+nginx构建高并发高可用性应用
ttservernginx构建高并发高可用性应用ttserver一款兼容memcached协议,也可以通过HTTP协议进行数据交换,支持故障转移,高可用性,高并发的分布式keyvalue持久存储系统。keyvalue分布式存储系统的特点是查询快,存储数量大,高并发,非常适合通过主键进行查询的操作。下面的案例是将图片以二进制的方式存入到ttserve
架构师日记-软件高可用实践那些事儿
关于软件的高可用,是一个老生常谈的话题。“高可用性”(HighAvailability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
Easter79 Easter79
3年前
TiDB分布式数据库培训实战教程(分布式集群架构、分布式大数据平台)
一、TiDB分布式数据库培训实战教程(分布式集群架构、分布式大数据平台)视频教程课程目标:为满足想学习和掌握国产TiDB数据库技术的学员,风哥特别设计的一套比较系统的TiDB课程,本教程内容涉及TiDB数据库基础知识、TiDBTIDB分布式数据库生产环境布署之Ansible技术、TIDB分布式数据库生产环境布
Stella981 Stella981
3年前
Couchbase 中的分布式储存
概述Couchbase是一个具有高性能、可扩展性和可用性强的数据库引擎。它可以让开发人员通过 NoSQL 的键值存储(二进制或者JSON)或者使用N1QL的形式对数据进行操作(N1QL是非常类似于SQL的一种语法操作JSON数据的方式)。以现在整体架构来看,Couchbase是往分布式数据库的方向发展下去。分布式数据库一
Stella981 Stella981
3年前
RabbitMQ 简介
概述RabbitMQ是基于AMQP实现的一个开源消息组件,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的Erlang语言写成。特点高可靠:RabbitMQ提供了多种多样的特性让你在可靠性和性能之间做出权衡,包括持久化、发送应答、发布确认以及高可用性。高可用队列:支持跨机器集群,支持队列安全镜像
Stella981 Stella981
3年前
MapGis如何实现WebGIS分布式大数据存储的
作为解决方案厂商,MapGis是如何实现分布式大数据存储的呢?MapGIS在传统关系型空间数据库引擎MapGISSDE的基础之上,针对地理大数据的特点,构建了MapGISDataStore分布式数据库引擎,其集成整合了多种开源分布式数据库和文件系统,分别用来存储和管理关系型数据,切片型数据,实时型数据和非结构化数据,形成针对地理大数据应用场景相关的解
Easter79 Easter79
3年前
TiDB 常⻅架构应⽤场景
作者介绍:黄潇,TUG北京区Leader,TUG2020年度MOA。如今分布式数据库百花齐放,在做数据库架构选型时应该从哪些方面进行考虑?在TUG陆金所企业行活动上,TUG北京区Leader黄潇分享了TiDB的常见架构应用场景,以下内容整理自当天活动分享实录。本文主要分为以下三部分:1.当今分布式数据库
一体机场景ceph高可用介绍
一体机场景使用ceph开源架构作为存储系统的主体架构,原生方案支持存储数据高可用性,包括副本数可以灵活控制/支持故障域分隔,数据强一致性/多种故障场景自动进行修复自愈/没有单点故障,自动管理。
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn
云主机使用的硬盘类型及对应的存储类型详解
随着云计算的普及,云主机已成为企业和个人用户的重要选择。云主机为用户提供了灵活、可伸缩的计算资源,并且具有高可用性、高可扩展性以及易于管理的特点。在云主机的使用过程中,硬盘类型和存储类型的选择是非常重要的环节。本文将详细介绍云主机所使用的硬盘类型以及对应的存储类型,帮助读者更好地了解和选择适合自己需求的云存储方案。
如何利用容器与中间件实现微服务架构下的高可用性和弹性扩展
在当今的互联网时代,微服务架构已经成为许多企业选择的架构模式,它能够提高系统的灵活性、可维护性和可扩展性。然而,微服务架构下的高可用性和弹性扩展是一个复杂的挑战。本文将介绍如何利用容器与中间件来实现微服务架构下的高可用性和弹性扩展的解决方案。