MIT6.824-2017-Chinese - A Chinese version of MIT 6.824 (Distributed System)

  •        36

A Chinese version of MIT 6.824 (Distributed System)



Related Projects

tla-rust - writing correct lock-free and distributed stateful systems in Rust, assisted by TLA+

  •    TLA

Stable stateful systems through modeling, linear types and simulation. I like to use things that wake me up at 4am as rarely as possible. Unfortunately, infrastructure vendors don't focus on reliability. Even if a company gives reliability lip service, it's unlikely that they use techniques like modeling or simulation to create a rock-solid core. Let's just build an open-source distributed store that takes correctness seriously at the local storage, sharding, and distributed transactional layers.

oklog - A distributed and coördination-free log management system

  •    Go

I hoped to find the opportunity to continue developing OK Log after the spike of its creation. Unfortunately, despite effort, no such opportunity presented itself. Please look at OK Log for inspiration, and consider using the (maintained!) projects that came from it, ulid and run. OK Log is a distributed and coördination-free log management system for big ol' clusters. It's an on-prem solution that's designed to be a sort of building block: easy to understand, easy to operate, and easy to extend.

gse - Go efficient text segmentation; support english, chinese, japanese and other. Go 语言高性能分词

  •    Go

Go efficient text segmentation; support english, chinese, japanese and other. Dictionary with double array trie (Double-Array Trie) to achieve, Sender algorithm is the shortest path based on word frequency plus dynamic programming.


  •    C

The UTXO-based blockchain system (e.g. Bitcoin) and account-based blockchain system (e.g. Ethereum ) opened the door of a brand-new world for us. Despite facing some drawbacks along the way, the impressive success of Bitcoin and Ethereum has certainly proven the value of the blockchain technology and its massive potential in the future. Since 2015, there has been quite a few highly-promising distributed ledger systems which are not block-based blockchain technology turned up, such as DAG (Directed Acyclic Graph). With no doubt, a decentralized digital world is dawning and Bitcoin or Ethereum has the potential to become the fundamental currency in block-based blockchain system. IOTA or Byteball, on the other hand may fulfil a similar role in a system based upon DAG. Although all blockchain issued tokens can be traded on some exchange platform, they can only circulate within their own blockchain systems. We want to create a new decentralized platform, which will be the connecting point of the major blockchain systems, regardless the block-based or blockless-based blockchain system, hence allowing value and information circulate smoothly within different blockchain system. We call it “HyperCash” or Hcash in short. The Hcash is being developed by cryptography labs in one of the China’s most prestigious university as well as other famous universities in Australia. We will periodically update you with the progress on this over time, and we expected the first hardfork upgrade will happen soon at early Sept 2017. Thanks for your attention and stay tuned for the further update from Hcash dev team.

orbit-db - Peer-to-Peer Databases for the Decentralized Web

  •    Javascript

OrbitDB is a serverless, distributed, peer-to-peer database. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically sync databases with peers. It's an eventually consistent database that uses CRDTs for conflict-free database merges making OrbitDB an excellent choice for decentralized apps (dApps), blockchain applications and offline-first web applications. All databases are implemented on top of ipfs-log, an immutable, operation-based conflict-free replicated data structure (CRDT) for distributed systems. If none of the OrbitDB database types match your needs and/or you need case-specific functionality, you can easily implement and use a custom database store of your own.

Coherence CE (Community Edition) is a free and open source edition of Oracle Coherence, first and market-leading in-memory data grid

  •    Java

Coherence CE (Community Edition) is a free and open source edition of Oracle Coherence, first and market-leading in-memory data grid. It has been used by hundreds of customers across many industries to power some of the mission critical systems you use every day. Coherence clusters can easily scale to hundreds of members (JVMs), all of which can both store and process the data. It can optionally persist data to disk (either local or shared), which prevents data loss even in the case of complete cluster outage.

DAE Tools Project

  •    C++

Equation-oriented process modelling and optimization software

Atomix - Scalable, fault-tolerant distributed systems protocols and primitives for the JVM

  •    Java

Atomix is an event-driven framework for coordinating fault-tolerant distributed systems built on the Raft consensus algorithm. It provides the building blocks that solve many common distributed systems problems including group membership, leader election, distributed concurrency control, partitioning, and replication.

Copycat - A novel implementation of the Raft consensus algorithm

  •    Java

Copycat is a fault-tolerant state machine replication framework. Built on the Raft consensus algorithm, it handles replication and persistence and enforces strict ordering of inputs and outputs, allowing developers to focus on single-threaded application logic. Its event-driven model allows for efficient client communication with replicated state machines, from simple key-value stores to wait-free locks and leader elections. You supply the state machine and Copycat takes care of the rest, making it easy to build robust, safe distributed systems.

FLoM - Free Lock Manager

  •    C

FLoM is a free, open source, distributed lock manager that can be used to synchronize shell commands, scripts and custom developed C, C++, Java, PHP and Python software. When used in a shell environment, FLoM manages process serialization in the same way "nice" manages process prioritization.

deepnlp - Deep Learning NLP Pipeline implemented on Tensorflow

  •    Python

Deep Learning NLP Pipeline implemented on Tensorflow. Following the 'simplicity' rule, this project aims to use the deep learning library of Tensorflow to implement new NLP pipeline. You can extend the project to train models with your own corpus/languages. Pretrained models of Chinese corpus are distributed. Free RESTful NLP API are also provided. Visit for details. 下载预训练模型 If you install deepnlp via pip, the pre-trained models are not distributed due to size restriction. You can download full models for 'Segment', 'POS' en and zh, 'NER' zh, zh_entertainment, zh_o2o, 'Textsum' by calling the download function.

testing-distributed-systems - Curated list of resources on testing distributed systems

  •    HTML

List of resources on testing distributed systems curated by Andrey Satarin (@asatarin). Colin Scott shares his viewpoint from academia on testing distributed systems, specifically regression testing for correctness and performance bugs.


  •    CSS

Source repo for the book that I and my students in my course at Northeastern University, CS7680 Special Topics in Computing Systems: Programming Models for Distributed Computing, are writing on the topic of programming models for distributed systems. This is a book about the programming constructs we use to build distributed systems. These range from the small, RPC, futures, actors, to the large; systems built up of these components like MapReduce and Spark. We explore issues and concerns central to distributed systems like consistency, availability, and fault tolerance, from the lens of the programming models and frameworks that the programmer uses to build these systems.

distsys-class - Class materials for a distributed systems lecture series


This outline accompanies a 12-16 hour overview class on distributed systems fundamentals. The course aims to introduce software engineers to the practical basics of distributed systems, through lecture and discussion. Participants will gain an intuitive understanding of key distributed systems terms, an overview of the algorithmic landscape, and explore production concerns.A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.


  •    Python

Mercurial is fast and powerful. Mercurial offers you the power and speed to efficiently handle projects of any size and kind. Every clone contains the whole project history, so committing, branching, tagging and merging are local operations which makes them fast and convenient. You can use a multitude of workflows and easily enhance its functionality with extensions.

awesome-distributed-systems - A curated list to learn about distributed systems


A (hopefully) curated list on awesome material on distributed systems, inspired by other awesome frameworks like awesome-python. Most links will tend to be readings on architecture itself rather than code itself. Read things here before you start.