標籤:

怎麼做分散式存儲的面試?

設計一種詰問(打破砂鍋問到底)的面試套路.

1. 用cas實現spinlock.

2. 實現單機kv存儲系統, 多節點共享kv存儲服務, 怎麼解決external consistency的問題?

kv存儲N=0用戶A和B操作kv存儲系統按照下面時序:1.用戶A執行操作: INC N;2.用戶A通知用戶B執行操作;3.用戶B執行操作: if (N % 2 == 0) {N*=2;} else {N +=3;}怎麼保證結果符合預期呢? 在網路傳輸影響操作到達次序的情況下, 怎麼保證B後於A完成操作.如果這個過程插入了C, 又如何做呢?

3. 鎖實現和版本控制用那個呢?

4. kv系統數據要持久化, 怎麼保證在供電故障的情況下, 依然不丟數據.

5. flush/fsync/WAL/磁碟和ssd的順序寫

6. 單機kv存儲系統, 從掉電到系統重啟這段時間, 不可用, 如何保證可用性呢?

7. 數據複製, 日誌複製, 有哪些實現方法呢?

8. 做主從複製, 採用pull和push操作, 那個好呢?

9. 如何保證多副本的一致性? RSM

10. 分散式共識演算法: zab, paxos, raft.

11. commit語意是什麼呢?

12. 單機或者單個leader的qps/tps較低, 如何擴大十倍?

13. 怎麼做partitioning和replicating呢?

14. 存儲或者訪問熱點問題, 應該怎麼搞?

15. CAP原理

16. 元數據怎麼管理?

17. membership怎麼管理?

18. 暫時性故障和永久性故障有哪些呢?

19. failover和data replication怎麼搞呢?

20. 磁碟的年故障率預估是多少?

21. kv系統存儲小王, 小李, 小張三個人的賬戶餘額信息, 數據分別在不同的節點上, 怎麼解決小王向小李, 小李向小張同時轉款的問題呢?

推薦閱讀:

奇葩而有效的反向面試——王猛見桓溫
公司那些事
工商銀行面試真題彙編和精彩回答
Android事件分發機制解析
如何HOLD住英文面試?

TAG:面試 |