|
bfmo 发表于 2014-11-25 22:29 ![]()
请教一个简单问题,数据高并发和数据一致性,在分布式中如何处理呢? 其工作原理是什么?
数据一致性:传统的关系数据库,比如Oracle的主备模式一般是最大保护模式、最大性能模式和最大可用性模式;现在的一些新系统,比如Google Spanner、Amazon Aurora以及OceanBase都是采用Paxos协议做数据同步,这种方式的好处在于单个节点出现故障的时候不影响性能,也不影响可用性。为什么呢?每次写入只需要写两个节点(一个主加上一个备),当某个备机出现故障时不会影响服务;如果主机出现故障,另外两台备机也至少有一台是最新的,可以通过Paxos选举协议选出一台拥有最新状态的备机切换为主机。
高并发:一般的做法是尽可能降低锁的粒度,传统的数据库已经做得比较极致了;现在新型的内存数据库会优化得更加极致一些,设计之初采用一些无锁的数据结构。少量数据库还会对热点行的并发做专门的优化。 |
|