Key-value system

"kv 系统"

Posted by yueLng on 2019-12-13
1
*/redis-cli keys "prefix*" | xargs */redis-cli del

以LevelDB和Rocksdb为代表的LSM(Log-Structured Merge-Tree)存储引擎凭借其优异的写性能及不俗的读性能成为众多分布式组件的存储基石

LevelDB 其最大的优势便是将磁盘的随机写转化为顺序写

levelDB原理

etcd

A highly-available key value store for shared configuration and service discovery.

  • 简单:基于HTTP+JSON的API让你用curl就可以轻松使用。
  • 安全:可选SSL客户认证机制。
  • 快速:每个实例每秒支持一千次写操作。
  • 可信:使用Raft算法充分实现了分布式。

服务发现(Service Discovery)

强一致性、高可用的服务存储目录,通过raft算法实现

注册与监控服务健康状态的机制,保持服务的心跳达到监控健康状态的效果

一种查找和连接服务的机制

消息发布与订阅

可用于构建配置共享中心,所有的应用配置信息都放在etcd上进行集中管理,etcd watch机制

分布式锁

etcd使用raft算法保证了数据的强一致性,某次操作存储到集群中的值必然是全局唯一的,所以很容易实现分布式锁

参考资料

搜狐 cachecloud

庖丁解LevelDB之概览

WiscKey: Separating Keys from Valuesin SSD-conscious Storage 对SSD更友好的基于LSM的引擎设计方案

LSM upon SSD

etcd:从应用场景到实现原理的全方位解读
Etcd3学习笔记
使用 Rust 构建分布式 Key-Value Store
github-etcd

GopherCon 2017: Marty Schoch - Building a High-Performance Key/Value Store in Go