Eric.Yao

Thinking will not overcome fear but action will.

BTree 索引原理及其应用

BTree in Storage Engine

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

索引结构——LSM-Tree与B-tree

Introduction of LSM-Tree and B-tree

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

Caffeine 的实现原理

Tiny-LFU in Caffeine

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

Go 生态下的 Cache 评测

Caching in Go

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

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

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

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