常见结构化存储系统架构

article/2025/9/22 7:08:49

什么是结构化存储系统

结构化数据一般指存储在数据库中,具有一定逻辑结构和物理结构的数据,最为常见的是存储在关系数据库中的数据;非结构化数据:一般指结构化数据以外的数据,这些数据不存储在数据库中,而是以各种类型的文本形式存放,其中Web上的一些数据(内嵌于HTML或XML标记中)又具有一定的逻辑结构和物理结构,被称为半结构数据。

目前比较成熟的结构化存储系统有Cassandra、Bigtable、Hadoopdb、Megastore、Dynamo等。

  • 几个较成熟的结构化存储系统

  1. Cassandra

Cassandra是一个分布式的存储系统,可用来管理分布在大量廉价服务器上的巨量结构化数据,并同时提供没有单点故障的高可用服务。Cassandra的设计目的是运行在由几百个节点(可能分布在多个不同的数据中心)组成的基础设施(infrastructure)上。当节点达到这个规模时,大大小小的组件出现故障就可能经常发生了。Cassandra在管理持久状态时面临这些故障,这种情况也驱动软件系统的可靠性(reliability)与可伸缩性(scalability)会依赖于Cassandra的服务。虽然大部分情况,Cassandra看上去像一个数据库系统, 也与数据库系统共享大量的设计与实现手段,但是Cassandra并不支持完整的关系数据模型;相反,它提供了一个简单数据模型的客户端,支持对数据布局与数据格式的动态控制。设计Cassandra的初衷是,可以运行在廉价硬件上,并能在不牺牲读效率的情况下实现高的写吞吐量。

Cassandra系统架构:

一个需要在生产环境运转的存储系统的架构是很复杂的。除了真实的数据持久化组件外,这个系统还需要包含以下特性;可伸缩性与强大负载均衡解决方案、会员与故障检测、故障恢复、副本同步、超负荷处理、状态转移、并发与任务调度、请求编组、请求路由、系统监控与报警以及配置管理。详细描述这里的每一个解决方案超出了本论文的范围,我们将集中介绍Cassandra使用的核心的分布式系统技术:分区、复制、会员、故障处理以及伸缩性。处理读写请求需要所有这些模块的协同处理。通常,一个键的请求可能被路由到Cassandra集群的任何一个节点去处理。这个节点会确定这个特定的键的副本。对于写操作来讲,系统会将请求路由到副本上,并且等待仲裁数量的副本以确认写操作完成。对于读操作来讲,基于客户端要求的一致性保证,系统要么将请求路由到最近的副本,要么将请求路由到所有的副本并等待达到仲裁数量的响应。

2Bigtable

   Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google 的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量上(从URL到网页到卫星图像)还是在响应速度上(从后端的批量处理到实时数据服务)。尽管应用需求差异很大,但是,针对Google的这些产品,Bigtable还是成功的提供了一个灵活的、高性能的解决方案。

Bigtable数据模型:

 

3Hadoopdb

耶鲁大学的Hadoopdb研究项目挺有意思。这是个并行DBMS(PostgreSQL) 技术和MapReduce的结合的产物。MapReduce是Google提出的一个编程模型,用于进行大规模的数据处理。

Hadoopdb系统架构图:

上图中的 SMS 是 "SQL to MapReduce to SQL" 的缩写。这是 HadoopDB 的一个设计难点。经过了两层转换,对于 SQL 执行的效率多少会是个问题。

4Megastore

Megastore是谷歌一个内部的存储系统,它的底层数据存储依赖Bigtable,也就是基于NoSql实现的,但是和传统的NoSql不同的是,它实现了类似RDBMS的数据模型(便捷性),同时提供数据的强一致性解决方案(同一个datacenter,基于MVCC的事务实现),并且将数据进行细颗粒度的分区(这里的分区是指在同一个datacenter,所有datacenter都有相同的分区数据),然后将数据更新在机房间进行同步复制(这个保证所有datacenter中的数据一致)。

Megastore数据组织:

5Dynamo

Dynamo是面向Amazon自有的电子商务应用的,使用广域分布的大规模集群提供高可靠的对象存储服务,主要存储1M左右甚至更小的内容,如购物车、推荐列表等。由于Dynamo的应用场合,设计上有这么一些“独特”的要求:

高可靠性与高伸缩性。

始终可写,写优先于读。

一致性与写入速度的折衷,不要求同步写入所有副本。

对称、无中心的构架,支持异构节点。

Amazon平台的架构图:


http://chatgpt.dhexx.cn/article/drE39ckW.shtml

相关文章

DRAM存储系统结构

这几天在学习DRAM存储结构的基本知识,为了更好地理解DRAM结构的基本知识,仔细阅读了Memory Systems Cache, DRAM, Disk这本书中第十章节的内容,并翻译了所述内容。为了方便以后查阅,把所做笔记记录一下。 DRAM存储系统结构 前几章…

第3章 Linux存储系统

三大基本存储架构(DAS,SAN,NAS) 直接附加的存储DAS:Linux 支持种类繁多的 DAS 界面,包括像并行高级技术附件的旧标准 — 电子集成驱动器 IDE/ATA — 并行 SCSI 和光纤通道以及新的存储界面,例如串行连接的 SCSI、串行 ATA 和外部 SATA 。您还将发现高级…

单机存储系统

