转自:https://github.com/ty4z2008/Qix/blob/master/ds.md
分布式系统(Distributed System)资料
希望转载的朋友,你可以不用联系我.但是一定要保留原文链接,因为这个项目还在继续也在不定期更新.希望看到文章的朋友能够学到更多.
- 《Reconfigurable Distributed Storage for Dynamic Networks》
介绍:这是一篇介绍在动态网络里面实现分布式系统重构的paper.论文的作者(导师)是MIT读博的时候是做分布式系统的研究的,现在在NUS带学生,不仅仅是分布式系统,还有无线网络.如果感兴趣可以去他的主页了解.
- 《Distributed porgramming liboratory》
介绍:分布式编程实验室,他们发表的很多的paper,其中不仅仅是学术研究,还有一些工业界应用的论文.
- 《MIT Theory of Distributed Systems》
介绍:麻省理工的分布式系统理论主页,作者南希·林奇在2002年证明了CAP理论,并且著《分布式算法》一书.
- 《Notes on Distributed Systems for Young Bloods》
介绍:分布式系统搭建初期的一些建议
- 《Principles of Distributed Computing》
介绍:分布式计算原理课程
- 《Google's Globally-Distributed Database》
介绍:Google全球分布式数据介绍,中文版
- 《The Architecture Of Algolia’s Distributed Search Network》
介绍:Algolia的分布式搜索网络的体系架构介绍
- 《Build up a High Availability Distributed Key-Value Store》
介绍:构建高可用分布式Key-Value存储系统
- 《Distributed Search Engine with Nanomsg and Bond》
介绍:Nanomsg和Bond的分布式搜索引擎
- 《Distributed Processing With MongoDB And Mongothon》
介绍:使用MongoDB和Mongothon进行分布式处理
- 《Salt: Combining ACID and BASE in a Distributed Database》
介绍:分布式数据库中把ACID与BASE结合使用.
- 《Makes it easy to understand Paxos for Distributed Systems》
介绍:理解的Paxos的分布式系统,参考阅读:关于Paxos的历史
- 《There is No Now Problems with simultaneity in distributed systems》
介绍:There is No Now Problems with simultaneity in distributed systems
- 《Distributed Systems》
介绍:伦敦大学学院分布式系统课程课件.
- 《Distributed systems for fun and profit》
介绍:分布式系统电子书籍.
- 《Distributed Systems Spring 2015》
介绍:卡内基梅隆大学春季分布式课程主页
- 《Distributed Systems: Concepts and Design (5th Edition)》
介绍: 电子书,分布式系统概念与设计(第五版)
- 《走向分布式》
介绍:这是一位台湾网友 ccshih 的文字,短短的篇幅介绍了分布式系统的若干要点。pdf
- 《Introduction to Distributed Systems Spring 2013》
介绍:清华大学分布式系统课程主页,里面的schedule栏目有很多宝贵的资源
- 《Distributed systems》
介绍:免费的在线分布式系统书籍
- 《Some good resources for learning about distributed computing》
介绍:Quora上面的一篇关于学习分布式计算的资源.
- 《Spanner: Google’s Globally-Distributed Database》
介绍:这个是第一个全球意义上的分布式数据库,也是Google的作品。其中介绍了很多一致性方面的设计考虑,为了简单的逻辑设计,还采用了原子钟,同样在分布式系统方面具有很强的借鉴意义.
- 《The Chubby lock service for loosely-coupled distributed systems》
介绍:Google的统面向松散耦合的分布式系统的锁服务,这篇论文详细介绍了Google的分布式锁实现机制Chubby。Chubby是一个基于文件实现的分布式锁,Google的Bigtable、Mapreduce和Spanner服务都是在这个基础上构建的,所以Chubby实际上是Google分布式事务的基础,具有非常高的参考价值。另外,著名的zookeeper就是基于Chubby的开源实现.推荐The google stack,Youtube:The Chubby lock service for loosely-coupled distributed systems
- 《Sinfonia: a new paradigm for building scalable distributed systems》
介绍:这篇论文是SOSP2007的Best Paper,阐述了一种构建分布式文件系统的范式方法,个人感觉非常有用。淘宝在构建TFS、OceanBase和Tair这些系统时都充分参考了这篇论文.
- 《Data-Intensive Text Processing with MapReduce》
介绍:Ebook:Data-Intensive Text Processing with MapReduce.
- 《Design and Implementation of a Query Processor for a Trusted Distributed Data Base Management System》
介绍:Design and Implementation of a Query Processor for a Trusted Distributed Data Base Management System.
- 《Distributed Query Processing》
介绍:分布式查询入门.
- 《Distributed Systems and the End of the API》
介绍:分布式系统和api总结.
- 《Distributed Query Reading》
介绍:分布式系统阅读论文,此外还推荐github上面的一个论文列表The Distributed Reader。
- 《Replication, atomicity and order in distributed systems》
介绍:Replication, atomicity and order in distributed systems
- 《MIT course:Distributed Systems》
介绍:2017年MIT分布式系统课程主页,用Golang作为授课语言。6.824 Distributed Systems课程主页.课程的课堂测试Past Exams可以很好的考察学习的结果。对于学习分布式系统比较推荐这个课程
- 《Distributed systems for fun and profit》
介绍:免费分布式系统电子书。
- 《Ori:A Secure Distributed File System》
介绍:斯坦福开源的分布式文件系统。
- 《Availability in Globally Distributed Storage Systems》
介绍:Google论文:设计一个高可用的全球分布式存储系统。
- 《Calvin: Fast Distributed Transactions For Partitioned Database Systems》
介绍:对于分区数据库的分布式事务处理。
- 《Distributed Systems Building Block: Flake Ids》
介绍:Distributed Systems Building Block: Flake Ids.
- 《Introduction to Distributed System Design》
介绍:Google Code University课程,如何设计一个分布式系统。
- 《Sheepdog: Distributed Storage System for KVM》
介绍:KVM的分布式存储系统.
- 《Readings in Distributed Systems Systems》
介绍:分布式系统课程列表,包括数据库、算法等.
- 《Tera》
介绍:来自百度的分布式表格系统.
- 《Distributed systems: for fun and profit》
介绍:分布式系统的在线电子书.
- 《Distributed Systems Reading List》
介绍:分布式系统资料,此外还推荐Various articles about distributed systems.
- 《Designs, Lessons and Advice from Building Large Distributed Systems》
介绍:Designs, Lessons and Advice from Building Large Distributed Systems.
- 《Testing a Distributed System》
介绍:Testing a distributed system can be trying even under the best of circumstances.
- 《The Google File System》
介绍: 基于普通服务器构建超大规模文件系统的典型案例,主要面向大文件和批处理系统, 设计简单而实用。 GFS是google的重要基础设施, 大数据的基石, 也是Hadoop HDFS的参考对象。 主要技术特点包括: 假设硬件故障是常态(容错能力强), 64MB大块, 单Master设计,Lease/链式复制, 支持追加写不支持随机写.
- 《Bigtable: A Distributed Storage System for Structured Data》
介绍:支持PB数据量级的多维非关系型大表, 在google内部应用广泛,大数据的奠基作品之一 , Hbase就是参考BigTable设计。 Bigtable的主要技术特点包括: 基于GFS实现数据高可靠, 使用非原地更新技术(LSM树)实现数据修改, 通过range分区并实现自动伸缩等.中文版
- 《PacificA: Replication in Log-Based Distributed Storage Systems》
介绍:面向log-based存储的强一致的主从复制协议, 具有较强实用性。 这篇文章系统地讲述了主从复制系统应该考虑的问题, 能加深对主从强一致复制的理解程度。 技术特点: 支持强一致主从复制协议, 允许多种存储实现, 分布式的故障检测/Lease/集群成员管理方法.
- 《Object Storage on CRAQ, High-throughput chain replication for read-mostly workloads》
介绍:分布式存储论文:支持强一直的链式复制方法, 支持从多个副本读取数据,实现code.
- 《Finding a needle in Haystack: Facebook’s photo storage》
介绍:Facebook分布式Blob存储,主要用于存储图片. 主要技术特色:小文件合并成大文件,小文件元数据放在内存因此读写只需一次IO.
- 《Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency》
介绍: 微软的分布式存储平台, 除了支持类S3对象存储,还支持表格、队列等数据模型. 主要技术特点:采用Stream/Partition两层设计(类似BigTable);写错(写满)就封存Extent,使得副本字节一致, 简化了选主和恢复操作; 将S3对象存储、表格、队列、块设备等融入到统一的底层存储架构中.
- 《Paxos Made Live – An Engineering Perspective》
介绍:从工程实现角度说明了Paxo在chubby系统的应用, 是理解Paxo协议及其应用场景的必备论文。 主要技术特点: paxo协议, replicated log, multi-paxo.参考阅读:关于Paxos的历史
- 《Dynamo: Amazon’s Highly Available Key-Value Store》
介绍:Amazon设计的高可用的kv系统,主要技术特点:综和运用一致性哈希,vector clock,最终一致性构建一个高可用的kv系统, 可应用于amazon购物车场景.新内容来自分布式存储必读论文
- 《Efficient Replica Maintenance for Distributed Storage Systems》
介绍:分布式存储系统中的副本存储问题.
- 《PADS: A Policy Architecture for Distributed Storage Systems》
介绍:分布式存储系统架构.
- 《The Chirp Distributed Filesystem》
介绍:开源分布式文件系统Chirp,对于想深入研究的开发者可以阅读文章的相关Papers.
- 《Time, Clocks, and the Ordering of Events in a Distributed System》
介绍:经典论文分布式时钟顺序的实现原理.
- 《Making reliable distributed systems in the presence of sodware errors》
介绍:面向软件错误构建可靠的分布式系统,中文笔记.
- 《MapReduce: Simplified Data Processing on Large Clusters》
介绍:MapReduce:超大集群的简单数据处理.
- 《Distributed Computer Systems Engineering》
介绍:麻省理工的分布式计算课程主页,里面的ppt和阅读列表很多干货.
- 《The Styx Architecture for Distributed Systems》
介绍:分布式系统Styx的架构剖析.
- 《What are some good resources for learning about distributed computing? Why?》
介绍:Quora上面的一个问答:有哪些关于分布式计算学习的好资源.
- 《RebornDB: The Next Generation Distributed Key-Value Store》
介绍:下一代分布式k-v存储数据库.
- 《Operating System Concepts Ninth Edition》
介绍:分布式系统归根结底还是需要操作系统的知识,这是耶鲁大学的操作系统概念书籍首页,里面有提供了第8版的在线电子版和最新的学习操作系统指南,学习分布式最好先学习操作系统.
- 《The Log: What every software engineer should know about real-time data's unifying abstraction》
介绍:分布式系统Log剖析,非常的详细与精彩. 中文翻译 | 中文版笔记.
- 《Operating Systems Study Guide》
介绍:分布式系统基础之操作系统学习指南.
- 《分布式系统领域经典论文翻译集》
介绍:分布式系统领域经典论文翻译集.
- 《Maintaining performance in distributed systems》
介绍:分布式系统性能维护.
- 《Computer Science from the Bottom Up》
介绍:计算机科学,自底向上,小到机器码,大到操作系统内部体系架构,学习操作系统的另一个在线好材料.
- 《Operating Systems: Three Easy Pieces》
介绍:<操作系统:三部曲>在线电子书,虚拟、并发、持续.
- 《Database Systems: reading list》
介绍:数据库系统经典论文阅读列,此外推送github上面的db reading.
- 《Unix System Administration》
介绍:Unix System Administration ebook.
- 《The Amoeba Distributed Operating System》
介绍:分布式系统经典论文.
- 《Principles of Computer Systems》
介绍:计算机系统概念,以分布式为主.此外推荐Introduction to Operating Systems笔记
- 《Person page of EMİN GÜN SİRER》
介绍:推荐康奈尔大学的教授EMİN GÜN SİRER的主页,他的研究项目有分布式,数据存储。例如HyperDex数据库就是他的其中一个项目之一.
- 《Scalable, Secure, and Highly Available Distributed File Access》
介绍:来自卡内基梅隆如何构建可扩展的、安全、高可用性的分布式文件系统,其他papers.
- 《Distributed (Deep) Machine Learning Common》
介绍:分布式机器学习常用库.
- 《The Datacenter as a Computer》
介绍:介绍了如何构建仓储式数据中心,尤其是对于现在的云计算,分布式学习来说很有帮助.本书是Synthesis Lectures on Computer Architecture系列的书籍之一,这套丛书还有 《The Memory System》,《Automatic Parallelization》,《Computer Architecture Techniques for Power Efficiency》,《Performance Analysis and Tuning for General Purpose Graphics Processing Units》,《Introduction to Reconfigurable Supercomputing》,Memory Systems Cache, DRAM, Disk 等
- 《helsinki:Distributed Systems Course slider》
介绍:来自芬兰赫尔辛基的分布式系统课程课件:什么是分布式,复制,一致性,容错,同步,通信.
- 《TiDB is a distributed SQL database》
介绍:分布式数据库TiDB,Golang开发.
- 《S897: Large-Scale Systems》
介绍:课程资料:大规模系统.
- 《Large-scale L-BFGS using MapReduce》
介绍:使用MapReduce进行大规模分布式集群环境下并行L-BFGS.
- 《Twitter是如何构建高性能分布式日志的》
介绍:Twitter是如何构建高性能分布式日志的.
- 《Distributed Systems: When Limping Hardware Is Worse Than Dead Hardware》
介绍:在分布式系统中某个组件彻底死了影响很小,但半死不活(网络/磁盘),对整个系统却是毁灭性的.
- 《Tera - 高性能、可伸缩的结构化数据库》
介绍:来自百度的分布式数据库.
- 《SequoiaDB is a distributed document-oriented NoSQL Database》
介绍:SequoiaDB分布式文档数据库开源.
- 《Readings in distributed systems》
介绍:这个网址里收集了一堆各TOP大学分布式相关的课程.
- 《Paxos vs Raft》
介绍:这个网站是Raft算法的作者为教授Paxos和Raft算法做的,其中有两个视频链接,分别讲上述两个算法.参考阅读:关于Paxos的历史
- 《A Scalable Content-Addressable Network》
介绍:A Scalable Content-Addressable Network.
- 《500 Lines or Less》
介绍:这个项目其实是一本书( The Architecture of Open Source Applications)的源代码附录,是一堆大牛合写的.
- 《MIT 6.824 Distributed System》
介绍:这只是一个课程主页,没有上课的视频,但是并不影响你跟着它上课:每一周读两篇课程指定的论文,读完之后看lecture-notes里对该论文内容的讨论,回答里面的问题来加深理解,最后在课程lab里把所看的论文实现。当你把这门课的作业刷完后,你会发现自己实现了一个分布式数据库.
- 《HDFS-alike in Go》
介绍:使用go开发的分布式文件系统.
- 《What are some good resources for learning about distributed computing? Why?》
介绍:Quora上关于学习分布式的资源问答.
- 《SeaweedFS is a simple and highly scalable distributed file system》
介绍:SeaweedFS是使用go开发的分布式文件系统项目,代码简单,逻辑清晰.
- 《Codis - yet another fast distributed solution for Redis》
介绍:Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别
- 《Paper: Coordination Avoidance In Distributed Databases By Peter Bailis》
介绍:Coordination Avoidance In Distributed Databases.
- 《从零开始写分布式数据库》
介绍:本文以TiDB 源码为例.
- 《what we talk about when we talk about distributed systems》
介绍:分布式系统概念梳理,为分布式系统涉及的主要概念进行了梳理.
- 《Distributed locks with Redis》
介绍:使用Redis实现分布式锁.
- 《CS244b: Distributed Systems》
介绍: 斯坦福2014年秋季分布式课程.
- 《RAMP Made Easy》
介绍: 分布式的“读原子性”.
- 《Strategies and Principles of Distributed Machine Learning on Big Data》
介绍: 大数据分布式机器学习的策略与原理.
- 《Distributed Systems: What is the CAP theorem?》
介绍: 分布式CAP法则.
- 《How should I start to learn distributed storage system as a beginner?》
介绍: 新手如何步入分布式存储系统.
- 《Cassandra - A Decentralized Structured Storage System》
介绍: 分布式存储系统Cassandra剖析,推荐白皮书Introduction to Apache Cassandra.
- 《What is the best resource to learn about distributed systems?》
介绍: 分布式系统学习资源.
- 《What are some high performance TCP hacks?》
介绍: 一些高性能TCP黑客技巧.
- 《Maintaining performance in distributed systems》
介绍:分布式系统性能提升.
- 《A simple totally ordered broadcast protocol》
介绍:Benjamin Reed 和 Flavio P.Junqueira 所著论文,对Zab算法进行了介绍,zab算法是Zookeeper保持数据一致性的核心,在国内有很多公司都使用zookeeper做为分布式的解决方案.推荐与此相关的一篇文章ZooKeeper’s atomic broadcast protocol: Theory and practice.
- 《zFS - A Scalable Distributed File System Using Object Disk》
介绍:可扩展的分布式文件系统ZFS,The Zettabyte File System,End-to-end Data Integrity for File Systems: A ZFS Case Study.
- 《A Distributed Haskell for the Modern Web》
介绍:分布式Haskell在当前web中的应用.
- 《Reasoning about Consistency Choices in Distributed Systems》
介绍:POPL2016的论文,关于分布式系统一致性选择的论述,POPL所接受的论文,github上已经有人整理.
- 《Paxos Made Simple》
介绍:Paxos让分布式更简单.译文.参考阅读:关于Paxos的历史,understanding Paxos part1,Understanding Paxos – Part 2.Quora: What is a simple explanation of the Paxos algorithm?,Tutorial Summary: Paxos Explained from Scratch,Paxos algorithm explained, part 1: The essentials,Paxos algorithm explained, part 2: Insights
- 《Consensus Protocols: Paxos》
介绍:分布式系统一致性协议:Paxos.参考阅读:关于Paxos的历史
- 《Consensus on Transaction Commit》
介绍:事务提交的一致性探讨.
- 《The Part-Time Parliaments》
介绍:在《The Part-Time Parliament》中描述了基本协议的交互过程。在基本协议的基础上完善各种问题得到了最终的议会协议。 为了让人更容易理解《The Part-Time Parliament》中描述的Paxos算法,Lamport在2001发表了《Paxos Made Simple》,以更平直的口头语言描述了Paxos,而没有包含正式的证明和数学术语。《Paxos Made Simple》中,将算法的参与者更细致的划分成了几个角色:Proposer、Acceptor、Learner。另外还有Leader和Client.参考阅读:关于Paxos的历史
- 《Paxos Made Practical》
介绍:看这篇论文时可以先看看理解Paxos Made Practical.
- 《PaxosLease: Diskless Paxos for Leases》
介绍:PaxosLease:实现租约的无盘Paxos算法,译文.
- 《Paxos Made Moderately Complex》
介绍:Paxos算法实现,译文,同时推荐42 Paxos Made Moderately Complex.
- 《Hadoop Reading List》
介绍:Hadoop学习清单.
- 《Hadoop Reading List》
介绍:Hadoop学习清单.
- 《2010 NoSQL Summer Reading List》
介绍:NoSQL知识清单,里面不仅仅包含了数据库阅读清单还包含了分布式系统资料.
- 《Raft: In search of an Understandable Consensus Algorithm》
介绍:aft 是一种用来管理日志复制的一致性算法。它和 Paxos 的性能和功能是一样的,但是它和 Paxos 的结构不一样;这使得 Raft 更容易理解并且更易于建立实际的系统。中文版
- 《Raft: Understandable Distributed Consensus》
介绍:Raft可视化图帮助理解分布式一致性
- 《Etcd:Distributed reliable key-value store for the most critical data of a distributed system》
介绍:Etcd分布式Key-Value存储引擎
- 《Understanding Availability》
介绍:理解peer-to-peer系统中的可用性究竟是指什么.同时推荐基于 Peer-to-Peer 的分布式存储系统的设计
- 《Process structuring, synchronization, and recovery using atomic actions》
介绍:经典论文
- 《Programming Languages for Parallel Processing》
介绍:并行处理的编程语音
- 《Analysis of Six Distributed File Systems》
介绍:此篇论文对HDFS,MooseFS,iRODS,Ceph,GlusterFS,Lustre六个存储系统做了详细分析.如果是自己研发对应的存储系统推荐先阅读此篇论文
- 《A Survey of Distributed File Systems》
介绍:分布式文件系统综述
- 《Concepts of Concurrent Programming》
介绍:并行编程的概念,同时推荐卡内基梅隆工程师数字图书馆
- 《Concurrency Control Performance Modeling:Alternatives and Implications》
介绍:并发控制性能建模:选择与意义
- 《Distributed Systems - Concepts and Design 5th Edition》
介绍:ebook分布式系统概念与设计
- 《分布式系统设计的形式方法》
介绍:分布式系统设计的形式方法
- 《互斥和选举算法》
介绍:互斥和选举算法
- 《Actors:A model Of Concurrent Cornputation In Distributed Systems》
介绍:经典论文
- 《Security Engineering: A Guide to Building Dependable Distributed Systems》
介绍:如何构建一个安全可靠的分布式系统,About the Author,Bibliography:文献资料,章节访问把链接最后的01换成01-27即可
- 《15-712 Advanced and Distributed Operating Systems》
介绍:卡内基梅隆大学的分布式系统博士生课程主页,有很丰富的资料
- 《Dapper, Google's Large-Scale Distributed Systems Tracing Infrastructure》
介绍:Dapper,大规模分布式系统的跟踪系统,译文,译文对照
- 《CS262a: Advanced Topics in Computer Systems》
介绍:伯克利大学计算机系统进阶课程,内容有深度,涵盖分布式,数据库等内容
- 《Egnyte Architecture: Lessons Learned In Building And Scaling A Multi Petabyte Distributed System》
介绍:PB级分布式系统构建/扩展经验
- 《CS162: Operating Systems and Systems Programming》
介绍:伯克利大学计算机系统课程:操作系统与系统编程
- 《MDCC: Multi-Data Center Consistency》
介绍:MDCC主要解决跨数据中心的一致性问题中间件,一种新的协议
- 《Research at Google:Distributed Systems and Parallel Computing》
介绍:google公开对外发表的分布式系统与并行计算论文
- 《HDFS Architecture Guide》
介绍:分布式文件系统HDFS架构
- 《ActorDB distributed SQL database》
介绍:分布式 Key/Value数据库
- 《An efficient data location protocol for self-organizing storage clusters》
介绍:是著名的Ceph的负载平衡策略,文中提出的几种策略都值得尝试,比较赞的一点是可以对照代码体会和实践,如果你还需要了解可以看看Ceph:一个 Linux PB 级分布式文件系统,除此以外,论文的引用部分也挺值得阅读的,同时推荐Ceph: A Scalable, High-Performance Distributed File System
- 《A Self-Organizing Storage Cluster for Parallel Data-Intensive Applications》
介绍:Surrento的冷热平衡策略就采用了延迟写技术
- 《HBA: Distributed Metadata Management for Large Cluster-Based Storage Systems》
介绍:对于分布式存储系统的元数据管理.
- 《Server-Side I/O Coordination for Parallel File Systems》
介绍:服务器端的I/O协调并行文件系统处理,网络,文件存储等都会涉及到IO操作.不过里面涉及到很多技巧性的思路在实践时需要斟酌
- 《Distributed File Systems: Concepts and Examples》
介绍:分布式文件系统概念与应用
- 《CSE 221: Graduate Operating Systems》
介绍:加利福尼亚大学的研究生操作系统课程主页,论文很值得阅读
- 《S4: Distributed Stream Computing Platform》
介绍:Yahoo出品的流式计算系统,目前最流行的两大流式计算系统之一(另一个是storm),Yahoo的主要广告计算平台
- 《Pregel: a system for large-scale graph processing》
介绍:Google的大规模图计算系统,相当长一段时间是Google PageRank的主要计算系统,对开源的影响也很大(包括GraphLab和GraphChi)
- 《GraphLab: A New Framework for Parallel Machine Learning》
介绍:CMU基于图计算的分布式机器学习框架,目前已经成立了专门的商业公司,在分布式机器学习上很有两把刷子,其单机版的GraphChi在百万维度的矩阵分解都只需要2~3分钟;
- 《F1: A Distributed SQL Database That Scales》
介绍:这篇论文是Google 2013年发表的,介绍了F1的架构思路,13年时就开始支撑Google的AdWords业务,另外两篇介绍文章F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business .Google NewSQL之F1
- 《Cockroach DB:A Scalable, Survivable, Strongly-Consistent SQL Database》
介绍:CockroachDB :一个可伸缩的、跨地域复制的,且支持事务的数据存储,InfoQ介绍,Design and Architecture of CockroachDb
- 《Multi-Paxos: An Implementation and Evaluation》
介绍:Multi-Paxos实现与总结,此外推荐Paxos/Multi-paxos Algorithm,Multi-Paxos Example,地址:ftp://ftp.cs.washington.edu/tr/2009/09/UW-CSE-09-09-02.PDF
- 《Zab: High-performance broadcast for primary-backup systems》
介绍:一致性协议zab分析
- 《A Distributed Hash Table》
介绍:分布式哈希算法论文,扩展阅读Introduction to Distributed Hash Tables,Distributed Hash Tables
- 《Comparing the performance of distributed hash tables under churn》
介绍:分布式hash表性能的Churn问题
- 《Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web》
介绍:分布式系统的CAP问题,推荐Perspectives on the CAP Theorem.对CAP理论的解析文章,PODC ppt,A plain english introduction to CAP Theorem,IEEE Computer issue on the CAP Theorem
- 《F2FS: A New File System for Flash Storage》
介绍:闪存存储文件系统F2FS
- 《Better I/O Through Byte-Addressable, Persistent Memory》
介绍:微软发表的关于i/o访问优化论文
- 《tmpfs: A Virtual Memory File System》
介绍:虚拟内存文件系统tmpfs
- 《BTRFS: The Linux B-tree Filesystem》
介绍:Linux B-tree文件系统.
- 《Akamai technical publication》
介绍:Akamai是全球最大的云计算机平台之一,承载了全球15-30%网络流量,如果你是做CDN或者是云服务,这个里面的论文会给你很有帮助.例如这几天看facebook开源的osquery。找到通过db的方式运维,找到Keeping Track of 70,000+ Servers: The Akamai Query System这篇论文,先看论文领会思想,然后再使用工具osquery实践
- 《BASE: An Acid Alternative》
介绍:来自eBay 的解决方案,译文Base: 一种Acid的替代方案,应用案例参考保证分布式系统数据一致性的6种方案
- 《A Note on Distributed Computing》
介绍:Jim Waldo和Sam Kendall等人共同撰写了一篇非常有名的论文“分布式计算备忘录”,这篇论文在Reddit上被人推荐为“每个程序员都应当至少读上两篇”的论文。在这篇论文中,作者表示“忽略本地计算与分布式计算之间的区别是一种危险的思想”,特别指出了Emerald、Argus、DCOM以及CORBA的设计问题。作者将这些设计问题归纳为“三个错误的原则”: “对于某个应用来说,无论它的部署环境如何,总有一种单一的、自然的面向对象设计可以符合其需求。” “故障与性能问题与某个应用的组件实现直接相关,在最初的设计中无需考虑这些问题。” “对象的接口与使用对象的上下文无关”.
- 《Distributed Systems Papers》
介绍:分布式系统领域经典论文列表.
- 《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》
介绍:Consistent Hashing算法描述.
- 《SIGMOD 2016: Accepted Research Papers》
介绍:SIGMOD是世界上最有名的数据库会议之一,最具有权威性,收录论文审核非常严格.2016年的SIGMOD 会议照常进行,上面收录了今年SIGMOD收录的论文,把题目输入google中加上pdf就能找到,很多论文值得阅读,SIGMOD 2015
- 《Notes on CPSC 465/565: Theory of Distributed Systems》
介绍:耶鲁大学的分布式系统理论课程笔记
- 《Distributed Operating System Doc PDF》
介绍:分布式系统文档资源(可下载)
- 《Anatomy of a database system》
介绍:数据库系统剖析,这本书是由伯克利大学的Joseph M. Hellerstein和M. Stonebraker合著的一篇论文.对数据库剖析很有深度.除此以外还有一篇文章Architecture of a Database System。数据库系统架构,厦门大学的数据库实验室教授林子雨组织过翻译
- 《A Relational Model of Data for Large Shared Data Banks》
介绍:数据库关系模型论文
- 《RUC Innovative data systems reaserch lab recommand papers》
介绍:中国人民大学数据研究实验室推荐的数据库领域论文
- 《A Scalable Distributed Information Management System》
介绍:构建可扩展的分布式信息管理系统
- 《Distributed Systems in Haskell》
介绍:Haskell中的分布式系统开发
- 《Large-scale cluster management at Google with Borg》
介绍:Google使用Borg进行大规模集群的管理,伯克利大学ppt介绍,中文版
- 《Lock Free Programming Practice》
介绍:并发编程(Concurrency Programming)资料,主要涵盖lock free数据结构实现、内存回收方法、memory model等备份链接 密码: xc5j
- 《Distributed Algorithms Lecture Notes for 6.852》
介绍:Nancy Lynch's的分布式算法研究生课程讲义
- 《Distributed Algorithms for Topic Models》
介绍:分布式算法主题模型.
- 《RecSys - ACM Recommender Systems》
介绍:世界上非常有名的推荐系统会议,我比较推荐接收的PAPER
- 《All Things Distributed》
介绍:推荐一个博客,博主是Amazon CTO Werner Vogels,这是一个关注分布式领域的博客.大部分博文是关于在工业界应用.
- 《programming, database, distributed system resource list》
介绍:这个Git是由阿里(alibaba)的技术专家何登成维护,主要是分布式数据库.
- 《Making reliable distributed systems in the presence of sodware errors》
介绍:Erlang的作者Joe Armstrong撰写的论文,面对软件错误构建可靠的分布式系统.中文译版
- 《CS 525: Advanced Distributed Systems[Spring 2016]》
介绍:伊利诺伊大学的Advanced Distributed Systems 里把各个方向重要papers(updated Spring 2015)列举出来,可以参考一下
- 《Distributed Algorithms》
介绍:这是一本分布式算法电子书,作者是Jukka Suomela.讲述了多个计算模型,一致性,唯一标示,并发等.
- 《TinyLFU: A Highly Efficient Cache Admission Policy》
介绍:当时是在阅读如何设计一个缓存系统时看到的,然后通过Google找到了这一篇关于缓存策略的论文,它是LFU的改良版,中文介绍.如果有兴趣可以看看Golang实现版。结合起来可能会帮助你理解
- 《6.S897: Large-Scale Systems》
介绍:斯坦福大学给研究生开的分布式系统课程。教师是 spark 作者 matei. 能把这些内容真正理解透,分布式系统的功力就很强了。
- 《学习分布式系统需要怎样的知识?》
介绍:[怎么学系列]学习分布式系统需要怎样的知识?
- 《Distributed systems theory for the distributed systems engineer》
介绍:分布式系统工程师的分布式系统理论
- 《A Distributed Systems Reading List》
介绍:分布式系统论文阅读列表,此外推荐威斯康星大学麦迪逊分校计算机系分布式系统学习推荐阅读列表
- 《Distributed Systems Reading Group》
介绍:麻省理工大学分布式系统小组,他们会把平时阅读到的优秀论文分享出来。虽然有些论文本页已经收录,但是里面的安排表schedule还是挺赞的
- 《Scalable Software Architecture》
介绍:分布式系统、可扩展性与系统设计相关报告、论文与网络资源汇总.
- 《MapReduce&Hadoop resource》
介绍:MapReduce&Hadoop相关论文,涉及分布式系统设计,性能分析,实践,优化等多个方面
- 《Distributed Systems: Principles and Paradigms(second edtion)》
介绍:分布式系统原理与范型第二版,课后解答
- 《Distributed Systems Seminar's reading list for Spring 2017》
介绍:分布式系统研讨会论文阅读列表
- 《A Critique of the CAP Theorem》
介绍:这是一篇评论CAP定理的论文,学习CAP很有帮助,推荐阅读评论文章"A Critique of the CAP Theorem"
- 《Evolving Distributed Systems》
介绍:推荐文章《不断演进的分布式系统》.
- 《Ask HN: Recommendations for a book on Distributed Systems?》
介绍:HN上面关于分布式系统相关领域学习的书籍推荐.
- 《SeaweedFS:A simple and highly scalable distributed file system》
介绍:Golang开源项目,分布式文件存储系统SeaweedFS
- 《The Design and Implementation of a Log-Structured File System》
介绍:论文推荐:设计并实现一个日志结构的文件系统.
- 《DATABASE SYSTEMS》
介绍:数据库系统的设计与实现,卡内基梅隆大学在2016年春季数据库课程以本书作为教材,并且向外界开放了Schedule.引用一段亚马逊上面的购书评论:
这本书主要集中在基本的数据库实现方面。看起来很理论,但实际上作者提到的点都有实际的考虑。这一点在写完相关代码后重新阅读感触尤深。但如果不经过自己的思考和实践,这本书实际上读起来仍是“看起来就是那么回事”的感觉。
不得不说,这本书其实应该是所有进行数据库应用开发的人必读的一本书。大部分数据库里面的概念,书本都有从实际的需求中引导出,一目了然。大部分的教材,在提到数据库的各种概念时,往往是有定义而无解释为何有这种定义。
- 《Don't settle for eventual consistency》
介绍:原文主要讲述了CAP理论中C在实践中的重要性。做分布式系统的都知道CAP只能三选其二。而且目前很多基础设置服务(云存储,云数据)都无法保证100%可用,那么就是间接的丢掉了A,推荐阅读以下文末推荐的You Can’t Sacrifice Partition Tolerance,分区容错也很重要
- 《Verdi:Formally Verifying Distributed Systems》
介绍:Verdi是一套正规验证分布式系统,开源的项目中有对raft协议实现。Verdi是通过TLA+ 和Coq 等形式方法对系统进行验证
- 《What are the knowledge required to learn distributed system》
介绍:学习分布式系统需要怎样的知识?
- 《TAO: Facebook’s Distributed Data Store for the Social Graph》
介绍:Facebook设计的分布式数据 图数据库
- 《Resources for Getting Started with Distributed Systems》
介绍:分布式系统初学者资源.
- 《Building a Distributed Log from Scratch, Part 1: Storage Mechanics》
介绍:从0开始构建一个分布式日志。第一部分主要是讲日志的存储,截止到现在已经写到数据复制、扩容之日志消耗、权衡与思考、快速实战。另外推荐作者写的现实世界中的分布式系统推论
- 《CS 525 Spring 2018 Advanced Distributed Systems》
介绍:伊利诺伊大学分布式系统进阶课程,涉及内容云的前世今生,大公司的在分布式计算上的工作(Mapreduce参考)、P2P系统滚、KV存储、基本的分布式算法(时钟同步,锁)、强一致性、分布式在机器学习上的应用、流处理、认证、事务处理、存储与复制、最终一致性、图处理、集群调度、分布式系统bug跟踪和性能测试、安全、缓存。
- 《Notes on Distributed Systems for Young Bloods》
介绍:这篇文章没有理论,适合新手阅读分布式系统实践笔记
- 《Design patterns for container-based distributed systems》
介绍:基于容器的分布式系统设计模式,文中提到了,单容器模式,所有的服务都集成在一个容器里面。单节点多容器模式,类似于kubernetes的Pods(任务组)。一个服务跨多个容器。对于这种模式可以分为Sidecar模式:譬如一个Web服务。Web由一个容器提供,日志处理由一个Logsaver容器提供。Ambassador模式(外交官模式)类似于SLB的设计模式,中间有一个代理容器用来分发功能到子容器。Adapter模式(适配器模式)主要是目的是想分布的执行和存储,统一的监控和管理。有点类似监控系统的设计,日志数据的输入不一,但是统一结果输出。多节点应用模式:这个分为选主模式(核心是选主算法)。Work Queue模式(工作队列模式)类似大规模电商系统的订单处理设计。Scatter/gather模式:有点类似MapRedue架构,分片处理,最后汇总结果。文章推荐容器设计模式
- 《Making The Case For Building Scalable Stateful Services In The Modern Era》
介绍: 在处理分布式系统的时候,很多经验告诉我们要尽量让服务无状态。而在实际分布式系统中,有状态的服务是一致存在的。例如消息队列、数据库存储服务。本文介绍了如何构建有状态的服务,如果保证有状态化服务的高可用。
- 《LHD: Improving Cache Hit Rate by Maximizing Hit Density》
介绍:使用Maximizing Hit Density提高缓存命中.
- 《Principles Of Chaos Engineering》
介绍:混沌工程是在分布式系统上进行实验的学科, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。
大规模分布式软件系统的发展正在改变软件工程。作为一个行业,我们很快采用了提高开发灵活性和部署速度的实践。紧跟着这些好处的一个紧迫问题是:我们对投入生产的复杂系统中有多少信心?
- 《The Paxos Algorithm》
介绍:Google SRE 讲解分布式系统Paxos算法。
- 《Time Series Database Lectures 》
介绍:Andy Pavlo组织的时序数据库系列演讲分享,InfluxDB存储引擎、QuasarDB内部剖析、TimescaleDB成长、Two Sigma时序数据库实践。
- 《Andy CMU course:Advanced Database Systems》
介绍:Andy Pavlo在卡内基梅隆大学的高级数据库课程,以论文导读的形式。有视频。并发控制,乐观并发控制、多版本并发控制、OLAP索引、数据库压缩、存储模型、日志协议、检查点协议、优化器的实现、执行计划、并行join、查询编译、内存数据库.
- 《CASPaxos: Replicated State Machines without logs》
介绍:这篇论文是Paxos算法变种,规避了Paxos算法的复杂性。同时达到了RSM的高性能要求。github 上有开发者对这个算法进行了总结。已经有多种语言的实现方式。譬如Js和Golang版本的实现.
- 《Facebook Immune System》
介绍:Facebook反作弊系统论文。
- 《Logical Physical Clocks and Consistent Snapshots in Globally Distributed Databases》
介绍:混合逻辑时钟。
- 《Riffle: optimized shuffle service for large-scale data analytics》
介绍:Riffle:大规模分布式系统中的数据分析优化。
- 《Omega: flexible, scalable schedulers for large compute clusters》
介绍:本文描述了Google第二代容器化调度服务Omega的设计与诞生。作者也有一份keynote。相关介绍视频
- 《Large-scale Incremental Processing Using Distributed Transactions and Notifications》
介绍:Percolator号称其取代MapReduce之后,Google的索引更新速度提升了100倍。它究竟是如何实现 “100” 这个刺眼的数字?当今的并行计算世界真的有如此大的提升空间吗?当我们满心欢喜以为又有新的算法、新的并行计算架构可以学习时,她却又为何跟你聊起了分布式事务?这篇文章将为您揭晓。中文版