# code tpl
{%hackmd theme-dark %}
E4
do things right
E5 trade-offs (
SQL / NOSQL,
core puzzle,
push pull,
REST/GraphQL/GRPC,
sync or async ( message queue→ also decoupe
bandwidth → use websockey instead
E6 go deep ( offline support, multi-language support, battrey optimal
E7
System Design: Log exchange event for on-premise analysis or ML
purpose:
1. us eu trading log -> us or eu server -> TW
usecase:
1. write log to local server
2. send back to main server (TW)
metric:
every day log -> 100 milion
RPS:
1157.40740741 request / second
- LB server number -> scale out
- scale up -> CPU / MEM-> base on statistics
storage:
1 log 1KB -> 100 million -> 100GB / day
- database / plan for storage
bandwidth : upload -> 100GB / 86400 -> 1MB / s
- ISP network
database
- log
- write perfer
- time series
- cassandra DB
user produce log -> [LB] -> (log service) -> [cassandra DB]
|
relica to main server -> TW [cassandra]
|
ML analyisis
usecase:
1. write log to local server
- user log -> hit LB
- LB -> dispatch log service
- log service wirte to cassandra
2. send back to main server (TW)
- regular replica to main server
1. cassandra DB by location
- single point failure
- N (log service) -> dispatch by LB
- cassandra -> availibilty
- write freqency -> ? cassandra LSM(mem) -> full? -> disk ss stable
- producer -> 1 ms. write latency 10 ms
- write mem cache -> hard digest traffic
- 16 hr active
- cassandra 10 ms X witre op
-> data -> LSM(mem) -> full -> sstable , 10 ms
pararell -> memory
1
2 3
4
# 1 -> 4
# 1. shortest path for ans
# 2. sakeholder ask information
# 1. build ralstionship 0:[1], 1:[0], 2:[3] ...
# 2. shortest path -> BFS
# iter1 src 2
# it2 -> 3 -> 2 in seen
# it3 -> 4 -> dst -> [2, 3, 4]
def sol(weight, edges, src, dst):
# weight [1, 2, 3, 4, 5]
# edges: [[0, 1], [2, 3], [3, 4]]
```python=
```
###### tags: `mock interview` `面試`