单机存储引擎就是哈希表、B树等数据结构在机械磁盘和SSD等持久化介质上的实现。 单机存储系统是单机存储引擎的一种封装,对外提供文件、键值、表格或者关系模型,单机存储系统的理论来源于关系数据库。 哈希存储引擎是哈希表的持久化实现。 B树存储引…

存储系统和结构

很久没有在CSDN上面发文章了,最近复习机组的存储器,感慨自己这两年把知识都还给老师了,便做个笔记好好整理一下,也有了一些新收获。转载请注明来源:https://leerw.github.io 存储系统和结构 存储系统 将两个或来两…

存储系统 —— Cache(高速缓冲存储器)

本文主要介绍以下几方面的知识: Cache 的基本工作原理Cach和主存之间的映射方式Cache中主存块的替换算法Cache写策略 1.Cache的基本工作原理 存储系统存在的问题 局部性原理 (3)Cache 工作原理 性能分析 块地址形式 2.Cach和主存之间的映射方式 (1)全相联…

3-1存储系统-存储器概述主存储器

文章目录 一.存储器概述(一)存储器分类1.按在计算机中的作用(层次)分类2.按存储介质分类3.按存取方式分类4.按信息的可保存性分类 (二)存储器的性能指标 二.主存储器(一)基本组成1.译…

存储系统的层次结构

目录 一.背景二.层次结构(1)结构(2)原理(3)性能 一.背景 现在我们使用的计算机系统结构是冯诺依曼体系结构,它的一个特点就是中央处理器CPU(控制器算数运算器)与存储器相…

分布式存储Ceph存储系统RADOS

RADOS是Ceph最为关键的技术,它是一个完整的对象存储系统,所有存储在Ceph系统中的数据最终由这一层来存储。本文主要介绍RADOS的系统架构和IO处理流程,以了解Ceph存储的设计原理。 1、Ceph功能模块与RADOS Ceph存储系统的逻辑结构在“分布式系…

计算机存储系统

前言 何为存储系统? 存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统。 为何需要存储系统? 信息是人类认知外界的方式,最初…

存储系统的概念

1.程序的局部性原理 统计表明, 无论是访问存取指令还是存储数据,在一个较短的时间间隔内,程序所访司的存储器地址在很大比例上集中在存储器地址空间的很小范围内。 这种在某一段时间内预繁访问某一局部的存储器地址空间、而对此范围以外的地址空间则很少…

存储系统-概念

概念 存储系统是计算机的重要组成部分之一。存储系统提供写入和读出计算机工作需要的信息(程序和数据)的能力,实现计算机的信息记忆功能。现代计算机系统中常采用寄存器、高速缓存、主存[内存]、外存[可以理解为磁盘,磁带等]的多级…

计算机组成原理——存储系统(超详细,必看!!)

本篇文章是对王道考研的2021计算机组成原理学习笔记,希望对大家有所帮助。 文章目录 三、存储系统3.1 基本概念1.存储器的层次结构2.存储器的分类3.存储器的性能指标 3.2主存储器3.2.1主存储器的基本组成3.2.2 随机存取存储器RAM1.存储元件不同导致的特性差异2.DRAM…

修改并保存hosts文件

文章目录 问题解决方法 问题 打开hosts文件发现无法修改或者修改后点击保存后是另存为 解决方法 首先找到hosts文件,文件在 C:\Windows\System32\drivers\etc 目录下 选择hosts文件右键选择属性 把属性中只读前面的对号去掉然后点击确定 然后就可以修改保存了

Win11修改hosts文件方法,Win11无法修改hosts解决方法

博主亲测有效! 1.找到hosts文件的位置。 首先找到hosts文件,W11的host文件目录是c:\windows\system32\drivers\etc 2.修改hosts文件权限 选中hosts文件,右键选择属性,弹出属性窗口。 默认权限是只读状态,取消勾选。…

Windows下修改hosts文件

Windows下修改本地域名解析文件,原因你懂的,当然多数人选择修改这个应该都是选择最优或者较优的IP地址服务器进行访问。很多网站在运营商DNS服务器上的IP地址非常慢。 我们可以不做任何文件权限的修改,也不用蠢到删除用户之后只保留Admin用户…

win10如何修改hosts文件?

win10修改hosts文件的方法: 1、打开c盘,点击“Windows”,点击“system32”-“drivers”-“etc”,找到hosts文件; 2、修改hosts文件的权限 右键hosts文件,选择属性。 选择“安全”选项,点击ho…

win10 修改hosts文件

在win10之前修改hosts文件非常简单,直接使用notepad就可以修改了,到了win10阶段,就没那么简单了,你能看到hosts文件,就是改不了。 C:\Windows\System32\drivers\etc目录下: 就是改不了。 下面聊一下修改的…

Windows系统如何修改Hosts文件

Hosts其实是IP和网址建立的一个关联关系,在hosts配置好IP和网址,用户访问此网址时,会自动在hosts配置文件中找对应关系,找到后就会打开网页。 1.在配置hosts时,需要给当前用户分配权限。在hosts文件上右键菜单点击属性…

Mac 修改Hosts文件的方式

每次都要查询怎么改Hosts文件,还是记录下来吧!!!! 1、修改终端命令 (1)打开终端,输入命令行: sudo vi /etc/hosts (2)输入本机密码后&#xf…

hosts文件位置以及如何修改hosts文件【Windows】【以github为例】

Hosts文件简介 Hosts是一个没有扩展名的系统文件,主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到&a…