Bitcoin 论文阅读 相关背景2008 年,中本聪设计出了比特币和区块链。在今天,区块链成为了热门的技术,其通过分布式账本技术和共识机制,构建了低成本互信机制。 区块链三个根本特性是去中心化、实现点对点的价值传递和低成本信任机制。 介绍区块链是一个划时代的技术,其使得我们能够不假装相信一个中央机构而实现可信的交易。 下面简单讨论一下一些设计要点: 首先,在公网的 P2P 系统中,我们必须设计出支持拜占庭容错的共识算法。 2021-05-25 分布式存储
Spanner 论文阅读 相关背景Google Spanner 是 Google 一篇跨时代的论文,开启了 NewSQL 时代的序幕。 其主要有三点特色: 2PC + 共识组来避免 2PC 的无限超时阻塞。 GPS 原子钟同步技术以支持快速的只读事务。 支持 ACID 的全球型 NewSQL 数据库。 介绍暂仅搬运一些资料,之后有时间再补。 6.824 讲义 6.824 视频 论文 Spanner 白皮书 Spann 2021-05-20 分布式存储 论文阅读 Google
Farm 论文阅读 相关背景Fram 结合了乐观事务和硬件优势,在保证可串行化的基础上实现了高性能的分布式事务框架。虽然其系统仅是一个原型系统,但其思想十分具有指导意义。 其主要利用了三点硬件特性: NV RAM:减少磁盘 IO 对性能的影响。(一次 RAM 写大致需要 200ns,一次 SSD 写大致需要 100us,一次 HDD 写大致需要 100ms) Kernal Bypass:本地应用直接与网卡交互,无系 2021-05-10 分布式系统理论 论文阅读
分布式事务简介 前言事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性。分布式事务则是尝试在多节点的环境下实现这些语义。 分布式事务涉及的知识内容较多,本篇博客并没有将其彻底整理清楚,只是简单记录了一下 6.824 课程所学。 内容对于分布式事务,可以将其细化为并发控制和原子提交两个子问题。前者是在说如何保证并发事务的串行隔离性,后者 2021-04-29 分布式系统理论
Aurora 论文阅读 相关背景Amazon Aurora 是一种与 MySQL 和 PostgreSQL 兼容的关系数据库,专为云而打造,既具有传统企业数据库的性能和可用性,又具有开源数据库的简单性和成本效益。 Amazon Aurora 的速度最高可以达到标准 MySQL 数据库的五倍、标准 PostgreSQL 数据库的三倍。它可以实现商用数据库的安全性、可用性和可靠性,而成本只有商用数据库的 1/10。 关于 A 2021-04-20 分布式存储 论文阅读
Frangipani 论文阅读 前言Frangipani 是一篇很古老的分布式存储论文,其设计思想在今天看来有很多已经过时了,但也有一定的参考意义。 该论文主要介绍了三个方面的工作: cache coherence distributed transactions distributed crash recovery 内容具体内容可以参考此 博客 和 6.824 课程的 讲义,后者较为详细。 有关后两个工作可以直接参考以上博 2021-04-10 分布式存储 论文阅读
Chain Replication 论文阅读 前言对于 raft、paxos 这类共识算法,leader 节点需要将客户端的写请求编号并发送给所有 follower 以期望达成共识,这一定程度上导致写性能无法随节点个数线性增长,因为 leader 同步的数据量会随着节点数的增长而增长,从而使得主节点承载着更大的压力,往往成为了瓶颈。 2004 年,Chain Replication (之后简称 cr)方案被提出,其也能够保证多副本间的线性一致 2021-04-09 分布式系统理论 共识算法 论文阅读
Zookeeper 论文阅读 前言Zookeeper 作为一个划时代的分布式协调服务,是 Hadoop 技术栈的重要组件。 本篇博客将讨论一些 zk 论文的知识点。 内容最近比较忙,没多少时间总结了,论文内容概要可以参考这篇 博客,更详细的细节可以参考这篇 博客。 讨论zk or etcd?同为分布式协调服务和元数据存储服务的产品:老大哥 zk 伴随 NoSQL 运动崛起,坐拥 hadoop 技术栈孤独求败;后起之秀 etcd 2021-04-08 分布式系统理论 共识算法 论文阅读
利用 IDEA 对分布式 IoTDB 进行调试 前言在单机数据库中,寻找 bug 相对较为简单。因为一旦可以复现 bug,那我们可以利用 IDE 在服务端打断点一步步执行并跟踪查看堆栈信息来判断代码出错的位置从而最终找到问题。 在分布式数据库中,找 bug 就变得相对困难了。一方面是因为分布式数据库较难利用 IDE 打断点,其往往通过打 log 的方式来记录错误情况,另一方面是一条客户端请求过来后往往伴随着若干并行和跨节点的 rpc,因此如果通 2021-04-07 IoTDB 开发工具配置
一致性模型与共识算法 前言有关一致性模型和共识算法的一致性模型这两个问题,最近阅读了一些优质博客,学到了一些新的东西,同时感觉一些定义比较混乱,特此记录一下自己的理解。 一致性模型一致性问题是分布式领域最为基础也是最重要的问题,具体来历可以参考此 博客。 一般来讲,分布式系统中的一致性按照对一致性要求的不同,主要分为强一致性,弱一致性这两大类,前者是基于 safety 的概念,后者是基于 liveness 的概念。 强 2021-04-02 分布式系统理论 共识算法