Monkey

2020-10-10

Monkey是一款基于LSM-tree的KV存储引擎,其通过采用在buffer和filter之间、不同的Bloom Filter之间分配内存比例等措施来优化LSM-tree性能。具体内容详见PPT:Monkey

Read More

Google Chubby

2020-08-08

基本原理

一致性client库 or 分布式锁

chubby实现的是一个中心化锁所服务,基于其一些优势:

  1. 大多数服务在刚开始写的时候并没有考虑高可用,当服务的规模越来越大时,程序员才会考虑高可用。等服务改造的时候,直接调用分布式锁服务会比改造为使用一...
Read More

kerberos

2020-08-01

本文是根据kerberos提供的经典对话所整理出来,用以记录kerberos产生的思路。

最初设计

最初设计图

上图所示,最原始版本的权限认证过程是非常简单的:当需要某个服务的时候,就通过用户名和密码去访问该服务来进行验证。<...

Read More

Backup Request Implementation

2020-07-18

背景

在当前的pegasus实现中,由于向secondary读取会导致不一致的情况发生,所以目前Pegasus仅仅支持对primary副本的读取。但是在某些情况下(例如:负载均衡、热点写入等)经常会导致primary不稳定。所以我们希望在primary不稳定时能够读取secondary,通过牺牲部分强一致性来降低请求的长尾并提高系统的可用性。backu...

Read More

Hermes

2020-07-12

Introduction

当今的共识协议过多的关注于吞吐throughput,而忽视了延迟latency,例如Chain Replication,便是一个典型的利用延迟换吞吐的例子。但是目前延迟已经变成一个越来越重要的指标。

Hermes便是一个兼具吞吐和延迟的共识协议,对于读操作,则可以在任何副本上进行读取;写操...

Read More