张俊林著
2014年9月 第1版
IBM 用 3V ,大容量(Volume),多形式(Variety)从数据的类型角度来看,高速率(Velocity)数据产生效率的实时性角度。
后又加一个:Value 价值密度低的数据。
数据备份,三份
CAP 主义:Consistency/ Availability/ Partition Tolerance
强一致性,可用性,分区容忍性
不可兼得,只能放弃一个,保证另二个。
Eric Brewer 于 1999年提出。
于 2012年又发表文章
ACID 原则
原子性,一致性,事务独立,持久性
BASE 原则
基本可用,软状态或者柔性状态(不要求数据任意时刻都完全保持同步),最终一致性
幂等性(Idempotent)
分布式中的定义是:调用方反复执行同一操作与只正确执行一次操作效果相同。
强一致性,弱一致性,最终一致性,因果一致性,“读你所写”一致性,会话一致性,单调读一致性,单调写一致性。
副本更新
同时更新,主从式更新(同步方式,异步方式,混合方式),任意节点更新。
两阶段提交协议
一,表决阶段
二,提交阶段
RWN协议(亚马逊)
N 在分布式存储系统中,有多少份备份数据。
W:一次成功的更新操作要有至少 W 份数据写入成功
R:一次成功的更新操作要有至少 R 份数据成功读取。
R + W > N
Paxos 协议
一致性协议
没有可证明的协议实现,其论文原则是证明的。但难度大,程序实现则没有。
1,副本状态机模型(Replicated State Machines)
2, Paxos 基本概念
单Paxos
多 Paxos
3,Paxos 一致性协议
4,Raft 协议
布隆过滤器(Bloom Filter)
二进制向量数据结构,有很好的空间和时间效率。用来检测某个元素是否是巨量数据集合中的成员。
无法删除集合成员,只能增加成员
Snappy 是 google 开源出的高效数据压缩与解压缩算法库,目标是在合理的压缩率基础上追求尽可能快的压缩和解压缩速度。
单核 250MB/s 压缩,500MB/s 解压缩。
Snappy 是基于 LZSS 算法的。
LZSS 是 LZ77 的优化算法。
是一种动态词典编码,思路:文本中的词用它在词典中表示位置的号码代替的无损数据压缩方法。
Cuckoo 哈希 于 2001 年提出,有效解决哈希冲突问题。
在 O(1) 时间复杂度查找和删除数据。
在常数时间内插入数据。
50%哈希空间利用率。
列式数据库
全球的数据部署,千亿级别的数据规模,极低的数据读/写延迟,类 SQL 操作接口,分布式事务支持。
RNUTS 支持多数据中心部署
区域:Region
流式计算
主从模式,P2P
交互式数据分析
Hive
Shark
Dremel
机器学习
1,服务层客户端
2,服务层
3,HDFS
4, Hadoop
5,( 3, 4, ) 支持下计算层
6,Config
Oryx 体系结构
读起来非常好的书,虽然篇副不大,但每字每句都恰到好处。