分布式系统(Distributed System)论文大全

举报
Leo Xiao 发表于 2020/05/19 10:22:43 2020/05/19
【摘要】 分布式系统,数据库,大数据,云计算,云存储

转自Git:https://github.com/ty4z2008/Qix/blob/master/ds.md

分布式系统(Distributed System)资料

希望转载的朋友,你可以不用联系我.但是一定要保留原文链接,因为这个项目还在继续也在不定期更新.希望看到文章的朋友能够学到更多.

介绍:这是一篇介绍在动态网络里面实现分布式系统重构的paper.论文的作者(导师)是MIT读博的时候是做分布式系统的研究的,现在在NUS带学生,不仅仅是分布式系统,还有无线网络.如果感兴趣可以去他的主页了解.

介绍:分布式编程实验室,他们发表的很多的paper,其中不仅仅是学术研究,还有一些工业界应用的论文.

介绍:麻省理工的分布式系统理论主页,作者南希·林奇在2002年证明了CAP理论,并且著《分布式算法》一书.

介绍:分布式系统搭建初期的一些建议

介绍:原文主要讲述了CAP理论中C在实践中的重要性。做分布式系统的都知道CAP只能三选其二。而且目前很多基础设置服务(云存储,云数据)都无法保证100%可用,那么就是间接的丢掉了A,推荐阅读以下文末推荐的You Can’t Sacrifice Partition Tolerance,分区容错也很重要

介绍:Verdi是一套正规验证分布式系统,开源的项目中有对raft协议实现。Verdi是通过TLA+ 和Coq 等形式方法对系统进行验证

介绍:学习分布式系统需要怎样的知识?

介绍:Facebook设计的分布式数据 图数据库

介绍:分布式系统初学者资源.

介绍:从0开始构建一个分布式日志。第一部分主要是讲日志的存储,截止到现在已经写到数据复制扩容之日志消耗权衡与思考快速实战。另外推荐作者写的现实世界中的分布式系统推论

介绍:伊利诺伊大学分布式系统进阶课程,涉及内容云的前世今生,大公司的在分布式计算上的工作(Mapreduce参考)、P2P系统滚、KV存储、基本的分布式算法(时钟同步,锁)、强一致性、分布式在机器学习上的应用、流处理、认证、事务处理、存储与复制、最终一致性、图处理、集群调度、分布式系统bug跟踪和性能测试、安全、缓存。

介绍:这篇文章没有理论,适合新手阅读分布式系统实践笔记

介绍:基于容器的分布式系统设计模式,文中提到了,单容器模式,所有的服务都集成在一个容器里面。单节点多容器模式,类似于kubernetes的Pods(任务组)。一个服务跨多个容器。对于这种模式可以分为Sidecar模式:譬如一个Web服务。Web由一个容器提供,日志处理由一个Logsaver容器提供。Ambassador模式(外交官模式)类似于SLB的设计模式,中间有一个代理容器用来分发功能到子容器。Adapter模式(适配器模式)主要是目的是想分布的执行和存储,统一的监控和管理。有点类似监控系统的设计,日志数据的输入不一,但是统一结果输出。多节点应用模式:这个分为选主模式(核心是选主算法)。Work Queue模式(工作队列模式)类似大规模电商系统的订单处理设计。Scatter/gather模式:有点类似MapRedue架构,分片处理,最后汇总结果。文章推荐容器设计模式

介绍: 在处理分布式系统的时候,很多经验告诉我们要尽量让服务无状态。而在实际分布式系统中,有状态的服务是一致存在的。例如消息队列、数据库存储服务。本文介绍了如何构建有状态的服务,如果保证有状态化服务的高可用。

介绍:使用Maximizing Hit Density提高缓存命中.

介绍:混沌工程是在分布式系统上进行实验的学科, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。 大规模分布式软件系统的发展正在改变软件工程。作为一个行业,我们很快采用了提高开发灵活性和部署速度的实践。紧跟着这些好处的一个紧迫问题是:我们对投入生产的复杂系统中有多少信心?

介绍:Google SRE 讲解分布式系统Paxos算法。

介绍:Andy Pavlo组织的时序数据库系列演讲分享,InfluxDB存储引擎、QuasarDB内部剖析、TimescaleDB成长、Two Sigma时序数据库实践。

介绍:Andy Pavlo在卡内基梅隆大学的高级数据库课程,以论文导读的形式。有视频。并发控制,乐观并发控制、多版本并发控制、OLAP索引、数据库压缩、存储模型、日志协议、检查点协议、优化器的实现、执行计划、并行join、查询编译、内存数据库.

介绍:这篇论文是Paxos算法变种,规避了Paxos算法的复杂性。同时达到了RSM的高性能要求。github 上有开发者对这个算法进行了总结。已经有多种语言的实现方式。譬如Js和Golang版本的实现.

介绍:Facebook反作弊系统论文。

介绍:混合逻辑时钟。

介绍:Riffle:大规模分布式系统中的数据分析优化。

介绍:本文描述了Google第二代容器化调度服务Omega的设计与诞生。作者也有一份keynote。相关介绍视频

介绍:Percolator号称其取代MapReduce之后,Google的索引更新速度提升了100倍。它究竟是如何实现 “100” 这个刺眼的数字?当今的并行计算世界真的有如此大的提升空间吗?当我们满心欢喜以为又有新的算法、新的并行计算架构可以学习时,她却又为何跟你聊起了分布式事务?这篇文章将为您揭晓。中文版

介绍:设计数据密集型应用是一本讲述分布式系统的数据,作者是卡内基梅隆大学的研究员。本书的质量很高。详细讲述各种数据存储,包括关系型数据库、NoSQL、大数据存储、流处理系统等等,由浅入深、拨丝抽茧.适合给刚刚步入分布式系统大门的朋友.简译版

