Concurrency 关于分布式系统的两个问题:可伸缩性和互斥性

Concurrency 关于分布式系统的两个问题:可伸缩性和互斥性,concurrency,scalability,distributed-system,mutual-exclusion,Concurrency,Scalability,Distributed System,Mutual Exclusion,第一个问题:可伸缩性 在分布式系统的上下文中,究竟什么可以称为 可伸缩性?我猜这是系统能够被任意多个分布式设备使用而无需更改代码的能力。我的想法正确吗 还有,我可以在分布式应用程序上实现哪些技术来确保我具有这种可伸缩性 第二个问题:相互排斥 有人告诉我,当我们想要确保在一台机器或分布式系统上执行的进程之间的互斥性时,会存在差异,但是我不知道如何解释,有人能解释和说明这些差异吗?第一个问题:可伸缩性: 在分布式系统的上下文中,究竟什么可以称为可伸缩性?我猜这是系统能够被任意多个分布式设备使用而无

第一个问题:可伸缩性

在分布式系统的上下文中,究竟什么可以称为 可伸缩性?我猜这是系统能够被任意多个分布式设备使用而无需更改代码的能力。我的想法正确吗

还有,我可以在分布式应用程序上实现哪些技术来确保我具有这种可伸缩性


第二个问题:相互排斥


有人告诉我,当我们想要确保在一台机器或分布式系统上执行的进程之间的互斥性时,会存在差异,但是我不知道如何解释,有人能解释和说明这些差异吗?

第一个问题:可伸缩性:

在分布式系统的上下文中,究竟什么可以称为可伸缩性?我猜这是系统能够被任意多个分布式设备使用而无需更改代码的能力。我的想法正确吗

差不多,但我会给它下一个稍微不同的定义。如果可以通过添加更多资源来提高系统的性能和能力,那么系统是可伸缩的。这意味着,如果一个系统是可伸缩的,并且您的计算需求突然增加,那么您可以通过添加更多资源(通常是更多机器)来扩展并满足这些需求。请注意,可伸缩性和性能是两件截然不同的事情。一个系统可以非常高的性能(非常快地处理当前负载),而不具有可扩展性

可伸缩系统最典型的情况是计算负载在可用机器之间分配的系统,因此当您添加更多机器时,您也可以处理负载的比例增加,这通常被称为“线性可伸缩性”,这通常是最理想的可伸缩性类型,但通常很难实现,因为当您添加更多资源(例如机器)时,您通常必须为机器之间的通信支付开销,这意味着伸缩性变为次线性。如果您对这方面的更多细节感兴趣,我建议您阅读《阿姆达尔定律》(,)

第二次质询:相互排斥

有人告诉我,当我们想要确保在一台机器或分布式系统上执行的进程之间的互斥时,会有不同之处,但是我不知道怎么做,有人能解释和说明这些不同之处吗


我要说的是,分布式互斥和单机互斥的最终目标和问题本身是相同的,但实现它的手段却大不相同。定义分布式系统的一个主要因素是,进程之间没有任何共享内存(因为它们可能位于不同的机器上),而单机系统中没有共享内存(尽管可以通过实现分布式共享内存抽象来模拟共享内存)。在单机互斥设置中,您通常通过使用共享内存和互斥来实现互斥,而在分布式设置中,您必须使用消息传递并处理延迟、部分故障、故障检测等问题,这使得事情变得更加困难。

第一个问题:可伸缩性:

在分布式系统的上下文中,究竟什么可以称为可伸缩性?我猜这是系统能够被任意多个分布式设备使用而无需更改代码的能力。我的想法正确吗

差不多,但我会给它下一个稍微不同的定义。如果可以通过添加更多资源来提高系统的性能和能力,那么系统是可伸缩的。这意味着,如果一个系统是可伸缩的,并且您的计算需求突然增加,那么您可以通过添加更多资源(通常是更多机器)来扩展并满足这些需求。请注意,可伸缩性和性能是两件截然不同的事情。一个系统可以非常高的性能(非常快地处理当前负载),而不具有可扩展性

可伸缩系统最典型的情况是计算负载在可用机器之间分配的系统,因此当您添加更多机器时,您也可以处理负载的比例增加,这通常被称为“线性可伸缩性”,这通常是最理想的可伸缩性类型,但通常很难实现,因为当您添加更多资源(例如机器)时,您通常必须为机器之间的通信支付开销,这意味着伸缩性变为次线性。如果您对这方面的更多细节感兴趣,我建议您阅读《阿姆达尔定律》(,)

第二次质询:相互排斥

有人告诉我,当我们想要确保在一台机器或分布式系统上执行的进程之间的互斥时,会有不同之处,但是我不知道怎么做,有人能解释和说明这些不同之处吗


我要说的是,分布式互斥和单机互斥的最终目标和问题本身是相同的,但实现它的手段却大不相同。定义分布式系统的一个主要因素是,进程之间没有任何共享内存(因为它们可能位于不同的机器上),而单机系统中没有共享内存(尽管可以通过实现分布式共享内存抽象来模拟共享内存)。在单机互斥设置中,您通常通过使用共享内存和互斥来实现互斥,而在分布式设置中,您必须使用消息传递并处理延迟、部分故障、故障检测等问题,这使事情变得更加困难。

您认为是哪种分布式系统?现在有很多东西是分布式的。我