我们让盗取任务的进程,从队列的另一端盗取就行了,这样只有队列长度为 1 的时候才会出现竞争
来自:03|双端队列:并行计算中的工作窃取算法如何实现?
3 人划过
在 select 的时候如果没有加 for update 的话,就不会发生幻读的现象,反之则会有幻读的现象
来自:28|MVCC:如何突破数据库并发读写性能瓶颈?
3 人划过
journaling file system 的核心思想是鼎鼎大名的预写日志 WAL 也就是 write-ahead logging,这个也正是数据库系统中用于实现原子事务的主要机制,也很好理解,毕竟事务和文件系统一样,都需要保证一致性。
来自:16|日志型文件系统:写入文件的时候断电了会发生什么?
3 人划过
经典拥塞控制算法主要包括四个部分:
来自:20|滑动窗口:TCP是如何进行流量控制和拥塞控制的?
3 人划过
这其实也是在分布式系统中非常常见的做法。容斥原理我们知道,能获得半数以上票选的候选人只可能有一个。所以半数机制,如果遇到网络分区,网络分区少数的那一方就肯定不会产生 Leader;同样,同一个 Term 下全局也只会有一个 Leader,不会出现脑裂也就是同时有多个 leader 的情况。
来自:23|Raft:分布式系统间如何达成共识?
3 人划过
不同的字符编码间不能彼此成为对方的前缀
来自:13|哈夫曼树:HTTP2.0是如何更快传输协议头的?
3 人划过
有没有什么办法利用磁盘读写的特性,既可以保持树状结构的灵活性,又同时降低查询的 IO 次数呢?这就是 B+ 树的用武之地了,核心就是通过引入更多的分叉,在节点同样数量级的范围内,显著地降低树状索引的层数
来自:26|B+ Tree:PostgreSQL 的索引是如何建立的?
3 人划过
既然建立线性的索引文件就可以帮助我们加速查询的过程,那为什么在许多情况下,我们还需要使用诸如红黑树、B+ 树这样的复杂索引结构呢?比如 InnoDB 的索引文件就采用了 B+Tree,它和 Kafka 所选择的顺序稀疏索引文件各有什么优劣呢?
来自:09|二分:如何高效查询Kafka中的消息?
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
编辑推荐
看过的人还看了