介绍:华盛顿大学分布式系统课程,老师是Tom Anderson。

介绍:这篇论文是Kafka的开发团队所著,讲述Kafka的设计和架构,在Linkedin中应用以及性能评估,相当于是消息系统领域的"GFS"论文。

介绍:这篇论文分析facebook在大规模使用Memcached的应用经验。如果高效的在分布式系统中利用缓存。通过缓存系统,研究员可以像tcpdump一样保存请求进行数据分析。如果是遇到大规模缓存使用的场景还是挺值得阅读。

介绍:F4 是 Facebook 为了降低存储成本而开发的,应用于只读可删除不可写场景的,对象存储系统。F4是建立在HDFS上,并阐述了它是如何应对HDFS的几处局限(即,增加了cross-data center replication和使用纠删码来减少复制因子)。通常,Facebook开发一个系统,都是非常实用的,都是为他们真实的使用案例量身打造的。

介绍:这篇论文是SOSP '13的论文。描述了各种由于编译器优化导致的正常人很难发现的 Bug。下面摘录一篇阅读笔记:

Undefined behavior 是编程语言规范对某段代码可能产生的某些执行结果未定义。Unstable code 就是在程序实际的执行过程中,由于涉及到undefined behavior,从而无法被编译器翻译(直接略过)的代码段。

STACK会在Assumption Δ被允许和不允许的情况下分别模拟编译。

先模拟假设不成立的情况进行一次编译;
模拟假设成立的情况进行一次编译;
查看前两步的执行结果有没有区别,有区别的地方就是 unstable code。
如果执行第二步时得不到准确的结果,那么会漏报一些unstable code;如果执行第一步时得不到准确的结果,就会产生误报(false warning / false positive)。目前stack给出的Undefined behavior pattern 可能不齐全。

对于程序员来说,通过fix bug或者去掉一些会被编译器当做是undefined behavior的代码;对于编译器来说,可以集成一些现有的bug-finding的工具,或者利用STACK的方式来判定unstable code;完善编程语言的specification,定义更多的代码执行规则,减少undefined behavior的产生。

STACK为了使可扩展性更高,在计算Δ = ∀e:Reach(e) → ¬Undef(e)的时候做了一些近似运算,使最后得到的结果可能会漏掉一些unstable code。STACK为了简化和滤过某些查询用到的constraint solver如果发生了timeout,也会出现漏报的情况。因此,STACK为了更好的扩展性,牺牲了一定的可靠性(精度)。

介绍:Jeff Dean 2013年发表的文章,讲述当用户的请求依赖大规模分布式系统来协作完成时,如何保证请求的响应时间?。里面提到几个关键:任务拆分、区分定时任务和后台任务、服务间调用超时处理、热点数据多副本.

介绍: ZooKeeper是一个分布式协调组件,它提供了一系列的基本原语,增、删、读、监听。例如这些可以实现很多高级的原语。例如锁(Zookeeper部署锁服务)、配置管理、主从管理。本文主要讲述了它的设计、应用以及测试结果。其中也讲到了它的高可用问题,是Chubby的开源版本.

介绍:Amazon Aurora是NewSQL的代表作品之一,与TiDB相比较有一些不同。不过两者都是为云而生的数据库,对横向伸缩天生的良好支持、failover。从论文中可以知道aurora通过log如何实现改善数据库的性能。Aurora的核心思想是尽可能的利用存储的性能,把计算节点下推到存储节点处理。

介绍:一致性:理论和实践。这篇是作者的博士论文,整篇论文围绕这个一致性相关主题展开。Raft算法基础、集群成员改变、客户端交互、Raft学习、验证、一致性实现和性能。作者把相关的公式和笔记放在github

介绍:对分布式系统的性能Debug非常困难,因为里面的问题很多都是非确定性的,而且无法重现。只能通过对log的挖掘,找出配对的调用/消息以定位问题。黑盒方案假定需要跟踪的除了上述信息之外没有额外的信息,这样使用统计回归技术来推断两者之间的关系.与之相对应的Google使用标注方案解决Debug问题,具体参考Dapper

介绍: 五分钟法则,此文与十年前的原始论文解释了一个量化公式,用来计算数据页是否应该缓存在内存中。能读到Jim Gray处理一系列相关问题(比如数据页应该多大)的方法,幸何如之。

介绍:威斯康星大学分布式系统课程,主要以阅读为主:网络(TCP、RPC、U-net、Thrift、虚拟网络),系统失效、分布式时钟、一致性、资源隔离与分配、安全、负载均衡、集群调度、文件系统、案例学习.

介绍: 流处理相关论文阅读列表。可以深入理解消息队列

介绍: 分布式系统领域论文笔记。里面推荐了很多相关论文,譬如:调度器(Scheduler)、存储(Storage)、一致性算法、图计算、虚拟化、沙箱、安全、网络.现在这个列表转移到了issue

介绍: 分布式系统跟踪,解释了为什么需要、跟踪什么、如何处理众多信息.

介绍: 微软发布分布式应用程序运行时(Dapr),这是一个开源项目,使每个开发人员更容易地构建微服务应用程序

介绍: 分布式预写日志

介绍: 设计实用的分布式系统阅读清单

介绍: 分布式共识问题一直以来是大规模系统的一个难题,本文讨论了一些分布式共识的通用解决方案。详细介绍

介绍: 这篇论文对比分布式共识算法Paxos和Raft。讨论了为什么对于诞生的2014年诞生的Raft算法如此受业界亲睐。使用Raft的理论来解释Paxos算法,通过类比的方式发现,两者在大体上是相类似的。不同点在于Leader选举。论文得出的结论是:Raft比Paxos更易用是因为论文解释的比较清楚。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。