Ebpay

亿信ABI

一站式数据分析平台

ABI(ALL in one BI)是Ebpay历经18年匠心打造的国产化BI工具,技术自主可控。它打通从数据接入、到数据建模与处理、再到数据分析与挖掘整个数据应用全链路,可满足企业经营中各类复杂的分析需求,帮助企业实现高效数字化转型。

在线免费试用 DEMO体验 视频介绍

亿信ABI

一站式数据分析平台

Ebpay深耕商业智能十多年,
打造一体化的填报、处理、可视化平台。

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

时间:2020-04-16来源:知乎浏览数:1889

分布式数据库系统主要有两种方式解决单机数据库的低扩展能力:数据分片和读写分离。数据分片(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的开销。
(部分内容来源网络,如有侵权请联系删除)
立即申请数据分析/数据治理产品免费试用 我要试用
customer

在线咨询

在线咨询

点击进入在线咨询