大数据日知录【第三章:常用数据结构与算法】笔记
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)做主键,
SkipList 替代平衡树的一种数据接口,某写节点上有指针分别指向后面的节点,这个指针的数据量就是层数,查找的时候就是一层层的查找。
LSM树将大量的随机写操作转换成批量的序列写操作,核心思想是有一个内存表去维护插入的数据的顺序,然后顺序写,另外有一个本地文件作为log,防止内存数据丢失
Merkle 可以通过一步步hash得到树的根节点,然后可以在O(log(n))复杂度下,快速定位少量变化的内容。
Snappy 一种高效的压缩算法 通过当前活动窗口中的元素和向前缓冲区中元素相同的位置和个数,进行数据压缩。压缩和解压的原理本质是通过增加CPU的计算时间换取较小的存储空间。
Cuckoo 哈希方法的一种,主要目的是为了解决Hash冲突时导致的查询的时间复杂度远大于O(1),通过两个Hash算法,得到两个Hash值,若某一个Hash值对应的桶没有该数据则存储,如果两个桶都有则替换掉原有位置的数据,如果产生无限循环,到达一定的循环次数后增加存储空间。
SILT和Cuckoo的核心思想一样,所不同的是不在是key 而是HASH(key)做主键,
相关文章推荐
- 笔记之数据结构之常用算法
- 数据结构与算法(c语言) 学习笔记——第三章练习
- 3.[数据结构和算法分析笔记]栈 Stack
- [翻译]C#数据结构与算法 – 第三章基本排序算法
- 6.[数据结构和算法分析笔记]堆 Heap
- 数据结构于算法分析整理笔记1
- 2.[数据结构和算法分析笔记]链
- 我的数据结构、算法笔记
- 考试笔记03_数据结构_基本算法复杂度
- 数据结构与算法学习笔记——堆栈及其应用(10以内简单四则计算器)
- 数据结构与算法学习笔记——quick sort
- [翻译]C#数据结构与算法 – 第三章基本排序算法
- 数据结构与算法C++版(笔记)
- 数据结构与算法分析:C++描述(Mark Allen Weiss) 和 数据结构(刘大有)笔记
- 数据结构与算法学习笔记02_1(线性表)
- 8.[数据结构和算法分析笔记]散列 hasing
- JAVA 数据结构与算法学习笔记一(转载)
- 常用数据结构与算法之排序算法
- 【数据结构与算法】第三章 表c实现应用一-----------多项式
- 数据结构笔记(3)数组的算法