PacificA In Pegasus

2020-04-14

PacificA是微软实现的一款强一致性的分布式共识协议,具有简单易实现、可用性高的优点。Pegasus就是使用PacificA协议来维护多副本之间的复制。

之前有篇文章讲过PacificA的原理与理论,如有疑惑请移步PacificA

Read More

限流方案调研

2020-04-01

这篇文章是之前做限流时调研总结的文档,由于工作上要求写英文,也懒得翻译了,就直接把当时的文档内容粘贴过来了。

In general, a rate is a simple count of occurrences over time. However, there are several different techniques for measuring and li...

Read More

pegasus load balance

2020-03-29

Pegasus的负载均衡由meta server进行全局控制,其最小单元是replica。具体分为以下两个方面:

  • cure:当某些原因导致一个replica groupo不满足一主两备时,meta server会根据相应的策略进行调整,其中包括把不足的备份补全,或者把多余的备份剔除。这种策略叫做cure
  • balancer: meta...
Read More

pegasus cure

2020-03-29

pegasus对于每个partition采用一主两备份的方式来进行管理,该一主两备被称作一个replica group。当meta server对replica group进行修改时,有可能会产生primary不可用、secondary数量确实等情况,此时则需要对该replica group进行修复,该过程叫做cure。 meta server中使用定时任务来定期检查各个replica...

Read More

pegasus balancer

2020-03-28

理论背景

在当前pegasus balancer的实现中,meta server会定期对所有replica server节点的replica情况做评估,当其认为replica在节点分布不均衡时,会将相应replica进行迁移。

在balancer生成决策过程中需要考虑的因素有:

  • 对于任意表,其part...
Read More

Ford Fulkerson

2020-03-21

本文主要讲解最大流问题的Ford-Fulkerson解法。可以说这是一种方法,而不是算法,因为它包含具有不同运行时间的几种实现。该方法依赖于三种重要思想:残留网络,增广路径和割。

在介绍着三种概念之前,我们先简单介绍下Ford-Fulkerson方法的基本思想。首先需要了解的是Ford-Fulkerson是一种迭代的方法。开始时,对所有的u,v属于V,f(u,v)=0(...

Read More

Thread Local

2020-03-16

G++ now implements the C++11 thread_local keyword; this differs from the GNU __thread keyword primarily in that it allows dynamic initialization and destruction semantics. Unfortunately, this su...

Read More