大数据日知录【第三章:常用数据结构与算法】笔记

Bloom Filter  查询一个数据是否存在于一个集合里面,节约空间的同时却又一定的误判率,也无法删除一个元素,于是计数的Bloom Filter便出现了,可以当成一个缓冲将其放入内存,比如如果查询发现查不到,那就是真不存在,如果存在了,那么可以在磁盘上确认一下。

SkipList 替代平衡树的一种数据接口,某写节点上有指针分别指向后面的节点,这个指针的数据量就是层数,查找的时候就是一层层的查找。

LSM树将大量的随机写操作转换成批量的序列写操作,核心思想是有一个内存表去维护插入的数据的顺序,然后顺序写,另外有一个本地文件作为log,防止内存数据丢失

Merkle 可以通过一步步hash得到树的根节点,然后可以在O(log(n))复杂度下,快速定位少量变化的内容。

Snappy 一种高效的压缩算法 通过当前活动窗口中的元素和向前缓冲区中元素相同的位置和个数,进行数据压缩。压缩和解压的原理本质是通过增加CPU的计算时间换取较小的存储空间。

Cuckoo 哈希方法的一种,主要目的是为了解决Hash冲突时导致的查询的时间复杂度远大于O(1),通过两个Hash算法,得到两个Hash值,若某一个Hash值对应的桶没有该数据则存储,如果两个桶都有则替换掉原有位置的数据,如果产生无限循环,到达一定的循环次数后增加存储空间。

SILT和Cuckoo的核心思想一样,所不同的是不在是key 而是HASH(key)做主键,

原文地址:https://www.cnblogs.com/sunshisonghit/p/5978705.html