第六届字节跳动青训营第八课 | 青训营

2023年 8月 22日 32.7k 0

主流存储产品剖析

单机存储

单个计算机节点上的存储软件系统,一般不涉及网络交互。单机存储系统就是本地文件系统,第二个存储系统就是key- value存储。

本地文件系统

Linux经典哲学— 一切皆文件。文件系统的管理单元即是文件。文件系统接口:文件系统繁多,如Ext2/3/4,sysfs,rootfs等,但都遵循VFS的统一抽象接口。Linux文件系统的两大数据结构:index node & directory entry。Index Node:记录文件元数据,如id、大小、权限、磁盘设置等inode是一个文件的唯一标识,会被存储到磁盘上inode的总数在格式化文件系统时就固定了。Directory Entry:记录文件名、inode指针,层级关系(parent)等,dentry是内存结构,与inode的关系是N:1(hardlink的实现)

key- value存储

常见的使用方式:put(k,v)&get(k)。常见数据结构:LSM- Tree,某种程度上牺牲读性能,追求写入性能。拳头产品RocksDB。关于LSM- Tree的数据结构特点,它对写入性能 顺序写入友好,对读性能是被牺牲了。这是为什么呢?主要是因为,它的数据结构分为两个部分,一部分是左边的内存数据结构,另一部分是右边的磁盘数据结构。不管是内存还是磁盘都是遵循顺序写入的总pattern,它不断地put key- value一直追加到内存里一个有序的数据结构。当左边的memorytable满了之后,里面的内容就会被刷到不可变的immutable里面,过一段时间或者条件触发,immutable的东西就会顺序写入到磁盘的SStable里面,level 0 sstable—level 1sstable—level2sstable。
借用马老师的总结:

世间一切皆key,value是你的内涵。

分布式存储

HDFS

堪称大数据时代的基石。时代背景:专用的高级硬件很贵,同时数据存量很大,要求超高吞吐。HDFS核心特点:支持海量数据存储、高容错性、弱POSIX语义、使用普通x86服务器,性价比高。

Ceph

开源分布式存储系统里的【万金油】Ceph的核心特点:一套系统支持对象接口、块接口、文件接口,但是一切皆对象;数据写入采用主备复制模型;数据分布模型采用CRUSH算法

单机关系型数据库

商业产品Oracle称王,开源产品MySQL&PostgreSQL称霸。MySQL关系型数据库的通用组件:Query Engine负责解析query,生成查询计划。Txn Manager负责事务并发管理。Lock Manager负责锁相关的策略。Storage Engine负责组织内存/磁盘数据结构。Replication负责主备同步。PostgreSQL中关键内存数据结构有B-Tree、B+-Tree、LRU List等。关键磁盘数据结构:Write AheadLog(Redolog)、Page

单机非关系型数据库

MongDB、Redis、Elasticsearch三足鼎立。关系型数据库一般直接使用SQL交互,而非关系型数据库交互方式各不相同。非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活。不管是否关系型数据库,大家都在尝试支持SQL(字集)和“事务”

分布式数据库

解决弹性问题:水平扩展:当负载增加时,通过增加数据库节点或分片,将数据分散存储和处理在多个节点上,以提高系统的处理能力和存储容量。水平扩展可以实现更好的负载均衡和并行处理,从而提高系统的弹性和可扩展性。自动缩放:当负载减少时,根据系统监控指标和负载预测,自动减少数据库节点或合并分片,以降低资源消耗和成本。自动缩放可以根据实际需求和负载情况灵活地调整数据库规模,避免资源的浪费。
通过这门课的学习我们了解各种存储产品的特点、优势和不同的适用场景。通过这样的学习,我们可以更好地选择和配置存储解决方案,以满足业务需求,并提供高性能、可靠性和扩展性。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论