一致性hash算法php开源本文对分布式存储技术架构体系进行综述分析,选型需考虑php 一致性hash算法
2022-08-19
本文对分布式存储技术架构体系进行了总结和分析,区分了不同技术体系的应用场景,分析了不同体系分布式存储技术的典型产品特点,明确了分布式存储技术的数据模型、数据访问、数据性能、数据量等。不同的科技产品。不同层次的优缺点。希望通过对这些典型特征的理解和对具体业务场景的数据需求挖掘,将相对优秀的数据存储技术匹配到最适合的业务场景。
1. 为什么要引入分布式存储技术?
从 1970 年代到 2000 年左右,数据存储基本上伴随着 IBM 提出的关系模型理论,以关系数据库(,DB2、)为数据管理平台,以集中式存储产品为最终数据载体而形成一个坚实的数据存储架构系统。2000年以后一致性hash算法php开源,随着数据量的增加,单机的数据库瓶颈已经不能满足大数据量的需求。从数据管理层面,诞生了分库分表的解决方案。自2006年发表三篇论文(GFS、Big、Map-)以来,在数据管理层面和数据载体层面出现了各种分布式产品,如GFS、GPFS、HFS、DFS等分布式文件系统。, , , , 等系列分布式数据管理平台。
总而言之,数据量的爆发式增长催生了数据应用领域的各种新需求,而数据应用领域的各种新需求又带动了数据管理层面和数据载体层面的分布式变化。
2. 主流分布式文件系统技术分析
主流的分布式文件系统技术主要有GPFS、GFS、HDFS、DFS等,下面以相同或相似技术系统的典型产品进行说明。
2.1 GFS
GFS是基于文件系统的分布式存储系统,属于以中心为中心的分布式架构;通过查询中心节点的元数据得到数据地址空间,然后在数据节点上查询数据本身,完成数据存储机制。读和写; 它是一种基于文件数据存储场景设计的架构。
接下来我们来看看GFS的具体特点,在选择模型的时候应该考虑什么?
(1) GFS 是一种分布式存储系统,适用于大文件,尤其是 GB 级的大文件存储场景。
(2) GFS 非常适合对数据访问不敏感的搜索引擎服务。
(3) GFS是分布式架构,有中心节点,节点是单个集中管理节点,是高可用的瓶颈,也是可能导致性能问题的瓶颈。
(4) GFS 可以通过缓存一部分到节点来减少与节点的交互。
(5)GFS节点上的日志和文件需要进行复制,保持多份,保证元数据的高可用和中央管理功能。
2.2 HDFS
HDFS的架构原理与GFS基本相似,但它是在GFS的基础上进行一些改进后形成的一套技术体系。同样,它的基于文件系统的分布式存储系统是一个有中心的分布式架构;通过中心节点元数据的索引查询得到数据地址空间,然后利用数据节点上查询数据本身的机制完成数据。读和写; 它是一种基于文件数据存储场景设计的架构。
接下来我们来看看HDFS的具体特点,在选型时应该考虑什么?
(1) HDFS默认最小存储单元为128M,大于GFS的64M。
(2) HDFS 不支持并发文件写入,它只允许对单个文件进行一次写入或追加请求。
(3)HDFS从2.0版本开始支持两个管理节点),可以做到分钟级的主备切换。
(4)HDFS更适合单写多读的大文件流式读取。
(5) HDFS 不支持对写入文件的更新操作,只支持对其进行追加操作。
2.3
虽然是基于文件系统的分布式存储技术,但与 GFS 架构有着本质的区别。它是一种去中心化、非中心化的分布式架构;它通过文件整个目录的DHT算法计算出对应的地址,从而实现数据的读写,这与GFS和HDFS通过元数据检索实现数据寻址的方式有很大不同。
接下来我们来看看具体有哪些特点,在选型时又应该如何考虑呢?**
(1) 采用非中心对称架构,没有专门的元数据服务器,所以不存在元数据服务器瓶颈。元数据存在于文件的属性和扩展属性中。
(2) 可以提供多种存储卷类型,如 , , +0.
(3) 使用数据最终一致性算法,只要一份完成。
(4) 默认情况下,文件会被分片,然后分布在所有对应的卷中。因此,从最初的设计来看,它更适合大文件并发的场景。
(5)使用的DHT算法稳定性不好,一旦增加或减少存储节点,势必会影响到下的所有数据进行再平衡,开销比较大。
(6)文件目录使用扩展属性记录子卷的hash分布范围,每个范围不重叠。遍历目录时,需要获取每个文件的属性和扩展属性进行聚合。对于时间长了,遍历效率很差。
3. 主流分布式对象存储技术解析
目前广泛使用的分布式对象存储技术基本上都是基于或衍生自 Ceph 系统。
3.1 个 Ceph
Ceph首先是一种对象存储技术,也就是说它存储数据的机制与我们之前接触过的文件系统机制完全不同。它将数据抽象为对象和对象标识符以进行管理。在架构上,Ceph 与去中心化架构比较类似;它通过对象的hash算法得到对应的&Node地址,从而实现数据的读写。
接下来,我们来看看Ceph的具体特点,在选型时应该考虑什么?
(1) Ceph 是一个统一的存储平台,统一了三个接口。上层应用支持 , , 和 File。
(2) Ceph使用算法完成数据分布计算,通过Tree的逻辑对象数据结构自然实现故障隔离副本位置计算。通过内部节点的组织结构,集群变化引起的数据迁移量结构最小。
(3) Ceph 维护了强数据一致性算法,数据的所有副本都被写入并返回完成写入事务。写入效率会更低,所以更适合少写多读的场景.
(4) Ceph 对象存储的最小单位为 4M,相比 GFS&HDFS,适合一些小型的非结构化数据存储。
3.2
它也是一种对象存储技术。类似于 Ceph 的架构,也是去中心化的架构;它通过对象的hash算法得到对应的&Node地址,从而实现数据的读写。但是,需要通过节点来完成与数据节点的交互。节点虽然可以负载均衡,但毕竟经过了中间层。在大并发和小文件操作的场景下,Ceph 的性能会更好。
接下来我们来看看具体有哪些特点,在选型时又应该如何考虑呢?
(1) 只保证数据的最终一致性,写入2份后一致性hash算法php开源,导致读取操作需要对比校验副本,读取效率比较低。
(2) 采用一致性哈希算法完成数据分布计算,通过先计算对象到逻辑对象(Zone)的映射,再进行分布实现数据副本的故障隔离分布对象间的对象通过哈希一致性算法完成计算,采用Ring结构组织节点组织,数据分布不像Ceph那样均匀。
(3)需要使用节点访问数据,与直接通过客户端访问数据节点不同,相对数据访问效率比Ceph差(可以参考&的性能测试报告)。
4. 主流分布式数据库技术解析
目前,在分布式数据库技术的应用场景中,各行各业使用的产品非常多,尤其是&领域。请注意,我们将用几个典型的类别来说明,例如文档、键值、内存和列。
4.1
它是以二进制 JSON 或 BSON 格式存储文档数据的数据模型seo优化,专为文档存储而设计。查询并返回结果时,将数据转换为易于阅读的数据格式。它所谓的分布式主要是指它的分片集群机制。水平扩展是通过基于范围的分区机制实现的,称为分片,它可以自动管理每个分布式节点存储的数据。
接下来,我们来看看具体有哪些特点,以及在选型时如何考虑。
(1) 是面向集合的存储,有自由模式,便于存储对象类型的数据,文件存储格式为JSON。从这个角度,我们需要从数据模型的角度来分析它与数据模型的兼容性数据业务场景。
(2)使用高效的二进制数据存储,包括大对象,所以更适合媒体、视频等大对象的访问场景。
(3) 支持动态查询,支持全索引,支持RUBY、JAVA、C、PHP、C#等语言,匹配前端应用灵活性强,适用场景多。
(4)具有很强的横向扩展能力,可以通过分布式集群架构将数据分布到多台机器上,并有完善的机制支持复制和故障恢复,支持海量数据处理场景。
4.2
它是一个用ANSI C语言编写的开源软件网站制作,符合BSD协议,支持网络,可以基于内存、分布式、可选的持久键值对(Key-)存储数据库,并提供多种语言的API。常被称为数据结构服务器,因为()可以是字符串()、散列(Hash)、列表(list)、集合(sets)、有序集合(sets)等类型。
接下来我们来看看具体有哪些特点,在选型时又应该如何考虑呢?
(1)所有数据都存储在内存中,源码用C语言编写,更贴近底层操作系统,采用单线程架构,避免多线程可能带来的竞争开销。以上确定它是一个非常快的数据库。
(2)不仅支持简单的key类型的数据,还提供list、set、zset、hash等数据结构的存储。结合这种比较灵活的数据模型,通常用作缓存。
(3)提供了AOF和RDB两种持久化方案,所以不仅适用于缓存场景,也适用于基于此需求的衍生业务场景。
(4)从3.0版本开始支持集群模式,很好地实现了处理能力的横向扩展。结合其快速的速度,这为互联网e-商业. 解决方案。
4.3
是的开源实现,类似于使用GFS作为其文件存储系统,使用HDFS作为其文件存储系统;运行中处理海量数据。因此,从源头上来说,它是一种针对大数据处理的数据访问解决方案,可以称为列式数据库。
接下来,我们来看看具体有哪些特点,以及在选型时如何考虑。
(1) 不像很多关系型数据库是面向行存储的,它是面向列的存储和权限控制。里面的每一列都是分开存储的,支持基于列的独立检索。所以自然适合应用程序 (OLAP)。
(2)中的数据都是以字符串的形式存储的,空列不占用存储空间。所以列存储解决了数据稀疏的问题,通常可以设计成稀疏矩阵。一定程度上节省了存储开销。
(3)的单表容量很大,可以有百亿行数百万列,横向和纵向两个维度都可以插入数据,非常灵活。使用LSM树作为内部数据存储结构,这种结构会周期性的将小文件合并成大文件,以减少磁盘访问,这些特性特别适合单表数据量巨大的数据访问场景。
5. 总结与展望
通过对分布式存储技术架构体系的概述和分析,我们首先区分应该在数据管理场景还是数据载体场景中使用不同的技术体系。然后,通过对不同系统分布式存储技术典型产品特性的分析,明确了不同技术产品在数据模型、数据访问、数据性能、数据层次等不同层次上的优缺点,并最后希望了解这些典型特征。而针对特定业务场景的数据需求挖掘,可以将相对优秀的数据存储技术匹配到最适合的业务场景。返回搜狐,查看更多