存储——谈存储文件系统
文件系统是组织磁盘的形式, 文件系统提供了文件元数据信息,以及文件内容寻址能力(即将文件offset+length映射为磁盘位置);另一方面适配不同的磁盘硬件,让用户程序无须考虑硬件的区别。对用户程序来说,存储等于文件系统。
9 篇文章
文件系统是组织磁盘的形式, 文件系统提供了文件元数据信息,以及文件内容寻址能力(即将文件offset+length映射为磁盘位置);另一方面适配不同的磁盘硬件,让用户程序无须考虑硬件的区别。对用户程序来说,存储等于文件系统。
leveldb前台可并发读,但只能串行写。
redis 通过网络服务接收远程命令,进行处理,将执行结果返回。
redis 是最值得学习的开源项目, 1. 它广泛应用 2. 它实现了单机缓存数据库,同时支持网络访问、复制、集群、订阅等高级特性 3. redis依赖很少,数据结构、日志等基础库也是自行实现,有利于学习 4. redis代码精悍、质量高,甚至很难找到优化点。
leveldb 可分为五大块。db, iterator,version, memtable+log, tablefile。
分布式存储底座包括分布式文件系统和分布式一致性KV存储。对外满足的条件 1. 提供数据可靠性,底座之上不需要担心数据损坏 2. 提供数据可用性,节点崩溃不影响数据读写 3. 集群级接口,多机节点可访问
缓存存放的是临时数据,相比主存,缓存往往速度更快,容量更小。
块存储、对象存储、文件存储是云计算云存储的概念,我想基于云存储,但也不限于云存储,谈谈自己的想法。
B+树和LSM树是最常见的单机存储引擎,前者代表是Mysql等事务性数据库,后者代表是Rocksdb等nosql KV数据库。