与锁的比较 相同点 如果用锁保护临界区,那么同一时刻只会有一个线程在临界区内,其他线程都在临界区外面。lock-free 是所有线程都可以进临界...
概述 概述为什么我们需要无锁编程无锁编程的相关概念 为什么我们需要无锁编程 多核编程中,我们常用锁来避免多个线程同时修改同一个数据时产生的条件竞...
索引 索引为什么我们需要索引实现优缺点怎么正确地使用索引 为什么我们需要索引 加快数据库的查询速度。 实现 索引的基本原理:保存一些元数据作为路...
层级压缩 为什么需要压缩 因为 sstable 文件越来越多,会耗尽磁盘空间,并且也会影响查找效率,所以需要压缩和合并 sstable。我们把修...
leveldb 的基本原理 背景 leveldb 是一个持久化的键值存储数据库引擎。google 将 leveldb 和 paxos 结合,搞出...
安全性 安全性是指Raft需要保证每个状态机需要以相同的顺序执行相同的命令。我们前面所说的领导者选举和日志复制的机制并不足以保证这个要求。 选举...
日志复制 问题 目的是什么? 保持集群中大多数服务器的状态一致。 复制过程的关键点是什么?处理日志不一致。 日志 日志由一个个顺序编号的日志项组...
领导者选举 什么是领导者 Raft 首先选举一个服务器作为领导者,然后让这个领导者全面负责可复制日志的管理。领导者需要从客户端接受日志条目,将这...
基本概念 领导者 At any given time server is in the one of three states: Followe...