取消手机号码归属地,将增大电信诈骗风险
注意:缓存是由最小的存储区块-缓存行(cacheline)组成,缓存行大小通常为64byte。 缓存行是什么意思呢? 比如你的L1缓存大小是512kb,而cacheline = 64byte,那么就是L1里有512 * 1024/64个cacheline CPU读取存储器数据过程
CPU为何要有高速缓存 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。这就造成了高性能能的内存和硬盘价格及其昂贵。然而CPU的高度运算需要高速的数据。为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决IO速度和CPU运算速度之间的不匹配问题。 在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。
比如循环、递归、方法的反复调用等。
比如顺序执行的代码、连续创建的两个对象、数组等。
空间局部性案例: 2PC 实现简单,但是效率低,所有参与者需要block,throughput低;无容错,一个节点失败整个事务失败。如果第一阶段完成后,参与者在第二阶没有收到决策,那么数据结点会进入“不知所措”的状态,这个状态会block住整个事务。 3PC 改进版的2PC,把2PC的第一个段break成了两段: 询问,然后再锁资源,最后真正提交。3PC的核心理念是:在询问的时候并不锁定资源,除非所有人都同意了,才开始锁资源。 3PC比2PC的好处是,如果结点处在P状态(PreCommit)的时候发生了Fail/Timeout的问题,3PC可以继续直接把状态变成C状态(Commit),而2PC则不知所措。 不过3PC实现比较困难,而且无法处理网络分离问题。如果preCommit消息发送后两个机房断开,这时候coordinator所在的机房会abort,剩余的participant会commit。 Paxos Paxos的目的是让整个集群的结点对某个值的变更达成一致。Paxos算法是一种基于消息传递的一致性算法。Paxos算法基本上来说是个民主选举的算法——大多数的决定会成个整个集群的统一决定。 任何一个点都可以提出要修改某个数据的提案,是否通过这个提案取决于这个集群中是否有超过半数的结点同意(所以Paxos算法需要集群中的结点是单数)。这个是Paxos相对于2PC和3PC最大的区别,在2f+1个节点的集群中,允许有f个节点不可用。 Paxos的分布式民主选举方式,除了保证数据变更的一致性之外,还常用于单点切换,比如Master选举。 Paxos协议的特点就是难,both 理解 and 实现 :( 关于2PC,3PC和Paxos,强烈推荐阅读 分布式系统的事务处理。 目前大部分支付系统其实还是在2PC的基础上进行自我改进的。一般是引入一个差错处理器,进行差错协调(回滚或者失败处理)。 MVCC:多版本并发控制 这个是很多RDMS存储引擎实现高并发修改的一个重要实现机制。具体可以参考: 1. 多版本并发控制(MVCC)在分布式系统中的应用
2. MVCC (Oracle, Innodb, Postgres).pdf (编辑:阜阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


