
分布式
smartlxh
用代码描绘整个世界
展开
-
memcached缓存系统
memcached作为缓存系统基本模型如图,FE表示front server(如web server)Read:前端server向memcache请求数据如果命中则直接返回数据如果数据在memcache中miss,则前段server会自己向后端db请求数据,然后再将返回的数据set到memcache中Write:前段server向db发送写请求,然后从memcache中delete(k),将更新的数据删除掉问题这边有个问题就是为什么在读数据miss的时候,不由memcache来向db请原创 2020-09-02 19:11:09 · 280 阅读 · 0 评论 -
Raft算法
Raft介绍谈到一致性算法,最出名的莫过于大名鼎鼎的Lamport于1980s提出的Paxos,但是这篇论文实在是很难读懂,因此也有很多论文是来简单描述Paxos算法的。Raft的初衷就是以一种简单易于理解的算法实现Paxos想同的功能,但是伴随着的是某些方面性能的损失。Raft 和另一种一致性算法Viewstamped Replication很相似,Viewstamp是于1990s提出来的,而Raft是于2014年提出的。几个基本概念majority vote (“quorum” systems)原创 2020-08-12 16:28:15 · 429 阅读 · 0 评论 -
Frangipani的CacheConsistency
简介Fangipani 是一个分布式文件系统,构建在虚拟磁盘上Petal上。这里我们只关注于Fangipani的Cache一致性是怎么做的架构可以简单理解为不同的client通过Petal而拥有对文件系统的统一view。每个client拥有自己的cache,将Petal的文件读到cache中修改,同过lockserver来同步获取锁和释放锁。cache一致性每个客户端有一个表来保存自己持有的所有lock的状态 busy/idle,busy表示正在对文件读写操作,idle表示已经读写完毕。原创 2020-08-12 16:26:03 · 261 阅读 · 0 评论 -
CRAQ
简介Chain ReplicationChain Replication 即,所有的写请求全部发送到head,然后成链式复制下去,直到复制到Tail,这是一个wriet请求即为提交。所有的读请求发送到Tail,直接返回,因此返回的数据都是已经提交的数据CRAQ是在CR基础上的改进,write请求仍然发送到Head,但是Read请求不只是发送到Tail,每个节点都是可读的。处理write请求:从Head开始,将对象的dirty位置1,然后传到下一个node,以此类推。最后Tail收到write请求,原创 2020-08-12 16:25:25 · 288 阅读 · 0 评论