近期集中看了一些视频,记录一下
有时候觉得自己有些强迫症:对于感兴趣的细节,会花费极多的时间去爬取资料、去扣东扣西,弄得自己真实很累!
-
比如,自己讲授OS课,按照课程的要求只要讲清楚概念和涉及到的算法即可,自己总是想弄明白 OS 到底是怎样制作出来的!为此,也在网上找了别人所谓深入到OS实现的课程和实验项目,但是,基本上没有覆盖"从无到有"的内容,而是成了类似"源码剖析"的形式。
-
又比如自己想讲授 "高性能数据计算"(自己琢磨的名字,用以涵盖大致 "高性能计算+大数据+并行算法"的内容),其中,涉及到如何将很多的技术梳理出层次的问题,即,DOS会涉及 Logical Clock, Heartbeat, RPC/RMI,SOA,Hot Recovery, HA (High Availability), Consensus (PAXOS, RAFT, ZAB),Fault Tolerance (WAL)等,但是,缺乏生动的应用场景将这些东西层次化起来
- 一个问题:(计)算的Crash 和 数据存取的Crash - 应该是不同的。见到的讨论的资料大多是针对后者;前者是如何解决呢?
近期集中看了收集到的一些视频,有些有助益,记录一下。
OS的那些视频
Write your own Operating System(自制操作系统)
虽然实现的OS很粗糙,甚至有个视频没有声音,但是,能让我一窥操作系统"从无到有"到底是怎样的!
image-20210714142205922https://www.youtube.com/watch?v=1rnA6wpF0o4&list=PLai-xIlqf4Jn9VWc5icj3IcQj0a_ek7w0
基本上展示了如何从头制作一个 OS!
只是可惜没有给出一个支持新程序运行的例子:用户有个程序,制作的 OS 如何支持的。不过,还是能想象出来的:构建 PCB, 分配内存,将CPU交给程序。跟操作系统一样:操作系统使用整个MM;而程序在OS分配给它的空间中而已 – 有自己的变量、函数,甚至自己还要申请新的空间,然后,Machine Cycle 运行而已。
这样的视频,就是好视频 – 即便只是给出最简陋的一些管理算法,但,珍贵就珍贵在给出了较为完整的OS开发!要知道,最难的是从无到有!只有有了这个简陋的“平台”,才能在其上尽心完善、添加那些更为有效率的算法。
该作者还制作Build a Linux From Scratch
image-20210714142432066找到了一个 UNIX 的历史影像,值得看看
image-20210714142542702一本UNIX的书,也推荐看看
image-20210714142555341Concurrent (Distributed or Parallel) Programs
里面涉及的东西很多(Logic Clock, WAL, HA, Fault Tolerance等),层次呢?-有了层次,就好记忆嘛
image-20210714142934357E:\Local\HPC.PPTs.2021.Wide\04 Distributed OS02.pptx
有些"Distributed Systems"视频,讲了很多专题,但是,没有讲讲层次结构(供我参考、验证),有些遗憾
F:\My7\MyClasses\12.1 HPC\Videos\分布式系统 Distributed Systems (中英双语字幕)MIT 6.824(2020)
image-20210714102249166F:\My7\MyClasses\12.1 HPC\Videos\华盛顿大学公开课:构建分布式系统CSEP 552 Distributed System
image-20210714102423441开发框架
自己的课程中也要并发编程的内容,涉及到的 有 Multi-processed, Multi-Threaded, OpenMP, OpenACC, CUDA, MPI, Big Data (个人认为 Big Data 也可以作为一种编程风格/框架的)。觉得,OpenMP (觉得没有必要专门讲), MPI, CUDA, Big Data, 以及 Hybrid混合
对应不同的计算资源结构, Hybrid有:
- Multi Core (CPU): OpenMP, 或 Multi-processed, Multi-Threaded
- CPU + GPU 或 Multi-core + GPUs: MPI + CUDA
- Distributed CPUs: MPI + OpenMP
- Distributed + GPUs: MPI + CUDA
数据库的实现: 从 RDBMS 到 Distributed
觉得,重要的还是先去看看前面的"Write your own Operating System(自制操作系统)"
在对System Programming有了感觉后(即便是粗糙的),再看 DBMS的设计与实现才能真的有落地了的体会。
有些冠之以"Distributed Data",其实,讲的内容跟前面"Distributed Systems"重合
F:\My7\MyClasses\01.数据库实践课\Videos\Distributed Data Management 2015
F:\My7\MyClasses\01.数据库实践课\Videos\Distributed Data Management 2018
image-20210714144306212阿里巴巴PolarDB-X 的诞生和发展
2003 年淘宝网成立之初采用的是经典的 LAMP 架构,随着用户量迅速增长,单机 MySQL 数据库很快便无法满足数据存储需求,之后淘宝网进行了架构升级,数据库改用 Oracle。随着用户量的继续快速增长,Oracle 数据库也开始成批成批的增加,即使这样,仍然没有满足业务对数据库扩展性的诉求,所以**阿里巴巴内部在 2009 年时发起了著名的去 IOE运动 **(IBM是服务器提供商,Oracle是数据库软件提供商,EMC则是存储设备提供商,三者构成了一个从软件到硬件的企业数据库系统),PolarDB-X 也开启了自己的演进之路。
image-20210714124049690也是发现有了瓶颈,只能自己解决 - 要感谢开源
阿里巴巴的"云栖大会"
在网上找到的比较全的是2017年的,浏览其后几年的,应该2017年的算是比较值得看看的。
image-20210714124330668 image-20210714124403801image-20210714124414027F:\My7\MyClasses\12.1 HPC\Videos\阿里云栖2017\阿里数据-数据库内核专场[1080P].flv
“异步提交” 提升效率 – 这显然是 System Programming 了
E:\Local\HPC.PPTs.2021.Wide\04 Distributed OS02.pptx
F:\My7\MyClasses\12.1 HPC\Videos\阿里云栖2017\阿里云自研数据库POLARDB专场[1080P].flv
F:\My7\MyClasses\01.数据库实践课\PPTs-Training.2021\PPTs.2021.Wide\01 Introduction.pptx [PP 28]