数据密集型应用系统设计2021-8-29

数据密集型应用系统模块:

  1. 数据库
  2. 高速缓存
  3. 索引
  4. 流处理
  5. 批处理

大多软件系统的三个重要问题:

  1. 可靠性
  2. 可扩展性
  3. 可维护性

可靠性的典型期望:

  1. 执行用户期望的功能
  2. 容忍用户不正确的操作和错误
  3. 性能可以应对典型场景,负载压力和数据量
  4. 防止任何未授权的访问和滥用

硬件故障类型:
硬盘平均无故障时间MTTF 10~50 年, 因此在一个10000个硬盘的阵列中,平均每天会有一个硬盘故障, 解决的办法是增加硬件冗余。其他硬件故障包括:断电,断网,内存故障,cpu计算错误

软件错误:
more test please

如何减少人为的失误:

  1. 以最小出错的方式来设计系统,例如精心设计的抽象层,api和管理界面。是的做正确的事很轻松而搞坏东西很复杂
  2. 分离容易出错的部分,提供测试沙箱
  3. test
  4. 当出现人为错误时,提供快速的恢复机制
  5. telemetry
  6. 管理流程以及培训

End at page 18