分布式开发的谬论
Fallacies of distributed computing
在Hbase的官方文档中发现这篇《分布式开发的谬论》文章的链接 ,看了一下觉的都讲到了每个分布式项目可能会遇到的痛点,很赞。
“分布式计算是很难的,做一个分布式系统需要很多软硬件和网络的技能。你的集群可以会因为各式各样的错误发生故障。比如HBase本身的Bug,错误的配置(包括操作系统),硬件的故障(网卡和磁盘甚至内存) 如果你一直在写单机程序的话,你需要重新开始学习。”
- The network is reliable.网络是可靠的
- Latency is zero.延迟为0
- Bandwidth is infinite.带宽是无限的
- The network is secure.网络是安全的
- Topology doesn't change.拓扑结构不会改变
- There is one administrator.至少有一个管理员
- Transport cost is zero.传输无需任何代价
- The network is homogeneous.所有的网络都是同质的
The effects of the fallacies[edit] 谬论导致的后果
- Software applications are written with little error-handling on networking errors. During a network outage, such applications may stall or infinitely wait for an answer packet, permanently consuming memory or other resources. When the failed network becomes available, those applications may also fail to retry any stalled operations or require a (manual) restart.当网络出现异常软件应用会进行错误处理。在网络中断期间,这些应用程序可能会出现延迟或者阻塞等待响应包,这样会持续的的消耗内存或其他资源。当网络异常恢复,这些应用程序也可能无法重试任何停滞的操作,可能需要(手动)重启
- Ignorance of network latency, and of the packet loss it can cause, induces application- and transport-layer developers to allow unbounded traffic, greatly increasing dropped packets and wasting bandwidth.无视网络延迟以及由延迟引起的报文丢失,会导致应用及传输层开发人员允许不受控的传输,从而极大增加丢失的报文数目和带宽浪费.
- Ignorance of bandwidth limits on the part of traffic senders can result in bottlenecks over frequency-multiplexed media.发送端忽视带宽限制会导致频率复用介质的传输瓶颈
- Complacency regarding network security results in being blindsided by malicious users and programs that continually adapt to security measures.[2]过度相信网络的安全性会导致无法觉察到恶意用户的入侵,从而无法及时采施
- Changes in network topology can have effects on both bandwidth and latency issues, and therefore similar problems.网络拓扑结构的变化可能会影响带宽和潜在的问题,或因此的类似的问题
- Multiple administrators, as with subnets for rival companies, may institute conflicting policies of which senders of network traffic must be aware in order to complete their desired paths.多个管理员,如同与竞争对手公司的子网可能互相冲突,其中网络流量的发件人必须认识到为了完成所需的路径
- The "hidden" costs of building and maintaining a network or subnet are non-negligible and must consequently be noted in budgets to avoid vast shortfalls.建设和维护一个网络的潜在成本是不容小觑的,而且还必须划出一笔预算来预防大范围网络失效
- If a system assumes a homogeneous network, then it can lead to the same problems that result from the first three fallacies.如果一个系统是同质均匀的网络,那么它会导致同样的问题,如同谬论一到三