Eric.Yao

Thinking will not overcome fear but action will.

数据库:B+Tree 索引的原理与应用

BTree in Storage Engine

数据库:B+Tree 索引的原理与应用 虽然写 BTree,但其实本章主要讨论其中一个优化的子集,即广泛使用的 B+Tree。 1. BTree 1.1. BTree 结构 1.2. BTree 索引特性 例如存在如下的表 ID | first_name | last_name | Class | Position | ssn | ------------...

数据库:B-Tree 与 LSM-Tree 的原理和取舍

Introduction of LSM-Tree and B-tree

数据库:B-Tree 与 LSM-Tree 的原理和取舍 本文介绍目前两种流行的索引结构,作为 DDIA 第三章前半部分的总结。 1. B-Tree 索引 1.1. 简介 B-tree 是目前最广泛使用的一种索引结构(B+ tree 是 B-tree 的一种优化版)。 可以说,B-tree 是广义上的二分搜索树,只不过每个节点(node)可以有 B 个子节点。 N 个数据通过...

缓存设计:Caffeine 与 TinyLFU 的实现原理

Tiny-LFU in Caffeine

缓存设计:Caffeine 与 TinyLFU 的实现原理 缓存算法其实包含两个部分,准入策略(Admission Policy)以及淘汰策略(Eviction Policy)。一般情况下,对于一个元素,我们先判断是否接受该元素(使用准入策略),若接受的话,则从 Cache 中选择一个替代品(使用淘汰策略),从而把新元素放到 Cache 中。 本文重点介绍 JAVA 中著名的缓存方案 C...

缓存设计:Go 缓存的实现与评测

Caching in Go

缓存设计:Go 缓存的实现与评测 本文主要介绍 Go 生态下面比较有名的几个 Cache,剖析这些 Cache 实现的原理,并分析各自存在的不足之处。最后,介绍如何编写 Benchmark 来对比不同的 Cache,方便喜欢造轮子的同学进行测试。 大家第一次接触 Cache,也许都是因为 LeetCode 上面这么一道 LRUCache 的题目。对 LRU 不太了解的同学可以再来做一下这...

开发环境:用 Docker 搭建编程环境

使用 Docker 搭建自己的编程环境

开发环境:用 Docker 搭建编程环境 1. Docker 简介 1.1. 什么是 Docker Docker 是什么?如何通俗解释Docker是什么? - 刘允鹏的回答 - 知乎 这个回答通俗易懂地从环境依赖、系统依赖、与虚拟机的区别等方面介绍了 Docker 的作用。 此外,在云时代的今天,Docker 与 K8S 更是无缝结合,为我们开发、测试、部署、交付、维护应用提供了便捷...