分布式CAP&蒙代尔不可能三角
(2012-03-15 17:30:51)
标签:
cap分布式蒙代尔不可能三角it |
分类: 分布式 |
最近在看《管理3.0》这本书,荷兰的这哥们把敏捷和复杂理论整到一起引入管理,很有开创性。
开篇提到了一般性系统理论General System
Theorm的关联性,让我想起了分布式cap和金融学的不可能三角,记录下
关于汇率政策与货币政策的协调问题,在20世纪60年代初,弗莱明和蒙代尔认为:
资本的自由流动
货币完全独立
汇率稳定
三项目标中,一国政府最多只能同时实现两项。这一结论被后人称为“蒙代尔三角”
想要控制货币主权,又想要资本可以自由进出,那汇率就不能保了;
如果要保汇率稳定和资本自由进出,货币主权就不要想了。事实也是如此
在分布式数据系统中,有一个cap原理(CAP Theorem)。CAP原理中,有三个要素:
一致性(Consistency)
可用性(Availability)
分区容忍性(Partition tolerance)
CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。
从客户端角度,多进程并发访问时,更新过的数据在不同进程如何获取的不同策略,决定了不同的一致性。对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。如果能容忍后续的部分或者全部访问不到,则是弱一致性。如果经过一段时间后要求能访问到更新后的数据,则是最终一致性。
可以简单的类比下
货币完全独立 == 一致性
资本的自由流动 == 可用性
汇率稳定 == 分区容忍性
类比分析
按现阶段互联网的发展现状,需要高可用性和分区容忍性,那么就要适当放弃一致性,通过最终一致性来保障(异步延迟),但要采取措施避免和防止异步数据的丢失
最近,互联网技术社区有些人在反思最终一致性和nosql的滥用问题,我觉得关键要看业务特点来决定。
比如sns类的应用,完全可以采用最终一致的方式来解决,没必要我发的微薄,你要第一时间看到,那不成监控系统和直播系统了,呵呵
再比如在线股票和在线直播,想牺牲一致性,提高可用性(并发人多、方便操作),估计股民就要骂娘了
总要平衡下,舍得一些
现阶段要保持资本的自由流动和汇率稳定,那么就要适当放弃货币完全独立,让外人可以小操控一下,最终通过其他利益来补贴(军政啦,比如抢个油田,打个产业链啥的),但要避免补贴搞不成,反丢了夫人又折兵
最近,货币主权的问题被人关注了,要回收了,又不能立马失去外资的支撑,ok,你的汇率是不是要动动了,不能一直只涨不跌啊,官方的说法是要扩大浮动范围
在两个阶段切换当中,实际就是熵的变化和引入,系统状态要达到新的平衡,才能降低熵,复杂系统升级进化啦
一般性系统理论 (General System Theory)
研究复杂系统的一般规律的学科,又称普通系统论。现代科学可按所研究的对象系统的具体形式划分成各门学科,如物理学、化学、生物学、经济学和社会学等;也可按研究方法划分成两大类别,即简单系统理论和复杂系统理论。一般系统论是研究复杂系统理论的学科,着重研究复杂系统的潜在的一般规律。
系统思想是一般系统论的认识基础,是对系统的本质属性(包括整体性、关联性、层次性、统一性)的根本认识。系统思想的核心问题是如何根据系统的本质属性使系统最优化。