你的位置:首页 > 软件开发 > 数据库 > MemSQL分布式架构介绍(一)

MemSQL分布式架构介绍(一)

发布时间:2015-12-15 23:00:07
最近在了解MemSQL架构,看了些官方文档,在这里做个记录,原文在这里:http://docs.memsql.com/latest/concepts/distributed_architecture/ 分布式架构MemSQL的分布式架构被设计为直接的、简单的并且快速的。这里概 ...

最近在了解MemSQL架构,看了些官方文档,在这里做个记录,原文在这里:http://docs.memsql.com/latest/concepts/distributed_architecture/

 

分布式架构

MemSQL的分布式架构被设计为直接的、简单的并且快速的。这里概述了MemSQL集群,包括各式组件的交互。同时介绍了当你执行一个查询或者管理操作的时候,MemSQL环境发生了什么。

 

几个概念:

1、Aggregators(汇聚器) MemSQL集群的一种节点,为访问MemSQL集群的网关,一个集群中可以有多个汇聚器,汇聚器主要负责向叶子节点发送DML请求、汇聚操作结果并返回给客户端

2、Master Aggregator(主汇聚器) 是一种特殊的汇聚器,除了一般汇聚器的功能,还负责监控集群、失效切换及DDL语句的操作。每一个MemSQL的集群只能有一个主汇聚器。当主汇聚器失效时,MemSQL的集群和DDL语句操作将被挂起,而一般的DML语句仍可以通过其他的汇聚器进行操作。如果主汇聚器的程序文件没有丢失,那么只要重启一下主汇聚器即可,主汇聚器将会自动重连。否则的话,可以在一个子汇聚器上执行命令来将子汇聚器提升为主汇聚器。

3、Leaf Node(叶子节点) 在MemSQL集群中,叶子节点的作用是存储和计算。负责在集群中存储数据的切片。为了优化性能,MemSQL会围绕叶子节点自动分布数据到分区。每一个叶子节点由若干个分区组成。每一个分区其实就是一个database。

4、Partitions(分区)  一个叶子节点由多个分区组成。每一个分区其实就是一个database。比如说,如有你创建了一个database名为test,那么当你在一个叶子节点执行SHOW DATABASES 时,会看到数据库名为类似test_5,表明这是分区5。通过SHOW DATABASES EXTENDED命令输出的State列,可以查看分区是Master或者slave分区或者正处于其他状态的分区。Master分区是数据库真正执行操作的分区,而slave分区则是通过网络和sql操作将Master上的数据复制到slave上。另外,slave分区是只读的。

 

设计原则

MemSQL分布式系统的设计遵循如下的原则:

    • 性能优先   MemSQL是世界上最快的single-box数据库,分布式部署在多台服务器上时更是能让性能有线性的提升。MemSQL集群能够处理每秒数十亿行数据,而硬件只需要普通的商用硬件即可。
    • 将集群分为汇聚层和叶子层同时尽可能多的将工作交由叶子层处理   这允许你在线增加额外的叶子节点到集群来提升集群容量和查询性能
    • 无单点失败风险  通过运行冗余的集群,可以确保每一个数据分区都有一个热备份。当叶子节点失效时,MemSQL将自动切换到salve分区。汇聚层同样也有类似的技术来规避单节点风险。
    • 强大但又简单的集群管理   分布式系统提供了REBALANCE PARTITIONS功能来恢复分区数据

       

      海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

      原标题:MemSQL分布式架构介绍(一)

      关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。