分布式
west_liu
这个作者很懒,什么都没留下…
展开
-
Talent Plan:实现一个 Mini 版本的分布式 Key-value 数据库(二)
第一篇:https://blog.csdn.net/westbrookliu/article/details/107451683project2 RaftKV——Leader election这次实现的是Raft算法,该算法分为三部分实现:Leader electionLog replicationRaw node interface预备知识什么是Raft算法?可以看看下面这篇文章了解一下https://blog.csdn.net/westbrookliu/article/detai原创 2020-07-25 17:35:44 · 1116 阅读 · 2 评论 -
Talent Plan:实现一个 Mini 版本的分布式 Key-value 数据库(一)
最近想做一做一些小项目巩固一下Go语言知识和分布式系统的知识,偶然看到PingCAP的一个课程:https://university.pingcap.com/talent-plan/。看上去挺不错,本来还想搞一搞Rust的,但半途而废了orz,写习惯了Go,结果Rust看得很不顺眼(还是太菜了)。因此开一个坑,从五个路径中选了路径二,做完路径二再看看有没空做下其它路径。。先贴上我的github的代码:https://github.com/liu-jianhao/tinykv,我的解决思路方案再my_so原创 2020-07-19 21:25:37 · 2017 阅读 · 0 评论 -
半小时学会什么是分布式一致性算法——Paxos
Paxos目标:复制日志复制日志 => 复制状态机所有服务器按照相同的顺序执行相同的命令一致性模型确保正确的日志复制只要大部分服务器是运行的系统就能工作失败的模型:失败-停止(非拜占庭),延迟/丢失信息Basic PaxosProposers:活动的:提出特定的值被选中处理客户请求Acceptors:被动的:响应消息给proposers回应达成...原创 2019-08-19 09:38:35 · 27848 阅读 · 2 评论 -
半小时学会分布式一致性算法——Raft
Raft目标:日志复制日志复制 => 复制状态机所有服务器以一样的顺序执行一样的命令一致性模型确保合理的日志复制只要大多数服务器能运行,系统就能服务失败模型:失败-停止(非拜占庭)、延迟/丢失消息达成一致性的方法两种方法:对等的,leader-less:所有服务器扮演同样的角色客户可以与任意一个联系非对等的,leader-based:在任意给定...原创 2019-08-19 09:37:48 · 608 阅读 · 0 评论 -
MIT6.824-2012——从零开始写一个分布式文件系统yfs
yfsCpp11yfs是一个分布式文件系统https://github.com/liu-jianhao/yfsCpp11https://pdos.csail.mit.edu/archive/6.824-2012/labs/index.htmllab1-lab7小结lab1:实现锁服务器Q&A锁服务器有什么用?yfs是一个分布式文件系统,客户端通过网络与服务器通信,那要怎么...原创 2019-01-02 23:52:02 · 1285 阅读 · 0 评论 -
Bitcask:A Log-Structured Hash Table for Fast Key/Value Data 阅读笔记
一个Bitcask实例就是一个目录,我们保证在一个时刻只有一个系统进程可以打开Bitcask进行写操作。在一个时刻,只有一个文件是“active”的。当文件达到一定的大小限制就会关闭,并创建一个新的“active”文件。一旦一个文件关闭了,就视为是不可变的,即不会再打开来进行写操作。“active”file是以追加的方式来进行写操作,意味着顺序写不会导致磁盘搜索。一个key-value ...原创 2018-12-28 12:26:12 · 854 阅读 · 0 评论 -
RabbitMQ入门
安装rabbitmq依赖于erlang,所以要先安装erlang:sudo apt-get install erlang然后安装rabbitmq:sudo apt-get install rabbitmq-server运行sudo rabbitmq-server -detached 查看状态:sudo rabbitmqctl status查看集群状态:sudo rabb...原创 2018-12-26 14:22:55 · 168 阅读 · 0 评论 -
分布式系统之CAP和BASE理论
CAP定理一致性(Consistency)在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致性的特性。可用性(Availability)可用性是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。分区容错性(Partition tolerance)分布式系统在遇到任何网络分区故障时,仍然需要能够保证对外提供满足一致性和可用性的服务...原创 2018-11-13 12:41:31 · 267 阅读 · 0 评论 -
五分钟了解什么是Google文件系统(GFS)?
引子以前有人问过我C++的.h文件和.cpp文件的组织方式,当时很随口的回答,.h中是类的声明,.cpp中是类的实现。最近要实现简单二叉树结构,所以用到队列类,我以queue.h,queue.cpp,最后用main.cpp作为测试文件,queue.cpp中#include “queue.h”,并在main.cpp中#include “queue.h”,想来这是常规的文件组织方式,不会错的。结...原创 2018-09-18 13:02:45 · 7744 阅读 · 0 评论 -
Google leveldb学习笔记一:基本架构与安装使用
简介LevelDB是一个Google编写的快速键值存储库,它提供从字符串键到字符串值的有序映射。基本架构LSM树存储引擎先说什么是存储引擎:存储引擎是存储系统的发动机,直接决定了存储系统能够提供的性能和功能存储系统的基本功能包括:增删读改,读取操作又可以分为随机读取和顺序扫描哈希存储引擎是哈希表的持久化表现,不支持顺序扫描,对应的存储系统为键值存储系统B-Tree...原创 2018-09-10 21:24:23 · 817 阅读 · 0 评论 -
什么是分布式存储系统?
分布式存储系统定义分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务特性可扩展低成本高性能易用挑战分布式存储系统的挑战主要在于数据、状态信息的持久化,要求在自动迁移、自动容错、并发读写的过程中保证数据的一致性。分布式存储涉及的技术主要来自两个领域:分布式系统以及数据库。 + 数据分布 + 一致性 + 容错 + 负载均衡...原创 2018-09-09 10:03:22 · 6538 阅读 · 0 评论 -
分布式实时处理系统Hurricane的架构
Hurricane总体架构图各部件介绍Spout是消息源,拓扑结构中所有的数据都来自消息源,而消息源也是拓扑结构中消息流的源头。Bolt是消息处理单元,负责接收来自消息源或数据处理单元的数据 流,并对数据进行逻辑处理,然后转发到下一个消息处理单元,基本封装了所有的数据处理逻辑。SpoutExecutor是一个线程,是所有消息源的执行者,每一个SpoutExecutor负责执行一...原创 2018-09-08 21:20:07 · 1065 阅读 · 0 评论