您的位置:首页 > 理论基础 > 数据结构算法

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

2016-10-19 20:59 274 查看
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)做主键,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: