mdtoc start
include_tasks 和 import_tasks
例子
示例结果:
继续阅读 »
mdtoc start
表现
重现问题的代码
解决方法
原因
继续阅读 »
mdtoc start
hash表中key的分布规律
当hash表中key和bucket数量一样时(n/b=1):
key的数量对3类bucket数量的影响
key的数量对bucket的均匀程度的影响
Load Factor: n/b<0.75
Load Factor: n/b>1
n/b 越大, key的分布越均匀.
计算
每类bucket的数量
空bucket 数量
有1个key的bucket的数量
多个key的bucket
key在bucket中分布的均匀程度
通过~~正太~~正态分布来近似
计算最小key数量 x
程序模拟
Reference
继续阅读 »
mdtoc start
表现
解决方法
定位问题过程
gdb-python: 搞清楚python程序在做什么
准备gdb
接入gdb
查看线程
查看调用栈
coredump
其他命令
pyrasite: 连接进入python程序
psutil 查看python进程状态
guppy 取得内存使用的各种对象占用情况
无法回收的对象
不可回收对象的例子 🌰
objgraph 查找循环引用
继续阅读 »
mdtoc start
内容简介
分布式系统的可靠性问题: 冗余和多副本
EC的基本原理
栗子🌰1: 实现k+1的冗余策略, 大概需要小学3年级的数学知识
栗子🌰2: 实现k+m的冗余策略, 大概需要初中2年级的数学知识
增加1个校验块, 变成k+2
实现k+m 的冗余
EC编码矩阵的几何解释
k=2, 为2个数据块生成冗余校验块
k=3, 4, 5...时的数据块的冗余
通过高次曲线生成冗余数据
从曲线方程得到的系数矩阵
EC解码过程: 求解n元一次方程组
[Vandermonde] 矩阵保证方程组有解
新世界: 伽罗华域 [Galois-Field] GF(7)
EC在计算机里的实现: 基于 伽罗华域 [Galois-Fiel
继续阅读 »
文字版: Erasure-Code: 工作原理, 数学解释, 实践和分析
more
继续阅读 »
Paxos 已经逐渐被承认是分布式系统中不可缺少的核心算法,
越来越多的分布式系统都是以paxos或其变种来达到强一致性的.
本文是一篇paxos入门教程, 从基本的分布式中的问题:
主从复制,quorum-rw等算法出发,
通过逐步解决和完善这几个问题, 最后推导出paxos的算法.
继续阅读 »
对于一个tcp连接,在c语言里一般有2种方法可以将其关闭:
c
close(sock_fd);
或者
c
shutdown(sock_fd, ...);
more
多数情况下这2个方法的效果没有区别,可以互换使用。除了:
继续阅读 »
使用git的同学是不是经常纠结于在开发过程中是应该频繁提交,
还是仔细构造提交点之后再提交?
前者可以让开发更流畅,不必打断思路,但会造成提交历史无法浏览;
后者可以构造漂亮易懂的提交历史,但码码时停下来考虑commit message
怎么造句是不是太影响情绪了。
继续阅读 »
There is a hash table:
It has b buckets.
It has n keys stored in it.
We assume that the hash function distributes keys uniformly.
A bucket can contain more than 1 keys.
继续阅读 »