Complat software training 101
  • Introduction
  • Day 1
  • Day 2
  • TODO
  • Linear regression
  • Tmux
  • quick link
  • CLI more - 1
  • Vim more - 1
  • MQ
  • iv - 1
  • iv - 2
  • iv - 3
  • clear Arch
  • lv - array
  • INTERVIEW - JS
  • RDKit - read/write
  • RDKit - process
  • RDKit - transform
  • RDKit - rxn
  • SYSTEM DESIGN - Question
  • SYSTEM DESIGN - EX1
  • SYSTEM DESIGN - EX2
  • SYSTEM DESIGN - EX3
  • SYSTEM DESIGN - EX99
Powered by GitBook
On this page

Was this helpful?

SYSTEM DESIGN - EX99

PreviousSYSTEM DESIGN - EX3

Last updated 5 years ago

Was this helpful?

10M users

100M sync per day

// challenge
1. high write volume (~1 to 1 read to write ratio) (PB cache)
2. high ACID requirement (perfect atomic & consistency)

1

2. Scale DB

3. Add notification server and metaserver to handle client polling.

4. (1) scale servers, (2) add memcache to reduce db load, (3) blockserver is far away from DB, and the DB query is long.

5. continue to scale

6

  1. Blockserver is far away from the DB, and it takes a long time to do DB query. => Sending request from Blockserver to metaserver can reduce DB query time.

  2. Polling consumes lots of resource frequently, and it is moved to independent servers.

// monitoring
1. server loading
2. request per sec
3. split & analysis of important actions resource consumption
4. bandwidth vs user