存储与数据库 | 青训营笔记

100 阅读2分钟

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

存储与数据库 | 青训营笔记

经典案例

数据持久化

三步走: 校验数据合法性->修改内存->写入存储介质

潜在问题

  • 为什么用数据库?还能存储到别的存储系统吗?
  • 如何保证数据不丢?
  • 如何处理多人修改?
  • 有哪些操作数据库的方式?
  • 数据库只能存储结构化数据吗?

一些意识

  • 缓存很重要,贯穿整个存储体系
  • 拷贝很昂贵,应该尽量减少
  • 硬件设备五花八门,需要有统一的接入层

存储&数据库简介

RAID (Redunant Array of Inexpensive Disks)

  • RAID 0:多块磁盘简单组合、数据条带化存储、没有额外容错设计
  • RAID 1:一块磁盘对应额外一块额外镜像盘,真实空间利用率仅50%,容错能力强
  • RAID 0+1:结合二者

数据库

image.png

关系型数据库

  • 是一个存储系统
  • 结构化数据友好
  • 支持事务
  • 支持复杂查询语言

非关系型数据库

  • 是存储系统
  • 半结构化数据友好,一般不要求严格地结构化
  • 可能支持事务
  • 可能支持复杂查询语言

数据库vs经典存储

  • 结构化数据管理
  • 事务能力
  • 复杂查询

主流产品剖析

单机存储

本地文件系统

linux文件系统两大数据结构:

  • idex node:记录文件元数据,如id、大小、权限等,是一个文件的唯一标识,总数在格式化文件系统时已确定
  • directory entry:记录文件名、层级关系等,与index node关系为N:1

分布式存储

分布式文件系统 -HDFS

HDFS特点:

  • 支持海量数据存储
  • 高容错性
  • 弱POSIX语义(可移植操作系统接口Portable Operating System Interface of UNIX)
  • 性价比高

image.png

分布式文件系统 - Ceph

Ceph特点:

  • 一套系统支持对象接口、块接口、文件接口,但是一切皆对象
  • 主备复制模型
  • 数据分布模型采用CRUSH算法

单机数据库

关系型数据库:MySQL
非关系型数据库: Elasticsearch、MongoDB、Redis

image.png

分布式数据库

  • 解决容量问题:存储节点池化,动态扩缩容,数据库不需要感知存储池的容量
  • 解决弹性问题:存储节点池化