代码改变世界

Etcd中Raft linearizable read实现

2021-06-27 20:30 by DoPeter, 556 阅读, 0 推荐, 收藏, 编辑
摘要:linearizable 有点疑惑,不确定是现在浏览的版本没开发完全,还是没有按照论文的linearizable来实现。 按照论文所说,在客户端请求的时候,实际上是一个强一致的 exactly once的过程。 在etcd中,只看到了read的 linearizable ,并且用到的地方是在诸如读取 阅读全文

Etcd中Raft joint consensus的实现

2021-06-12 15:02 by DoPeter, 743 阅读, 1 推荐, 收藏, 编辑
摘要:Joint consensus 分为2个阶段,first switches to a transitional configuration we call joint consensus; once the joint consensus has been committed, the system 阅读全文

Etcd中Raft log replication的实现

2021-05-15 20:19 by DoPeter, 495 阅读, 0 推荐, 收藏, 编辑
摘要:Raft state of log commitIndex : A log entry is committed once the leader that created the entry has replicated it on a majority of the servers. 在大多数服务 阅读全文

Rust中Move语义下的Copy与Clone

2021-02-24 00:34 by DoPeter, 2261 阅读, 1 推荐, 收藏, 编辑
摘要:问题 在写Rust代码的时候,在遇到函数、闭包甚至是循环等作用域的切换时,不知道当前要操作的对象是被borrow或者move,所以经常会报一些错误,想借用一些示例来测试切换作用域时Rust会做一些什么操作,也由此延伸出了Copy与Clone的操作差异 测试场景 使用多线程、闭包来模拟作用域的切换 测 阅读全文

docker 快速搭建 mysql

2018-12-23 03:56 by DoPeter, 660 阅读, 0 推荐, 收藏, 编辑
摘要:准备工作 系统 centos7 切换阿里源 #备份资源文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #导入阿里云Centos7源 curl -o /etc/yum.repos.d/Ce 阅读全文

Redis常用特性

2018-11-04 04:12 by DoPeter, 1021 阅读, 0 推荐, 收藏, 编辑
摘要:发布订阅 ·服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,而UNSUBSCRIBE命令则负责解除客户端和被退订频道之间的关联。 ·服务器状态在pubsub_patterns链表保存了所有模式的订阅关系:PS 阅读全文

Redis多机数据库

2018-11-03 07:37 by DoPeter, 680 阅读, 0 推荐, 收藏, 编辑
摘要:复制 PSYNC命令具有完整重同步(full resynchronization)和部分重同步(partial resynchronization)两种模式: ·其中完整重同步用于处理初次复制情况:完整重同步的执行步骤和SYNC命令的执行步骤基本一样,它们都是通过让主服务器创建并发送RDB文件,以及 阅读全文

Redis单机数据库

2018-11-03 07:04 by DoPeter, 607 阅读, 0 推荐, 收藏, 编辑
摘要:单机数据库 ·Redis服务器的所有数据库都保存在redisServer.db数组中,而数据库的数量则由redisServer.dbnum属性保存。 ·客户端通过修改目标数据库指针,让它指向redisServer.db数组中的不同元素来切换不同的数据库。 ·数据库主要由dict和expires两个字 阅读全文

Redis基础对象

2018-11-02 01:14 by DoPeter, 292 阅读, 0 推荐, 收藏, 编辑
摘要:Redis 中每个对象都由一个 redisObject 结构表示 type属性记录对象的类型 对于Redis数据库保存的键值对来说,键总是一个字符串对象,而值则可以是字符串对象、列表对象、哈希对象、集合对象或者有序集合对象的其中一种。 字符串对象 字符串对象的编码可以是 int、raw 或者 emb 阅读全文

Redis基础数据结构

2018-11-02 00:47 by DoPeter, 362 阅读, 0 推荐, 收藏, 编辑
摘要:Redis数据库中每个键值对都是由对象( c 的结构体对象)组成的。 数据库键总是一个字符串对象(string object) 数据库键的值可以使字符串对象、列表对象(list object)、哈希对象(hash object)、集合对象(set object)、有序集合对象(sorted set 阅读全文