写点什么

架构师训练营第八周总结

用户头像
邓昀垚
关注
发布于: 2020 年 11 月 09 日

文件与硬盘 IO

两种硬盘

机械硬盘、固态硬盘

存储数据结构

B+树、LSM 树、文件控制块

RAID

RAID0、RAID1、RAID10、RAID3、RAID5、RAID6

分布式文件系统

HDFS

总结

如何提高磁盘 IO 的性能:

硬件层面:可以将机械硬盘换成固态硬盘、通过 RAID 提高磁盘可靠性和读写速率

逻辑层面:减少磁盘随机读写、通过索引提高文件检索效率

分布式:通过分布式文件存储突破磁盘整列的限制,理论上实现无限量文件的存储

数据结构与算法

复杂度

时间复杂度、空间复杂度

数据结构

数组、链表、Hash 表、栈、队列、树(二叉排序树、红黑树)

跳表(skip list):本质上就是给链表增加多级索引,避免线性搜索,需要额外占用索引空间

常用算法

穷举、递归、贪心、动态规划、遗传算法(模拟生物进化过程中染色体的交叉、变异过程,能够较快的获得较好的优化结果)

网络通信协议

网络协议分层

OSI 七层模型 TCP/IP 四层模型

“计算机领域的一切复杂问题都可以通过添加层来解决”

基于链路层、网络层、传输层均可实现负载均衡,往下效率越高,往上可定制性越强。

网络 IO 模型

阻塞式 IO

一个线程负责一个 Socket,当 Socket 发生 IO 阻塞时,对应的用户线程就会挂起,而线程资源是珍贵和有限的,阻塞式 IO 无法满足大规模的用户请求。

非阻塞式 IO

采用多路复用机制,使用单独线程处理 IO,用户线程不会阻塞。

总结

从 IO 和存储方面提升系统性能:

硬件和网络:机械硬盘升级到固态硬盘,RAID,升级网卡带宽,采用分布式文件存储

数据结构和算法:采用合适的索引提高搜索性能、采用合适的数据结构和算法

负载均衡:基于链路层、网络层、传输层实现负载均衡

IO 模型:使用 NIO 代替 BIO

用户头像

邓昀垚

关注

还未添加个人签名 2018.06.04 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第八周总结