摘要:
3. 时间和顺序 分布式系统中的顺序是什么?为什么它重要? 正如前文描述过的,分布式编程就是将在多服务器上解决单机问题的艺术。 事实上,这就是顺序问题的核心。如果一个系统一个时间点上只能专注一件事,那么所有操作之间就是全序的。就像人们相继通过一个门一样,每个操作都有一个确定的前驱者和一个确定的后继者 阅读全文
摘要:
2. 抽象的升级和降级 在本章中,我们将讲述抽象升级和降级(译者:也可以理解成高层和底层),看到一些不可能结果(CAP和FLP),然后为了性能,对抽象进行降级。 如果你做过程序员,那么对于抽象层级这个概念应该是不陌生的。我们经常学习一些抽象层级,通过一些API访问底层,并可能需要进行封装,为自己模块 阅读全文
摘要:
计算机最基本两个任务 存储 计算 分布式编程与单机编程一样,旨在解决这些问题。只不过分布式是通过协调多台计算机来解决问题。而采用分布式编程则是由于问题规模庞大到不适合用单机来解决。 分布式系统并不是必须的。只要投入足够的钱和足够研发时间,总能设计出一台完美的计算机。它足够快,可用性高,足以应付任意规 阅读全文
摘要:
这个系列纯粹个人工作和学习以来关于并发的简单总结。 概略 并发可以粗暴分为两大类——加锁与无锁。如果场景对性能有一定追求,那无锁无疑是第一选择。无锁有多种实现,其中最基本的就是Atomic原子操作。这也是第一篇的主题。 原子操作一般伪代码如下 // 写 y.store (20, memory_ord 阅读全文