1.一个提供了读写,控制类接口,能够安全有效地把数据持久化的软件,就可以成为存储系统
2.存储系统的特点:作为后端软件的底座,性能敏感;存储系统代码,既"简单"又"复杂";存储系统软件架构,容易受硬件影响
3.缓存贯穿整个存储体系,拷贝昂贵应尽量减少,硬件设备繁多,需要有抽象统一的接入层
4.关系=集合=任意元素组成的若干有序偶对反应了事物间的关系;关系代数=对关系作运算的抽象查询语言;SQL=一种DSL=方便人类阅读的关系代数表达式
5.关系型数据库是存储系统,但是在存储之外,又发展处其他能力
6.非关系型数据库也是一种存储系统,但是一般不要求严格的结构化
7.事务具有:A-事务内的操作要么全做,有么不做;C-事务执行前后,数据状态是一致的;I-可以隔离多个并发事务,避免影响;D-事务一旦提交成功,数据保证持久性
8.SQL要操作数据时,支持Insert,Update,Select,Delete,Where字句,GroupBy,OrderBy等操作;要对数据定义做修改时,支持Create user,Create database,Create table,Alter table等操作
9.文件系统的管理单元:文件;文件系统接口:文件系统繁多,但都遵循VFS的统一抽象接口;Linux文件系统的两大数据结构:Index Node & Directory Entry
10.Index Node:记录文件元数据,如id,大小,权限,磁盘位置等,inode是一个文件的唯一标识,会被存储到磁盘上,index的总数在格式化文件系统时就固定了
11.Directory Entry:记录文件名,inode指针,层级关系等,dentry是内存结构,与inode的关系是N:1
12.key-value存储:常见使用方式-put(k,v)&fet(k);常见数据结构:LSM-Tree,某种程度上牺牲性能,追求写入性能
13.分布式存储=在单机存储基础上实现了分布式协议,设计大量网络交互
14.HDFS:堪称大数据时代的基石;核心特点:支持海量数据存储,高容错性,弱POSIX语义,使用普通x86服务器,性价比高
15.Ceph:开源分布式存储系统里的"万金油";核心特点:一套系统支持对象接口,块接口,文件接口,但一切皆对象,数据写入采用主备复制模型,数据分布模型采用CRUSH算法