PacificA-Replication in Log-Based DS
1.IntroducePacifica是微软2008年发表的一个通用的复制框架,早于raft(2014),其具有简单、实用和强一致(strongconsistency)的特点。Pacifica的出现主要就是为了解决一致性复制协议(Paxos)理论和工程实践之间的gap,也就是基于Paxos的一致性复
Etcd 之 Lease read
IntroduceEtcd是一个建立在分布式kv基础之上的分布式配置管理服务软件,其分布式数据一致性复制是采用的raft。今天将和大家一起学习下Etcd对ReadOnly请求是如何处理的,鉴于其他的博文中已经有关于ReadIndex的实现介绍,这里将只为大家介绍Leaseread。首先回顾下raft
Practical Fast Replication
来自NSDI2019《ExploitingCommutativityForPracticalFastReplication》的idea,主要工作是对数据多副本一致性复制协议latency的优化,觉得有点意思,在这里分享给大家,*压压惊*,毕竟最近江湖腥风血雨,不太平。1.Introduce为了保证分
条件变量 之 稀里糊涂的锁
0.前言条件变量(conditionvariable)和互斥锁(mutex),这两个寻常百姓人家常用的同步工具,想必大家都不陌生。但是在最近遇到的关于条件变量和互斥锁错误使用的bug,才发现自己之前对条件变量的理解不够深入,可以尝试问自己这个问题:为什么条件变量和互斥锁总是搭配着使用?互斥锁的作用是
从一致性 hash 到 ceph crush
1.背景面对海量数据的时候,单个节点存放不下,自然需要将数据切成分片Partations,存放到多个节点上(这里的Partation在MongoDB中被称为分片(shard),在HBase中称之为区域(Region),Bigtable中则是表块(tablet),Cassandra中是虚节点(vnod
Load balancing for large-scale storage systems
1.介绍对于通常的互联网应用来说,read、write比例通常在8:2,所以提升read的性能是至关重要的,通常的做法是采用更快的介质作为更慢介质的Cache,在计算机系统中Cache的应用非常常见,例如:CPU有L1、L2、L3级缓存作为内存的Cache,文件系统有PageCache,使用内存作为
The Power of Two Random Choices
1.介绍常见的Loadbalance算法想必大家都不陌生,Random、Round-robin、Leastconnection、Consistenthash等应该都耳熟能详,这些算法都在实践中有广泛的应用,例如Nginx、Haproxy等负载均衡模块都有相应算法的实现。本文将和大家分享一种全新的Lo
Zookeeper和跨数据中心分布式协调
client1:x=0->x=5->y=0->y=3client2:y=0->y=3->x=0->x=5
Preventing Latency Spikes LSM Key-Value Stores
0.介绍当前,以LevelDB、RocksDB为代表的LSM-treek-v存储引擎广泛应用,所以研究和优化的非常多,无论是学术界和工业界,之前也有介绍多个相关的工作。今天也因为"利奇马"到访杭州,所以难得清闲在家里休息,撇了一眼ATC2019,挑了今年的BestPaperSILK:Preventi
Fail-Slow at Scale
0.IntroduceFail-stop无论在单机系统还是分布式系统中,大家都会有清晰的认识和成熟的解决方案,例如副本offline,在分布式系统中一般都能够很快的发现并且failover出去,对于可用性、可靠性和性能的影响都是可预期和可控的。技术上也相对成熟,无论是传统的热备技术、还是基于一致性复
Fail-Slow at Scale
0. IntroduceFail-stop无论在单机系统还是分布式系统中,大家都会有清晰的认识和成熟的解决方案,例如副本offline,在分布式系统中一般都能够很快的发现并且failover出去,对于可用性、可靠性和性能的影响都是可预期和可控的。技术上也相对成熟,无论是传统…
Preventing Latency Spikes LSM Key-Value Stores
0. 介绍当前,以LevelDB、RocksDB为代表的LSM-tree k-v存储引擎广泛应用,所以研究和优化的非常多,无论是学术界和工业界,之前也有介绍多个相关的工作。今天也因为"利奇马"到访杭州,所以难得清闲在家里休息,撇了一眼ATC 2019,挑了今年的Best Paper SILK…
Zookeeper和跨数据中心分布式协调
1. Introduction不记得什么时候看了饿了吗异地多活改造[10],萌生了对跨数据中心的解决方案学习和了解,这几天抽空阅读了一些资料,主要是基于文献[8],向大家介绍Zookeeper跨数据中心解决方案。本文将核心介绍如下内容:什么是Sequential consistency(顺…
The Power of Two Random Choices
1. 介绍常见的Load balance算法想必大家都不陌生,Random、Round-robin、Least connection、Consistent hash等应该都耳熟能详,这些算法都在实践中有广泛的应用,例如Nginx、Haproxy等负载均衡模块都有相应算法的实现。本文将和大家分享一种全新的Load bala…
Single-Level KV Store with Persistent Memory
1. 介绍以 LevelDB 和 RocksDB 为代表的 LSM-tree key-value 存储,在生产环境中被广泛的应用。其优点:(1)通过将随机小写转变成顺序写,提高了写入的性能;(2)顺序的key-value存储,可以支持高效的 range scans。缺点也很明显,就是 I/O 放大:(1)re…
Load balancing for large-scale storage systems
1. 介绍对于通常的互联网应用来说,read、write比例通常在8:2,所以提升read的性能是至关重要的,通常的做法是采用更快的介质作为更慢介质的Cache,在计算机系统中Cache的应用非常常见,例如:CPU有L1、L2、L3级缓存作为内存的Cache,文件系统有Page Cache…
从一致性 hash 到 ceph crush
1. 背景面对海量数据的时候,单个节点存放不下,自然需要将数据切成分片 Partations ,存放到多个节点上(这里的 Partation 在 MongoDB 中被称为 分片(shard), 在 HBase 中称之为 区域(Region),Bigtable中则是 表块(tablet),Cassandra 中是虚节点(vnode)…
Practical Fast Replication
来自NSDI 2019《Exploiting Commutativity For Practical Fast Replication 》的 idea,主要工作是对数据多副本一致性复制协议latency的优化,觉得有点意思,在这里分享给大家,*压压惊*,毕竟最近江湖腥风血雨,不太平。1. Introduce为了保证分布式系统数…
条件变量 之 稀里糊涂的锁
0. 前言条件变量(condition variable)和互斥锁(mutex),这两个寻常百姓人家常用的同步工具,想必大家都不陌生。但是在最近遇到的关于条件变量和互斥锁错误使用的 bug,才发现自己之前对条件变量的理解不够深入,可以尝试问自己这个问题:为什么条件变量…
Etcd 之 Lease read
IntroduceEtcd 是一个建立在分布式 kv 基础之上的分布式配置管理服务软件,其分布式数据一致性复制是采用的 raft。 今天将和大家一起学习下 Etcd 对 ReadOnly 请求是如何处理的,鉴于其他的博文中已经有关于 ReadIndex 的实现介绍,这里将只为大家介绍 Leas…