漫谈分布式锁实现
分布式锁是控制分布式系统之间同步访问共享资源的一种方式,本文介绍了使用 Redlock、etcd 等常见分布式锁的实现方式与 Google Chubby 的设计思路,并探讨不同类型的分布式锁的适用场景。
分布式锁是控制分布式系统之间同步访问共享资源的一种方式,本文介绍了使用 Redlock、etcd 等常见分布式锁的实现方式与 Google Chubby 的设计思路,并探讨不同类型的分布式锁的适用场景。
简单介绍 Radix Tree 的原理与实现
B-Tree 及其变种数据结构被广泛用于存储系统、数据库系统中,主要作为索引使用,适用于动态随机访问数据的场景。[google/btree] 是一个使用 Go 编写的纯内存 B-Tree 实现,本文对它的源码进行了分析。
BPF 是 Linux 内核中一个非常灵活与高效的类虚拟机组件, 能够在许多内核 hook 点安全地执行字节码。本文简单整理了 eBPF 的技术原理与应用场景。
文件系统是对一个存储设备上的数据和元数据进行组织的机制,由于定义如此宽泛,各个文件系统的实现也大不相同,其中常见的文件系统有 ext4、NFS、/proc 等。Linux 采用为分层的体系结构,将用户接口层、文件系统实现和存储设备的驱动程序分隔开,进而兼容不同的文件系统。
2020 年发生了许多黑天鹅事件,笔者在这一年也经历了许多意料之外的事情,既定的学习计划一再延期。总体来看,任何选择都伴随着一定的风险,充斥着不确定性,但是不管遇到什么意外事件,笔者认为我们都要学会拥抱变化,勇敢地去面对问题、接受问题、解决问题。
现代操作系统使用虚拟内存进行内存管理,本文总结了虚拟内存的原理与一些应用场景。
LSM-Tree 被是一种面向写多读少应用场景的数据结构 ,被 Hbase、RocksDB 等面对亿级的海量数据存储和检索的 NoSQL 采用,作为这些强力数据库的底层文件组织方式。文中将会介绍 LSM-Tree 的设计思路,并分析使用这种数据结构的 LevelDB 是如何实现与优化的。
在现代的 CPU(大多数)上,所有的内存访问都需要通过层层的缓存来进行,了解 CPU 缓存更新的一致性问题对我们设计与调试程序具有很大的帮助。这篇文章会介绍 CPU 的缓存系统,以及使用内存屏障进行缓存同步。
5分钟法则(The Five-Minute Rule)是用来衡量数据驻留在内存还是从磁盘进行访问的经验法则:在数据被读写之前必须被移动到主存的情况下,如果某项数据被访问频率的足够高,那么将它缓存在内存中比驻留在二级存储(磁盘)中更划算。