56、FAQ第一期 | 学与不学,知识就在那里,不如就先学好了

你好,我是徐文浩。专栏上线三个多月,我们已经进入后半段。 首先,恭喜跟到这里的同学,很快你就可以看到胜利的曙光了。如果你已经掉队了,不要紧,现在继续依然来得及。 其次,非常感谢同学们的积极留言,看到这么多人因为我的文章受到启发、产生思考,我也感到非常...

深入浅出计算机组成原理

55、理解Disruptor(下):不需要换挡和踩刹车的CPU,有多快?

上一讲,我们学习了一个精妙的想法,Disruptor通过缓存行填充,来利用好CPU的高速缓存。不知道你做完课后思考题之后,有没有体会到高速缓存在实践中带来的速度提升呢? 不过,利用CPU高速缓存,只是Disruptor“快”的一个因素,那今天我们就来...

深入浅出计算机组成原理

54、理解Disruptor(上):带你体会CPU高速缓存的风驰电掣

坚持到底就是胜利,终于我们一起来到了专栏的最后一个主题。让我一起带你来看一看,CPU到底能有多快。在接下来的两讲里,我会带你一起来看一个开源项目Disruptor。看看我们怎么利用CPU和高速缓存的硬件特性,来设计一个对于性能有极限追求的系统。 不知...

深入浅出计算机组成原理

53、设计大型DMP系统(下):SSD拯救了所有的DBA

上一讲里,根据DMP系统的各个应用场景,我们从抽象的原理层面,选择了AeroSpike作为KV数据库,Kafka作为数据管道,Hadoop/Hive来作为数据仓库。 不过呢,肯定有不信邪的工程师会问,为什么MongoDB,甚至是MySQL这...

深入浅出计算机组成原理

52、设计大型DMP系统(上):MongoDB并不是什么灵丹妙药

如果你一讲一讲跟到现在,那首先要恭喜你,马上就看到胜利的曙光了。过去的50多讲里,我把计算机组成原理中的各个知识点,一点一点和你拆解了。对于其中的很多知识点,我也给了相应的代码示例和实际的应用案例。 不过呢,相信你和我一样,觉得只了解这样一个个零散的...

深入浅出计算机组成原理

51、分布式计算:如果所有人的大脑都联网会怎样?

今天是原理篇的最后一篇。过去50讲,我们一起看了抽象概念上的计算机指令,看了这些指令怎么拆解成一个个简单的电路,以及CPU是怎么通过一个一个的电路组成的。我们还一起看了高速缓存、内存、SSD硬盘和机械硬盘,以及这些组件又是怎么通过总线和CPU连在一起...

深入浅出计算机组成原理

50、数据完整性(下):如何还原犯罪现场?

讲完校验码之后,你现在应该知道,无论是奇偶校验码,还是CRC这样的循环校验码,都只能告诉我们一个事情,就是你的数据出错了。所以,校验码也被称为检错码(Error Detecting Code)。 不管是校验码,还是检错码,在硬件出错的时候,只能告诉你...

深入浅出计算机组成原理

49、数据完整性(上):硬件坏了怎么办?

2012年的时候,我第一次在工作中,遇到一个因为硬件的不可靠性引发的Bug。正是因为这个Bug,让我开始逐步花很多的时间,去复习回顾整个计算机系统里面的底层知识。 当时,我正在MediaV带领一个20多人的团队,负责公司的广告数据和机器学习算法。其中...

深入浅出计算机组成原理

48、DMA:为什么Kafka这么快?

过去几年里,整个计算机产业界,都在尝试不停地提升I/O设备的速度。把HDD硬盘换成SSD硬盘,我们仍然觉得不够快;用PCI Express接口的SSD硬盘替代SATA接口的SSD硬盘,我们还是觉得不够快,所以,现在就有了傲腾(Optane)...

深入浅出计算机组成原理

47、SSD硬盘(下):如何完成性能优化的KPI?

如果你平时用的是Windows电脑,你会发现,用了SSD的系统盘,就不能用磁盘碎片整理功能。这是因为,一旦主动去运行磁盘碎片整理功能,就会发生一次块的擦除,对应块的寿命就少了一点点。这个SSD的擦除寿命的问题,不仅会影响像磁盘碎片整理这样的功能,其实...

深入浅出计算机组成原理