存储与数据库 | 豆包MarsCode AI 刷题

125 阅读3分钟

案例

产生,流动,存储全生命周期 数据->服务器内存(没有记忆和保存能力)->数据库(以及其他系统)
持久化:校验合法性->修改内存->写入存储软件
问题:数据不丢,多人修改,存储系统,数据处理,操作数据库

什么是存储系统

一个提供了读写控制类接口,能够安全高校把数据持久化软件;
数据如何从应用内存到存储介质?
缓存很重要,拷贝很昂贵 RAID技术背景

  • 单块大容量磁盘的价格>多块小容量磁盘
  • 单块磁盘的写入性能<多块磁盘的并发写入性能
  • 单块磁盘的客错能力有限,不够安全

存储&数据库简介

关系与非关系型数据库;存储系统

关系型数据库是存储系统,附加了支持结构化,ACID,复杂查询语言

单机存储

单个计算机节点,不涉及网络交互
1.本地文件系统(单机存储):linux一切皆文件
key-value:put(k,v)&get(k)使用LSM-Tree

分布式存储

分布式文件和对象存储系统

单机数据库-关系型数据库

关系型数据库的通用组件

  • Query Engine -- 负责解析query,生成查询计划
  • Txn Manager -- 负责事务并发管理
  • Lock Manager -- 负责锁相关的策略
  • Storage Engine -- 负责组织内存/磁盘数据结构
  • Replication--负责主备同步

单机数据库-非关系型数据库

  • 面向「文档」存储
  • 文档可序列化成JSON,支持嵌套
  • 存在「index」,index=文档的集合
  • 存储和构建索引能力依赖Lucene引l擎
  • 实现了大量搜索数据结构 & 算法
  • 支持RESTFULAPI,也支持弱SQL交互

分布式架构

单点容量有限,受硬件限制->存储节点池化,动态扩缩容(CPU disk memory)

总结

存储系统是实现数据持久化的关键组件,它通过提供读写控制接口确保数据的安全高效存储。从应用内存到存储介质的数据传输过程中,缓存机制尤为重要,因为它能显著提升性能,而数据拷贝则相对昂贵。为解决单一大容量磁盘存在的成本高、性能差、可靠性不足等问题,RAID技术应运而生,通过多块小容量磁盘的组合使用来提高数据的存储效率和安全性。

单机存储解决方案,如基于Linux文件系统的本地存储和采用LSM-Tree的键值对存储,适合处理较小规模的数据集。然而,随着数据量的增长,单机系统的局限性日益显现,这促使了分布式存储技术的发展。分布式文件系统和对象存储能够通过网络将多个物理位置上的存储资源聚合起来,不仅提升了系统的整体存储容量,还增强了数据的可用性和可靠性。

对于数据库而言,无论是关系型还是非关系型,其核心目标都是有效地管理和查询数据。关系型数据库通过提供ACID特性、复杂查询语言等高级功能满足了传统企业应用的需求,而非关系型数据库则以其灵活的数据模型、高效的水平扩展能力成为处理大规模、半结构化或非结构化数据的理想选择。

分布式架构通过将存储节点池化,实现了系统的动态扩缩容,克服了单点容量限制,使得系统能够根据实际需求灵活调整计算和存储资源,从而更好地应对海量数据和高并发访问挑战。