• <sup id="mk476"></sup>
    <dl id="mk476"></dl>
  • <progress id="mk476"><tr id="mk476"></tr></progress>
    <div id="mk476"><tr id="mk476"></tr></div>
    <sup id="mk476"><ins id="mk476"></ins></sup>
  • <progress id="mk476"></progress>
    <div id="mk476"></div>
    <div id="mk476"><tr id="mk476"></tr></div>
  • <div id="mk476"></div>
    <dl id="mk476"><s id="mk476"></s></dl><dl id="mk476"></dl><div id="mk476"></div>
  • <div id="mk476"></div>
    <dl id="mk476"><ins id="mk476"></ins></dl>
    代码改变世界

    [置顶]分布式系统理论 - 从放弃到入门

    2017-01-01 02:45 by bangerlee, 5468 阅读, 收藏, 编辑
    摘要: 随承载用户数量的增加和容灾的需要,越来越多互联网后台系统从单机模式切换到分布式集群。回顾自己毕业五年来的工作内容,同样有这样的转变。 毕业头两年负责维护运行在刀片机上的业务,在机房里拔插单板的日子是我逝去的青春。设备之间通过VCS组成冷备,但即使有双机软件保护,宕机、网络丢包等问题发生时业务仍会受影阅读全文

    LeetCode编程训练 - 合并查找(Union Find)

    2019-04-20 15:14 by bangerlee, 68 阅读, 收藏, 编辑
    摘要: Union Find算法基础 Union Find算法用于处理集?#31995;?#21512;并和查询问题,其定义了两个用于并查集的操作: Find: 确定元素属于哪一个子集,或判断两个元素是否属于同一子集 Union: 将两个子集合并为一个子集 并查集是一种树形的数据结构,其可用数组或unordered_map表示: F阅读全文

    LeetCode编程训练 - 滑动窗口(Sliding Window)

    2019-04-18 11:13 by bangerlee, 42 阅读, 收藏, 编辑
    摘要: 滑动窗口基础 滑动窗口常用来解决求字符串子串问题,借助map和计数器,其能在O(n)时间复杂度求子串问题。滑动窗口和双指针(Two pointers)有些类似,可以理解为往同一个方向走的双指针。常用滑动窗口代码框架如下: 以"pwwkew"为例,以上滑动窗口执行过程图示如下: 相关LeetCode题阅读全文

    LeetCode编程训练 - 拓扑?#21028;?Topological Sort)

    2019-04-16 11:38 by bangerlee, 150 阅读, 收藏, 编辑
    摘要: 拓扑?#21028;?#22522;础 拓扑?#21028;?#29992;于解决有向无环图(DAG,Directed Acyclic Graph)按依赖关系排线性序列问题,直白地?#21040;?#20915;这样的问题:有一组数据,其中一些数据依赖其他,问能否按依赖关系?#21028;?被依赖的排在前面),或给出?#21028;?#32467;果。 最常用解决拓扑?#21028;?#38382;题的方法是Kahn算法,步骤可以概括为:阅读全文

    LeetCode编程训练 - 位运算(Bit Manipulation)

    2019-04-15 20:57 by bangerlee, 104 阅读, 收藏, 编辑
    摘要: 位运算基础 说?#25509;?&)、或(|)、非(~)、异或(^)、位移等位运算,就得说到位运算的各种奇淫巧技,下面分运算符说明。 1. 与(&) 计算式 a&b,a、b各位中同为 1 才为 1,否则为0,a&1和a%2效果一样;来看两?#36182;?#22411;的题目,第1道计算整数二进制中 1 的位数: n=n&(n-1)代表阅读全文

    LeetCode编程训练 - 回溯(Backtracking)

    2019-04-13 21:04 by bangerlee, 35 阅读, 收藏, 编辑
    摘要: 回溯基础 先看一个使用回溯方法求集合子集的例子(78. Subsets),以下代码基本说明了回溯使用的基本框架: 即回溯方法主要有以下四个步骤: 一些情况下需要对数据进行预先处理,或在第2步直接检查以决定是否抛弃当前路径,以避免过多地递归、带来时间损耗。换而?#28798;?#19981;满足条件的路径越早抛弃越好。 理解阅读全文

    LeetCode编程训练 - 折半查找(Binary Search)

    2019-04-12 11:39 by bangerlee, 146 阅读, 收藏, 编辑
    摘要: Binary Search基础 应用于已?#21028;?#30340;数据查找其中特定值,是折半查找最常的应用场景。相比线性查找(Linear Search),其时间复杂度减少到O(lgn)。算法基本框架如下: 以上查找范围的上下限 i 和 j 代表索引,算法过程可视化:Binary Search,STL中有序区间函数up阅读全文

    分布式系统理论 - 从放弃到入门

    2017-01-01 02:45 by bangerlee, 5468 阅读, 收藏, 编辑
    摘要: 随承载用户数量的增加和容灾的需要,越来越多互联网后台系统从单机模式切换到分布式集群。回顾自己毕业五年来的工作内容,同样有这样的转变。 毕业头两年负责维护运行在刀片机上的业务,在机房里拔插单板的日子是我逝去的青春。设备之间通过VCS组成冷备,但即使有双机软件保护,宕机、网络丢包等问题发生时业务仍会受影阅读全文

    分布式系统理论进阶 - Paxos变种和优化

    2016-12-18 20:38 by bangerlee, 4092 阅读, 收藏, 编辑
    摘要: 引言 《分布式系统理论进阶 - Paxos?#20998;?#25105;们了解了Basic Paxos、Multi Paxos的基本原理,但如果想把Paxos应用于工程实践,了解基本原理还不够。 有很多基于Paxos的优化,在保证一致性协议正确(safety)的前提下,减少Paxos决议通信步骤、避免单点?#25910;稀?#23454;现节点负载阅读全文

    分布式系统理论进阶 - Raft、Zab

    2016-10-26 21:50 by bangerlee, 10923 阅读, 收藏, 编辑
    摘要: 引言 《分布式系统理论进阶 - Paxos?#26041;?#32461;了一致性协议Paxos,今天我们来学习另外两个常见的一致性协议——Raft和Zab。通过与Paxos对比,了解Raft和Zab的核心思想、加深对一致性协议的认识。 Raft Paxos偏向于理论、对如何应用到工程实践提及较少。理解的难度加上现实的骨感,阅读全文

    分布式系统理论基础 - 选举、多数派和租约

    2016-08-21 21:11 by bangerlee, 6291 阅读, 收藏, 编辑
    摘要: 选举(election)是分布式系统实践中常见的问题,通过打破节点间的对等关系,选得的leader(或叫master、coordinator)有助于实现事务原子性、提升决议效率。 多数派(quorum)的思路帮助我们在网络分化的情况下达成决议一致性,在leader选举的场景下帮助我们选出唯一lead阅读全文
    江苏11选5软件