存储和数据库笔记 | 青训营
一些常见的数据库相关概念的科普知识
数据持久化的过程:
- 检验数据合法性
- 内存中组织数据结构
- 以寿命&性能友好方式写入存储介质
存储系统:一个提供了读写和控制接口,能够安全有效地把数据持久化的软件。
存储系统和数据库不是一回事
存储系统常见的存储方式包括块存储、文件存储、对象存储、key-value存储
存储系统特点:性能敏感、硬件敏感、代码简洁(但异常处理必须全面)
性能方面:缓存很重要、拷贝很昂贵
RAID(Redundant Array of Independent Disks)出现原因:
- 单块大容量磁盘比多块小容量磁盘贵
- 单块磁盘写入性能不如多块磁盘并发写入性能
- 单块磁盘容错能力弱
RAID0(stripe), RAID1(mirror), RAID0 1(combined)
Relational Database:
-
Structured data structure
-
ACID transaction support
- Atomicity, Consistency, Isolation, Durability
-
SQL for complex query
DSL: Domain Specific Language
单机和分布式,关系型和非关系型
Linux中一切皆文件
- Index Node:记录文件元数据,文件的唯一标识
- Directory Entry:文件名、inode指针、层级关系等,属于内存架构
key-value存储常见数据结构:LSM-Tree,牺牲了读性能,追求写性能。
HDFS(Hadoop Distributed File System):大数据时代基石
- 海量数据存储
- 高容错性
- 弱POSIX语义
- 便宜服务器
Management Node & Storage Node
Ceph也是著名的开源分布式存储系统,但一切皆对象,主备复制写入,CRUSH算法分布。
关系型数据库中,ToB: Oracle, Others: MySQL & PostgreSQL
通用组件:
- Query Engine
- Txn Manager(Transaction)
- Lock Manager
- Storage Engine
- Replication(主备同步)
关键内存数据结构:
- B-Tree
- B Tree
- LRU List
关键磁盘数据结构:
- WriteAheadLog(RedoLog):记录事务操作
- Page
- Others:临时数据
非关系型数据库:MongoDB, Redis, Elasticsearch三足鼎立
交互方式各不相同(一般不使用SQL),但在尝试支持SQL子集和事务
-
Elasticsearch
- 面向文档,支持json和嵌套,index=文档集合
- 存储和构建索引依赖Lucene搜索引擎
- 支持RESTFUL API,支持弱SQL交互
- 模糊匹配搜索查询能力很强,还内嵌关联程度算法
-
MongoDB
- 面向文档,支持json/bson和嵌套,collection=文档集合
- 存储和构建索引依赖wiredTiger引擎(纯C)
- 支持事务和多文档操作,常用client/SDK/支持弱SQL插件交互
-
Redis
- 数据结构丰富,C语言实现,基于内存超高性能
- 支持AOF/RDB持久化
- 常用redis-cli/多语言SDK交互
分布式:容量、弹性、性价比
新技术演进:
-
软件架构变更:Bypass OS kernel
- SPDK(Storage Performance Development Kit)
- 内核态到用户态;中断到轮询(磁盘性能提高);无锁数据结构
-
AI:智能存储格式转换
- 行列混存决策
-
硬件革命:存储介质、计算单元、网络硬件
- RDMA网络:用户态虚拟内存映射给网卡,减少拷贝和CPU开销
- Persistent Memory:介于SSD和Memory之间
- 可编程交换机:缓存一致性协议
- CPU从multi-core到many-core;CPU;DPU专用计算
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgajbie
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01