# 分布式计算中的8个谬论

Eight-Fallacies-of-Distributed-Computing-Tech-Talk

8个分布式计算的谬论

1. The network is reliable.
2. Latency is zero.
3. Bandwidth is infinite.
4. The network is secure.
5. Topology doesn't change.
7. Transport cost is zero.
8. The network is homogeneous.

### 1. The network is reliable

• retry
• acknowledge important messages
• identify/ignore duplicates（去重）或者幂等
• reorder messages（对消息排序）
• verify message integrity（验证消息完整性）

### 2. Latency is zero

Latency is how much time it takes for data to move from one place to another bandwidth which is how much data we can transfer during that time

"B ut I think that it’s really interesting to see that the end-to-end bandwidth increased by 1468 times within the last 11 years while the latency (the time a single ping takes) has only been improved tenfold. If this w ouldn’t be enough, there is even a natural cap on latency. The minimum round-trip time between two points of this earth is determined by the maximum speed of information transmission: the speed of light. At roughly 300,000 kilometers per second (3.6 * 10E12 teraangstrom per fortnight), it will always take at least 30 milliseconds to send a ping from Europe to the US and back, even if the processing would be done in real time."

Taking latency into consideration means you should strive to make as few as possible calls and assuming you have enough bandwidth (which will talk about next time) you'd want to move as much data out in each of this calls.

### 3. Bandwidth is infinite

• 随着带宽的增长，我们传输的数据也在增加；
• 丢包问题

One is that while the bandwidth grows, so does the amount of information we try to squeeze through it. VoIP, videos, and IPTV are some of the newer applications that take up bandwidth The other force at work to lower bandwidth is packet loss (along with frame size).

### 4. The Network is Secure

Security is usually a multi-layered solution that is handled on the network, infrastructure, and application levels.

### 5. Topology doesn’t change

"Topology doesn't change." That's right, it doesn’t--as long as it stays in the test lab.

• 不要依赖特定的路由或节点
• 需要同时提供位置透明性或发现服务

Try not to depend on specific endpoints or routes, if you can't be prepared to renegotiate endpoints. You would want to either provide location transparency (e.g. using an ESB, multicast) or provide discovery services (e.g. a Active Directory/JNDI/LDAP).

### 6. There is one administrator

"Okay, there is more than one administrator. But why should I care?" Well, as long as everything works, maybe you don't care. You do care, however, when things go astray and there is a need to pinpoint a problem (and solve it).

• 在系统小的时候，就提供工具来监控系统操作

A proactive approach is to also include tools for monitoring on-going operations as well;

To sum up, when there is more than one administrator (unless we are talking about a simple system and even that can evolve later if it is successful), you need to remember that administrators can constrain your options (administrators that sets disk quotas, limited privileges, limited ports and protocols and so on), and that you need to help them manage your applications.

### 7. Transport cost is zero

One way is that going from the application level to the transport level is free. This is a fallacy since we have to do marshaling (serialize information into bits) to get data unto the wire, which takes both computer resources and adds to the latency

The second way to interpret the statement is that the costs (as in cash money) for setting and running the network are free. This is also far from being true. There are costs--costs for buying the routers, costs for securing the network, costs for leasing the bandwidth for internet connections, and costs for operating and maintaining the network running. Someone, somewhere will have to pick the tab and pay these costs.

### 8. The network is homogeneous

It is worthwhile to pay attention to the fact the network is not homogeneous at the application level Do not rely on proprietary protocols--it would be harder to integrate them later

0 条评论

• ### 袖珍分布式系统（二）

本文是Distributed systems for fun and profit的第二部分，本文是阅读该文后的一些记录。

• ### 码农英语进击之路 day1 三星手机炸炸炸

scrap a car ：汽车报废 flagship：旗舰 rival：竞争 stunning：褒义词很漂亮，也可以中性词令人震惊的 setback：挫...

• ### 袖珍分布式系统（一）

本文是Distributed systems for fun and profit的第一部分，本文是阅读该文后的一些记录。

• ### Holiday -- hack the box

Holiday is an insane box officially. It's really difficult to get the user permi...

• ### [security] Go 1.11.3 and Go 1.10.6 pre-announcement

We plan to issue Go 1.11.3 and Go 1.10.6 on Wednesday, December 12 at

• ### SAP Hybris Commerce功能介绍：Consignment tracking

This new feature is developed by Chengdu Hybris dev team. When a customer decide...

• ### windows平台下redis安装及配置文件介绍

redis是一个key-value存储系统。和Memcached类似，它支持存储的value类型相对更多，包括string(字符串)、list(链表)、set(...

• ### Spring框架里注解@Autowired的工作原理

Suppose I have a bean named HelloWorld which has a member attribute points to an...

• ### Haystack - hack the box

HayStack is an easy box in hack the box. But it does isn't easy at all. It's ann...

• ### redis的安装与使用

redis是当前比较热门的NOSQL系统之一，它是一个key-value存储系统。和Memcached类似，但很大程度补偿了memcached的不足，它支持存...