什么是IRIW和MCA(multi-copy atomicity)

最近又在卷八股文,直呼卷不动了啊。这个行业啥时候才能不这么卷???

Java volatile

说起八股文,volatile绝对是个老八股,随便拉个人来都能说上两句,什么内存可见性、内存屏障、指令重排序。。。真搞不懂调包侠整这些玩意有啥用。

既然卷就卷到底,看看这玩意底层到底是在干啥。

阅读更多

关于Paxos那些点

世界上只有一种共识协议,就是 Paxos,其他所有共识算法都是 Paxos 的退化版本。

Paxos分为Basic Paxos、Multi Paxos、和其它演进版本。

Basic Paxos

前提:Basic Paxos 只能对单个值形成决议。

Paxos 算法将分布式系统中的节点分为三类:

  • 提案节点:称为 Proposer,提出对某个值进行设置操作的节点,设置值这个行为就被称之为提案(Proposal),值一旦设置成功,就是不会丢失也不可变的。请注意,Paxos 是典型的基于操作转移模型而非状态转移模型来设计的算法,这里的“设置值”不要类比成程序中变量赋值操作,应该类比成日志记录操作,在后面介绍的 Raft 算法中就直接把“提案”叫作“日志”了。
  • 决策节点:称为 Acceptor,是应答提案的节点,决定该提案是否可被投票、是否可被接受。提案一旦得到过半数决策节点的接受,即称该提案被批准(Accept),提案被批准即意味着该值不能再被更改,也不会丢失,且最终所有节点都会接受该它。
  • 记录节点:被称为 Learner,不参与提案,也不参与决策,只是单纯地从提案、决策节点中学习已经达成共识的提案,譬如少数派节点从网络分区中恢复时,将会进入这种状态。
阅读更多

命令收藏

mac

关闭SPI(获取根目录写权限)

  • 重启 command+R 进入恢复界面
  • 实用工具 - 终端 输入:csrutil disable
  • 重启:reboot
  • 打开终端,挂载根目录:sudo mount -uw /
阅读更多

常见集群方式

主从(master-slave)

写master,同步到slave 。slave可用于读。常见mysql,redis。

哨兵

在主从的基础上,添加了master宕机时,slave自动切换为master。

cluster

集群内每个节点都是分片。通过分布式一致性协议沟通。

例如redis,通过Gossip 协议,在集群内同步,各个分片的哈希槽信息。

便于重定向请求。

《Java性能-权威指南》 笔记

在做性能测试时,需要确保输入参数是确定的,否则处理参数还会带来一定的性能损耗。

JVM主要接受两类标志(少数例外):布尔标志和附带参数标志。

  • 布尔标志语法:-XX:+FlagName表示开启,-XX:-FlagName表示关闭。
  • 附带参数标志语法:-XX:FlagName=something。例如-XX:NewRadio=N
阅读更多