带你认识存储的本质 - 状态(2月12日) | 青训营笔记

88 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天

一、本堂课重点内容:

1. 经典案例
2. 储存&数据库简介
3. 主流产品剖析
4. 新技术演进

二、详细知识点介绍:

1. 经典案例

通过一个模拟案例,描述了数据是怎么产生,在后端系统里怎么流通,最后怎么写入到存储/数据库系统。

潜在问题:

  • 数据库怎么保证数据不丢?
  • 数据库怎么处理多人同时修改的问题?
  • 为什么用数据库,除了数据库还能存到别的存储系统吗?
  • 数据库只能处理数据化数据吗?
  • 有哪些操作数据库的方式,要用什么编程语言?
2. 储存&数据库简介
  • 存储系统概览

    • 存储系统特点

      ① 作为后端软件的底座,性能敏感

      ② 存储系统软件架构,容易受硬件影响

      ③ 存储系统代码,既“简单”又“复杂

    • 存储器层级结构

    • 单机存储栈

    • RAID技术

      出现背景

      ① 单块大容量磁盘的价格 > 多块小容量磁盘

      ② 单块磁盘的写入性能 < 多块磁盘的并发写入性能

      ③ 单块磁盘的容错能力有限,不够安全

  • 数据库系统概览

    • 关系型数据库特点

      ① 结构化数据友好

      ② 支持事务

      ③支持复杂查询语言

    • 非关系型数据库特点

      ① 半结构化数据友好

      ② 可能支持事务

      ③ 可能支持复杂查询语言

    • 数据库 vs 经典存储

      ① 结构化数据管理

      ② 事务能力

      事务具有:
      
      A(tomicity),事务内的操作要么全去做,要么不做
      C(onsistency),事务执行前后,数据状态是一致的
      I(solation),可以隔离多个并发事务,避免影响
      D(urability),事务一旦提交成功,数据保证持久性
      

      ③ 复杂查询能力

    • 数据库使用方式

3. 主流产品剖析
  • 单机存储产品

    • 单机文件系统
    • 单机key-value存储
  • 分布式存储产品

    • HDFS

      ① 支持海量数据存储

      ② 高容错性

      ③ 弱POSIX语义

      ④ 使用普通x86服务器,性价比高

    • Ceph

      ① 一套系统支持对象接口、块接口、文件接口,但是一切皆对象

      ② 数据写入采用主备复杂模型

      ③ 数据分布模型采用CRUSH算法

  • 单机数据库产品

    • 关系型数据库 —— PG(PostgreSQL)、MySQL
    • 非关系型数据库 —— ES、MongoDB、Redis
    • Elasticsearch使用案例
  • 分布式数据库产品

    • 问题与挑战

      ① 容量问题:单点容量有限,受硬件限制

      ② 弹性问题:资源利用不均匀

      ③ 解决性价比

    • 解决方案

      存储节点池化,动态扩缩容

  • More to Do

    • 单写VS多写
    • 从磁盘弹性到内存弹性
    • 分布式事务优化
4. 新技术演进
  • SPDK
  • 人工智能
  • 新硬件加速

三、实践练习例子

四、课后个人总结:

经过本次课程的学习,我了解了储存和数据库的概念,回顾了一下之前学习到的关系型数据库和非关系型数据库的区别,了解了不同的主流存储产品,在今后的学习中,我将学习更多的知识,积极运用所学的知识,创造更好的系统,提高自己的学习意识。

五、引用参考: