www.adminn.cn
站长正能量分享网!

分布式数据库系统的原理和结构

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

分布式数据库系统主要有两种方式解决单机数据库的低扩展能力:数据分片和读写分离。数据分片(Sharding)的原理就是将数据做水平切分,类似于hash分区 的原理,通过应用架构解决访问路由和数据合并的问题。Sharding架构的优势在于,集群扩展能力很强,几乎可以做到线性扩展,而且整个集群的可用性也 很高,部分节点故障,不会影响其他节点提供服务。Sharding原理简单,容易实现,是一种非常好的解决数据库扩展性的方案。但是Sharding对应 用场景的要求很高,因为一旦使用数据分片架构,如果需要跨不同的节点做join,或者统计类型的操作,将会变得非常困难,应该尽量避免。所以说 Sharding架构会损失部分关系型数据库的特性,比如join,从而使数据库退化为Key-Value store类型的存储。所以,并不是所有的应用都适合做Sharding,它可能会造成应用架构复杂或者限制系统的功能,这也是它的缺陷所在。

读写分离架构利用了数据库的复制技术,将读和 写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。最通常的做法是利用Replication技术,Master DB承担写操作,将数据变化复制到多台Slave DB上,并承担读的操作。这种架构适合read-intensive类型的应用,通过增加Slave DB的数量,读的性能可以线性增长。为了避免Master DB的单点故障,集群一般都会采用两台Master DB做双机热备,所以整个集群的读和写的可用性都非常高。读写分离架构的缺陷在于,不管是Master还是Slave,每个节点都必须保存完整的数据,如 果在数据量很大的情况下,集群的扩展能力还是受限于单个节点的存储能力,而且对于Write-intensive类型的应用,读写分离架构并不适合。

读写分离架构应用非常广泛,很多网站都采用cache+DB的读写分离架构,通 过cache层来承载大量的读访问。Memcached是一种广泛使用的Key-Value cache,它不具备持久化存储的功能,所以它通常和数据库一起组成读写分离的架构,由数据库承载数据持久化存储的功能,而Memcached则用来承载 大量的并发访问。通常的做法是:应用的读请求会首先访问Memcached,如果命中则返回,如果没有命中,则会去数据库中读取,并将数据加载到 Memcached中。关于新增,修改和删除操作,一般采用lazy load的策略,即新增时只写入数据库,并不会马上更新Memcached,而是等到再次读取时才会加载到Memcached中,修改和删除操作也是更新 数据库,然后将Memcached中的数据标记为失效,等待下次读取时再加载。Memcached支持数据分区,利用hash算法将数据分布到不同的服务 器,组成一个分布式的cache集群。

目前的分布式数据库产品,绝大部分是面向DSS类型的应用,因为相比较OLTP应用,DSS应用更容易做到分布式扩展,比如PetaBase,就很好的解决了可用性和扩展性的问题,并且提供了很强大的并行计算能力。从技术资料上来看,它有几个特点:

1.采用Share nothing架构,将物理服务器划分为以CPU core为单位的Virtual node,采用Sharding技术,将数据自动分布到不同的Virtual node,最大限度的利用机器的计算资源;

2.采用内存数据访问技 术,类似于内存数据库(In-memory database),区别于传统的数据库(Disk-based database),消除了传统数据库内存管理的开销,而且响应速度非常快;

3.每个Virtual node上的操作是自治的,利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销(比如Latch和Lock);

4.数据同步写 多个副本,不存在单点故障,而且消除了传统数据库需要记录redo log的开销。

PetaBase的架构优势

PetaBase基于Hadoop框架打造了高可用、高吞吐的实时/离线接入系统,将数据统一落入HDFS,形成原始层;基于Hive的小时级任务,分别负责计算生成明细层与汇总层;应用层使用PetaBase 内部的MPP计算引擎完成各种报表分析、KPI、决策支持的快速响应。

面对实时数仓的诉求,PetaBase扩展出的流式计算框架能很好地应对各种流式处理的需求。从上文可以看到,结构化数据的流式处理与半结构化数据的流处理基本相似,只是把采集端的 OGG 替换为 Flume,分发层和计算层都是完全一样的。从总体流程来看,基本模型是不变的。采用这种统一的、分层次的架构,有如下几个优势:

1)基于分层的设计,可以灵活地扩展或替换流处理框架中的上下游;

2)统一的后端处理,最大限度的保证系统的稳定性并减少混合架构的复杂度;

3)批流统一,同样的 SQL,既可以跑离线也可以跑实时;

4)低延迟,高吞吐,端到端的 Exactly-once;

5)同时支持结构化与非结构化数据的实时处理,支持多种异构数据源的采集;

6)离线实时数仓的一体化。

作为一款国产分布式大数据平台,PetaBase已经在诸多领域证明了自身的价值。尤其是在面向数据仓库的应用中,更是展示了其出色的性能和坚如磐石的可靠性。不管你是联机交易,网站访问,还是物联网、车联网(传感器)的应用场景,如果你需要一个能支撑T+0到T+n的数据平台,PetaBase是你最好的选择之一。

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《分布式数据库系统的原理和结构》
文章链接:https://www.adminn.cn/news/2029.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