Reading-Summary 2019-03

10 Breakthrough Technologies in 2019, by Bill Gates

Take a look at what Mr. Gates thinks are the greatest technology breakthroughs right now. The list might surprise you.

What happens when you click Play button on Netflix

How Netflix leverages AWS technologies to build world-scale, highly-availbile, fault-tolerant distributed video streaming system. ​

Lyft Case Study - Amazon Web Services

Lyft architecture evolution on AWS. ​

Compounding Knowledge

From Farnam Street – an interesting blog site I found recently.

Also on Farnam Street and its “mental models”: The Mental Model Fallacy. TL;DR: The so-called “mental models” from Farnam Street is not of much value when it’s from non-practitioners. And to learn businees, like basketball, swimming, etc., you’ll need to actually practice to learn the intricate knowledge that are not easily translated into writings.

Parsing Gigabytes of JSON per Second

Unfortunately I didn’t have time to finish reading this paper. But it’s good to learn the concept of branchless algorithms to fill the CPU pipeline and achieve amazing performance.

Paper Reading: Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center

Link to paper: https://people.eecs.berkeley.edu/~alig/papers/mesos.pdf

Presentation: https://www.usenix.org/conference/nsdi11/mesos-platform-fine-grained-resource-sharing-data-center

Mesos is a cluster resource management software from UC Berkeley. Unlike many other frameworks already existed, Mesos is designed to support heterogeneous frameworks (Hadoop, MPI, etc) in the same cluster and share resources between them, by providing a thin layer that making resource offers to the framework schedulers, and delegate the scheduling decision to the frameworks themselves.

With this design, Mesos can achieve pretty good elasticity between frameworks, and letting frameworks choose their own resources results in better data locality.

Read More

Paper Reading: Understanding Real-World Concurrency Bugs in Go

Link: https://golangweekly.com/link/59972/b208593eda

A team from Penn State University and Purdue published their latest study on concurrency bugs found in Golang projects, namely large projects from Github: Docker and Kubernetes, two datacenter container systems, etcd, a distributedkey-value store system, gRPC, an RPC library, and CockroachDB and BoltDB. The authors searched commit histories of each repository to understand concurrency bug fixes for categorization and study.

TL;DR:

  • Go’s message-passing concurrency mechanism, something Go is proud of, isn’t as easy to use as it’s generally perceived. It creates just as many bugs, if not more, than shared-memory concurrency model.
  • Shared memory synchronization is still used more in Go projects.
  • Go’s built-in race and deadlock bug detection library still cannot catch all the bugs. There’s room for more improvements.

Read More