分布式存储
1. 分布式存储基础
1.1 数据分片(Sharding)
哈希分片
/**
* 简单哈希分片
*/
public class HashSharding {
private int shardCount;
public HashSharding(int shardCount) {
this.shardCount = shardCount;
}
public int getShard(String key) {
int hash = key.hashCode();
// 处理负数哈希值
return Math.abs(hash % shardCount);
}
}
// 问题:扩容时几乎所有数据需要迁移
// 3 节点 -> 4 节点:约 75% 数据需要迁移范围分片
1.2 一致性哈希详解 ⭐⭐⭐⭐⭐
基本原理
一致性哈希实现
虚拟节点
带权重的一致性哈希
1.3 数据副本
副本策略
副本一致性
模式
特点
应用
1.4 Quorum 机制 ⭐⭐⭐⭐
2. LSM Tree 深入分析 ⭐⭐⭐⭐⭐
2.1 LSM Tree 原理
2.2 写入流程
2.3 读取流程
2.4 Compaction 策略
2.5 LSM Tree 优化
3. Cassandra 详解 ⭐⭐⭐⭐
3.1 架构特点
3.2 数据模型
3.3 写入路径详解
3.4 读取路径详解
3.5 核心机制
4. HBase 详解 ⭐⭐⭐⭐
4.1 架构设计
4.2 Region 管理
4.3 Region 负载均衡
4.4 热点问题与 Row Key 设计
5. Dynamo 设计原理 ⭐⭐⭐⭐
5.1 Dynamo 概述
5.2 核心技术
5.3 版本控制与冲突解决
5.4 Sloppy Quorum
6. 面试要点总结
6.1 分布式存储核心
知识点
重要程度
考察频率
6.2 关键记忆点
7. 常见面试题
7.1 一致性哈希
7.2 LSM Tree
7.3 存储系统
Last updated