Tuesday, July 30, 2019

One simple drill to help system design

July 29, 2019

Introduction


It is hard for me to learn system design very well in two weeks. I like to focus on basics first. One idea is to go over all index items in the book called Design data intensive application.

Keywords to study


I like to go over keywords if I have 10 to 20 minutes.

Glossary

asynchronous

Not waiting for something to complete
(e.g., sending data over the network to
another node), and not making any
assumptions about how long it is going to
take. See “Synchronous Versus Asynchronous
Replication” on page 153, “Synchronous
Versus Asynchronous Networks” on
page 284, and “System Model and Reality”
on page 306.

atomic
1. In the context of concurrent operations:
describing an operation that appears to
take effect at a single point in time, so
another concurrent process can never
encounter the operation in a “halffinished”
state. See also isolation.
2. In the context of transactions: grouping
together a set of writes that must either all
be committed or all be rolled back, even if
faults occur. See “Atomicity” on page 223
and “Atomic Commit and Two-Phase
Commit (2PC)” on page 354.

backpressure
Forcing the sender of some data to slow
down because the recipient cannot keep
up with it. Also known as flow control. See
“Messaging Systems” on page 441.

batch process
A computation that takes some fixed (and
usually large) set of data as input and produces
some other data as output, without
modifying the input. See Chapter 10.
bounded
Having some known upper limit or size.
Used for example in the context of network
delay (see “Timeouts and Unbounded
Delays” on page 281) and datasets
(see the introduction to Chapter 11).

Byzantine fault
A node that behaves incorrectly in some
arbitrary way, for example by sending
contradictory or malicious messages to
other nodes. See “Byzantine Faults” on
page 304.

cache
A component that remembers recently
used data in order to speed up future
reads of the same data. It is generally not
complete: thus, if some data is missing
from the cache, it has to be fetched from
some underlying, slower data storage

No comments:

Post a Comment