http://research.microsoft.com/en-us/um/people/lamport/pubs/time-clocks.pdf 分布式系统的时钟同步是一个非常困难的问题,this paper致力于分布式系统的逻辑时钟同步问题. 文中有个结论值得注意:In a distributed system, it is important to realize that the order in which events occure is only a partial orderi…
Motivation <Time, Clocks, and the Ordering of Events in a Distributed System>大概是在分布式领域被引用的最多的一篇Paper了. 这篇Paper自己去年读过两次,最近尝试翻译了一下.第一是觉得太经典了,分布式领域必读论文:第二是想再加深下自己的理解. 英文水平有限,有兴趣还是建议读一下原文. Abstract 本文审视了在分布式系统中,一个事件发生在另一个事件之前(“happening before”)的概念,并用它描…
作者:Leslie Lamport(非常厉害的老头了) 在使用消息进行通信的分布式系统中,使用物理时钟对不同process进行时间同步与事件排序是非常困难的.一是因为不同process的时钟有差异,另外也是因为在计算中时间表示的精度也是有限的,两个时间标签相同的时间便无法区分前后了. Lamport提出逻辑时钟的概念.在同一process中,事件发生的顺序很容易定义与区分,不同process发生的独立时间认为是并发的(部分排序).而不同process间,只需要定义好相互通信时消息的发送和接收事件…
Events&Reactor系统 EVENT SYSTEM The Salt Event System is used to fire off events enabling third party applications or external processes to react to behavior within Salt. The event system uses a publish-subscribe pattern, otherwise know as pub/sub. Sal…
An improved memory model and implementation is disclosed. The memory model includes a Total Store Ordering (TSO) and Partial Store Ordering (PSO) memory model to provide a partial order for the memory operations which are issued by multiple processor…
今天读了几篇分布式相关的内容,记录一下.非经典论文,非系统化阅读,非严谨思考和总结.主要的着眼点在于分布式存储:好处是,跨越单台物理机器的计算和存储能力的限制,防止单点故障(single point of failure):常见方法是,做数据分区(data partition / sharding)以横向扩展,做数据复制(data replication)增加冗余度:难点是,如何在数据一致性(consistency).系统可用性(availability).分区容忍度(partition tol…
最近将老版本的mysql 实例倒入 percona 5.5.30,使用的是线上的全备,结果将mysql 库下的表也倒入了,这下可悲剧了,备份报错. 没办法,将mysql库下的数据倒出来,清空,再倒入percona的表结构,最后将数据重新灌进去,都不行,妥妥的要求重启... 没辙只能启用切换,主备从一通切+重启才搞定.…
今天读了几篇分布式相关的内容,记录一下.非经典论文,非系统化阅读,非严谨思考和总结.主要的着眼点在于分布式存储:好处是,跨越单台物理机器的计算和存储能力的限制,防止单点故障(single point of failure):常见方法是,做数据分区(data partition / sharding)以横向扩展,做数据复制(data replication)增加冗余度:难点是,如何在数据一致性(consistency).系统可用性(availability).分区容忍度(partition tol…
这个资料关于分布式系统资料,作者写的太好了.拿过来以备用 网址:https://github.com/ty4z2008/Qix/blob/master/ds.md 希望转载的朋友,你可以不用联系我.但是一定要保留原文链接,因为这个项目还在继续也在不定期更新.希望看到文章的朋友能够学到更多. <Reconfigurable Distributed Storage for Dynamic Networks> 介绍:这是一篇介绍在动态网络里面实现分布式系统重构的paper.论文的作者(导师)是MIT…
PART I GROUNDWORK CHAPTER 1 Introduction CHAPTER 2 One on One (101) CHAPTER 3 Overview of the Internet CHAPTER 4 More Than Two PART II FOUNDATIONS CHAPTER 5 Issues in Networking Graphics CHAPTER 6 Sockets and Middleware CHAPTER 7 Middleware and Messa…
1 Introduction 可能是因为之前的描述对大多数读者来说太过Greek了,Paxos作为一种实现容错的分布式系统的算法被认为是难以理解的.但事实上,它可能是最简单,最显而易见的分布式算法了.它的本质其实就是共识算法--the "synod" algorithm of.在下一节中我们将展示,该共识算法基本满足了所有我们想要它满足的特性.最后一节则展示了完整的Paxos算法,通过直接应用协商一致的状态虚拟机来构建分布式系统--这种方法应该是广为人知的,因为这可能是分布式系统理论中…
在上一篇文章中我们大致浏览了zookeeper的启动过程,并且提到在Zookeeper的启动过程中leader选举是非常重要而且最复杂的一个环节.那么什么是leader选举呢?zookeeper为什么需要leader选举呢?zookeeper的leader选举的过程又是什么样子的?本文的目的就是解决这三个问题. 首先我们来看看什么是leader选举.其实这个很好理解,leader选举就像总统选举一样,每人一票,获得多数票的人就当选为总统了.在zookeeper集群中也是一样,每个节点都会投票,如…
作者:廖君链接:https://www.zhihu.com/question/19868791/answer/88873783来源:知乎 分布式系统(Distributed System)资料 <Reconfigurable Distributed Storage for Dynamic Networks> 介绍:这是一篇介绍在动态网络里面实现分布式系统重构的paper.论文的作者(导师)是MIT读博的时候是做分布式系统的研究的,现在在NUS带学生,不仅仅是分布式系统,还有无线网络.如果感兴趣…
Paxos算法 Paxos Made Simple Leslie Lamport 2001.11.1 简介 Paxos算法,纯文本方式描述,非常简单. 1 介绍 为 实现具有容错能力的分布式系统而提出的Paxos算法,曾被认为难以理解,可能因为对于大部分读者而言,原来的描述是基于希腊故事的[5].[为了描述 Paxos算法,Lamport设计了一个虚拟的希腊城邦Paxos]实际上,它是最简单和直观的分布式算法之一[这个…,其实没那么简单吧].它的核心 是一个一致性算法——[5]中提出的“syno…
背景近期在重读"Dynamo: Amazon's Highly Available Key-value Store"(经典好文,推荐!).文章4.4 中聊到了Data Version为了提高可用性,Dynamo同意"更新"操作异步的传播到其他副本,当出现多个写事件并发运行时,可能会导致系统中出现多个版本号的对象.因为我们无法保证分布式系统中的多个结点的物理时钟是完美同步的,所以通过物理时钟来确定事件的时序是不靠谱的,但我们能够通过基于事件的逻辑时钟来构建部分有序的事…
Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现.本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的思想.如果对 Paxos 算法感兴趣,可以看我的另一篇文章:分布式系列文章--Paxos算法原理与推导 摘要 Raft 是用来管理复制日志(replicated log)的一致性协议.它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同.这使得 Raft 比 Pa…
The Paxos algorithm, when presented in plain English, is very simple. 我叫Leslie Lamport,我最屌. 1. 简介 用于实现高容错性分布式系统的Paxos算法,一直以来总是被认为是难以理解的,或许是因为对很多人来说,初始版本就像是"希腊语"一样(最初的论文是以希腊故事展开的形式)[5].实际上,它也算是最浅显易见的分布式算法之一了.它的核心就是一个一致性算法--论文[5]中的"synod"…
当我们说顺序时,我们在说什么? 日常思维中,顺序大部分情况会和时间关联起来,即时间的先后表示事件的顺序关系. 比如事件A发生在下午3点一刻,而事件B发生在下午4点,那么我们认为事件A发生在事件B之前,他们的顺序关系为先A后B. 上面的例子之所以成立是因为他们有相同的参考系,即他们的时间是对应的同一个物理时钟的时间.如果A发生的时间是北京时间,而B依赖的时间是东京时间,那么先A后B的顺序关系还成立吗? 如果没有一个绝对的时间参考,那么A和B之间还有顺序吗,或者说怎么断定A和B的顺序? 显而易见的,…
1,导论 ①如何在分布式环境下定义系统中所有事件的发生顺序?②分布式环境下多个进程竞争资源时如何互斥?③什么是偏序,偏序的作用是什么,有什么不足?④什么是全序,全序的作用是什么,有什么不足?⑤为什么需要物理时钟,物理时钟如何同步?下面来进行介绍. 2,偏序的定义.发生在先(happened before)关系 考虑单一的进程A,在某时刻发生了事件E1,经过一段时间后,发生事件E2,可以说:E1发生在E2前面.考虑多个进程,进程A向进程B发送消息,进程A发送消息时记为事件E1,进程B接收到进程A发…
最近看了下zookeeper的源码,先整理下leader选举机制 先看几个关键数据结构和函数 服务可能处于的状态,从名字应该很好理解 public enum ServerState { LOOKING, FOLLOWING, LEADING, OBSERVING; } 选票参数,还有Notification,参数也都差不多 static public class ToSend { long leader; //leader id long zxid; //选票的zxid long electio…
1. JMM的介绍 在上一篇文章中总结了线程的状态转换和一些基本操作,对多线程已经有一点基本的认识了,如果多线程编程只有这么简单,那我们就不必费劲周折的去学习它了.在多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?我的认识是,在多线程下代码执行的结果与预期正确的结果不一致,该代码就是线程不安全的,否则则是线程安全的.虽然这种回答似乎不能获取什么内容,可以google下.在<<深入理解Java虚拟机>>中看到的定义.原文如下: 当多个线程访问同一个对象时,如果不用考虑…
PacificA: Replication in log-based distributed storage systemshttp://research.microsoft.com:8082/pubs/66814/tr-2008-25.pdfhttps://www.microsoft.com/en-us/research/wp-content/uploads/2008/02/tr-2008-25.pdfViewstamped replication revisited. ZooKeeper:…
本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为<In search of an Understandable Consensus Algorithm (Extended Version)>(寻找一种易于理解的一致性算法). Raft 是一种用来管理日志复制的一致性算法.它和 Paxos 的性能和功能是一样的,但是它和 Paxos 的结构不一样:这使得 Raft 更容易理解并且更易于建立实际的系统.为了提高理解性,Raft 将一致性算法分为了几个部分,例如领导选取(leader…
Paxos一致性算法——分布式系统中的经典算法,论文本身也有一段有趣的故事.一致性问题是分布式系统的根本问题之一,在论文中,作者一步步的加强最初一致性问题(2.1节提出的问题)的约束条件,最终导出了一个可实现的一致性模型.当前Paxos算法的研究越来越多,相关实现也不少,而原论文依然是最不可少的资料.论文通篇没有一个数学公式,这是大牛的坚持![]中的是我个人的注释.先解释文中几个关键词的翻译:Proposal译为“议案”,由proposer提出,被aceeptor批准或否决Value译为“决议”…
1. JMM的介绍 在上一篇文章中总结了线程的状态转换和一些基本操作,对多线程已经有一点基本的认识了,如果多线程编程只有这么简单,那我们就不必费劲周折的去学习它了.在多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?我的认识是,在多线程下代码执行的结果与预期正确的结果不一致,该代码就是线程不安全的,否则则是线程安全的.虽然这种回答似乎不能获取什么内容,可以google下.在<<深入理解Java虚拟机>>中看到的定义.原文如下: 当多个线程访问同一个对象时,如果不用考虑…
1 Introduction 可能是因为之前的描述对大多数读者来说太过Greek了,Paxos作为一种实现容错的分布式系统的算法被认为是难以理解的.但事实上,它可能是最简单,最显而易见的分布式算法了.它的本质其实就是共识算法——the "synod" algorithm of.在下一节中我们将展示,该共识算法基本满足了所有我们想要它满足的特性.最后一节则展示了完整的Paxos算法,通过直接应用协商一致的状态虚拟机来构建分布式系统——这种方法应该是广为人知的,因为这可能是分布式系统理论中…
Oracle .NET Core Beta驱动已出,自己动手写EF Core Oracle https://www.cnblogs.com/yanweidie/p/9064609.html 使用.net core也有一段时间了,一直都没有Oracle官方的正式版驱动程序,更别说EF版本了.之前基于Oracle官方的.net core预览版本写了个Dapper的数据库操作实现,但是总感觉不太完美,有消息称Oracle官方的EF版本可能要到第三季度出了,还需要静静等待几个月的时间. 既然有了Beta…
建议先看论文原文再来看这篇文章,我不会对论文中的各个点都具体说明.仅仅是写一些我自己的想法,帮助理解. 大家都知道.分布式环境下.确定各个事件发生的顺序非常重要,不然就会发生一些麻烦的问题. 考虑一下这个问题:小明要用同学给的优惠码在京东上买一本书.如果京东的后台架构如图一所看到的.A是前端代理server,负责接收用户请求,B是优惠码验证server,当用户请求使用优惠码的时候,A会把请求发给B.让B来验证.C是日志server.专门存放日志.系统中的不论什么一个操作都会记录到日志server…
作者:廖君链接:https://www.zhihu.com/question/19868791/answer/88873783来源:知乎 分布式系统(Distributed System)资料 <Reconfigurable Distributed Storage for Dynamic Networks> 介绍:这是一篇介绍在动态网络里面实现分布式系统重构的paper.论文的作者(导师)是MIT读博的时候是做分布式系统的研究的,现在在NUS带学生,不仅仅是分布式系统,还有无线网络.如果感兴趣…
I will just give the analogy with which I understand memory consistency models (or memory models, for short). It is inspired by Leslie Lamport's seminal paper "Time, Clocks, and the Ordering of Events in a Distributed System". The analogy is apt…