47 SSD硬盘(下):如何完成性能优化的KPI? 47 SSD硬盘(下):如何完成性能优化的KPI?如果你平时用的是 Windows 电脑,你会发现,用了 SSD的系统盘,就不能用磁盘碎片整理功能。这是因为,一旦主动去运行磁盘碎片整理功能,就会发生一次块的擦除,对应块的寿命就少了一点点。这个 SSD的擦除寿命的问题,不仅会影响像磁盘碎片整理这样的功能,其实也很影响我们的日常使用。 我们的操作系统上,并没有 SSD 硬盘上各个 2022-08-23 专栏 > 深入浅出计算机组成原理
49 数据完整性(上):硬件坏了怎么办? 49 数据完整性(上):硬件坏了怎么办?2012 年的时候,我第一次在工作中,遇到一个因为硬件的不可靠性引发的 Bug。正是因为这个Bug,让我开始逐步花很多的时间,去复习回顾整个计算机系统里面的底层知识。 当时,我正在 MediaV 带领一个 20 多人的团队,负责公司的广告数据和机器学习算法。其中有一部分工作,就是用 Hadoop集群处理所有的数据和报表业务。当时我们的业 2022-08-23 专栏 > 深入浅出计算机组成原理
48 DMA:为什么Kafka这么快? 48 DMA:为什么Kafka这么快?过去几年里,整个计算机产业届,都在尝试不停地提升 I/O 设备的速度。把 HDD 硬盘换成 SSD 硬盘,我们仍然觉得不够快;用 PCI Express接口的 SSD 硬盘替代 SATA 接口的 SSD 硬盘,我们还是觉得不够快,所以,现在就有了傲腾(Optane)这样的技术。 但是,无论 I/O 速度如何提升,比起 2022-08-23 专栏 > 深入浅出计算机组成原理
50 数据完整性(下):如何还原犯罪现场? 50 数据完整性(下):如何还原犯罪现场?讲完校验码之后,你现在应该知道,无论是奇偶校验码,还是 CRC这样的循环校验码,都只能告诉我们一个事情,就是你的数据出错了。所以,校验码也被称为检错码(Error Detecting Code)。 不管是校验码,还是检错码,在硬件出错的时候,只能告诉你“我错了”。但是,下一个问题,“错哪儿了”,它是回答不了的。这就导致,我们的处理方式 2022-08-23 专栏 > 深入浅出计算机组成原理
51 分布式计算:如果所有人的大脑都联网会怎样? 51 分布式计算:如果所有人的大脑都联网会怎样?今天是原理篇的最后一篇。过去 50 讲,我们一起看了抽象概念上的计算机指令,看了这些指令怎么拆解成一个个简单的电路,以及 CPU是怎么通过一个一个的电路组成的。我们还一起看了高速缓存、内存、SSD 硬盘和机械硬盘,以及这些组件又是怎么通过总线和 CPU 连在一起相互通信的。 把计算机这一系列组件组合起来,我们就拿到了一台完整的计 2022-08-23 专栏 > 深入浅出计算机组成原理
52 设计大型DMP系统(上):MongoDB并不是什么灵丹妙药 52 设计大型DMP系统(上):MongoDB并不是什么灵丹妙药如果你一讲一讲跟到现在,那首先要恭喜你,马上就看到胜利的曙光了。过去的 50多讲里,我把计算机组成原理中的各个知识点,一点一点和你拆解了。对于其中的很多知识点,我也给了相应的代码示例和实际的应用案例。 不过呢,相信你和我一样,觉得只了解这样一个个零散的知识点和案例还不过瘾。那么从今天开始,我们就进入应用篇。我会通 2022-08-23 专栏 > 深入浅出计算机组成原理
54 理解Disruptor(上):带你体会CPU高速缓存的风驰电掣 54 理解Disruptor(上):带你体会CPU高速缓存的风驰电掣坚持到底就是胜利,终于我们一起来到了专栏的最后一个主题。让我一起带你来看一看,CPU 到底能有多快。在接下来的两讲里,我会带你一起来看一个开源项目Disruptor。看看我们怎么利用 CPU 和高速缓存的硬件特性,来设计一个对于性能有极限追求的系统。 不知道你还记不记得,在第 37 讲里,为了优化 4毫秒专门 2022-08-23 专栏 > 深入浅出计算机组成原理
53 设计大型DMP系统(下):SSD拯救了所有的DBA 53 设计大型DMP系统(下):SSD拯救了所有的DBA上一讲里,根据 DMP 系统的各个应用场景,我们从抽象的原理层面,选择了 AeroSpike 作为 KV 数据库,Kafka作为数据管道,Hadoop/Hive 来作为数据仓库。 不过呢,肯定有不信邪的工程师会问,为什么 MongoDB,甚至是 MySQL 这样的文档数据库或者传统的关系型数据库不适用呢?为什么 2022-08-23 专栏 > 深入浅出计算机组成原理
结束语 知也无涯,愿你也享受发现的乐趣 结束语 知也无涯,愿你也享受发现的乐趣你好,我是徐文浩。伴随着无数个不眠之夜,“深入浅出计算机组成原理”专栏终于来到了结束语。 去年 11 月份,极客时间找到我,我开始构思这个专栏。本以为今年 4、5月份就能把专栏写完。结果,一方面因为创业过程中时间总是不够用,另一方面,写出有价值内容的并不是一件容易的事情,直到 9 月 10号的凌晨,我才写完这最后一篇结束语。原本计划的 45 讲,也在这个 2022-08-23 专栏 > 深入浅出计算机组成原理
00 开篇词 数学,编程能力的营养根基 00 开篇词 数学,编程能力的营养根基你好,我是公瑾,欢迎来到《程序员的数学课》。一些同学可能知道,之前我在拉勾教育就开设了一个[《数据结构与算法》]课程,目的是帮助大家提升编码能力,打牢代码基础,在结课时也受到许多同学的好评,表示所讲的内容在面试和工作中都很有实用性。 编程一类的基础能力固然重要,但这些依旧不是程序员全部的“立足之本”。个人角度而言,从我在中科院的博士研究生 2022-08-23 专栏 > 程序员的数学课