C-Store论文阅读笔记
C-Store论文由今年的图灵奖获得者Mike Stonebraker提出来,整体架构在数据库领域相当不错。数据库采用读写分开存的架构,只写块的数据定期会和只读块儿的数据进行合并,产生新的只读块儿。而C-Store在只读块儿部分做了读优化操作,这一点相当不错。
1. 数据模型
猜想商业数据库的Clustrix的存储数据模型就是收到了这篇论文的影响,所以才会有C-Store论文中提到的这样的数据模型构造。首先需要明确的一点是,C-Store本身是列数据库,所以存储数据是按照列为单位来进行存储,这样就可以玩出很多花样来,比如列压缩,列索引之类的。对于查询方面的优化是无疑的。
在数据模型方面,有两个重要的概念,一个是projection,一个是Segment。可以这么理解,projection是对表的纵切,而Segment是对表的横切。举一个实际的例子:
| Name | Age | Dept | Salary |
|---|---|---|---|
| Bob | 25 | 5 | Math |
| Bill | 27 | EECS | 50K |
| Jill | 24 | Biology | 80K |
那么一个projection可以是这样
| Name | Age |
|---|---|
| Bob | 25 |
| Bill | 27 |
| Jill | 24 |
一个Segement可以是这样
| Name | Age |
| -------- | ----- |
| Bob | 25 | 5 |
projection更类似与一个列族的概念,而Segement更像是一个行表的概念,只是对一个projection进行切分。
2. 压缩模型
列数据相对于行数据库而言,最大的优势就是压缩了,在C-Store这篇论文里面,针对RS(Rea-optimized Store)这一块儿的数据进行了压缩,论文里面探讨了四种情况下的压缩方案:
- Self-order,few distinct values:内排序并且少许不一样的数据,也就是说,这一列的数据是排好序的同时,重复数据比较多,那么压缩方案就好办了。利用一个三维向量表示(v,f,n),其中v表示value,f表示该value出现的位置,n表示该value重复的次数,例如在12-18号位置出现了4,那么就可以表示为(4,12,7)。
- Foreign-order,few distinct values: 这种情况下,采用位图压缩的方式对这一列进行压缩,例如一个列的值序列如下为 0,0,1,1,2,1,0,2,1,那么压缩的方式为(0,110000100),(1,001101001),(2,000010010)也就是如果该value出现在哪一号位置,就在对应的位图位置上置1。
- Self-order,many distinct values: vaues:在这种情况下,前面的两种压缩方案都不会适用了,在C-Sotre论文中提到了一种增量压缩的方式,在一列数据中,每一个值都可以由他的前一项进行推导出来,例如一个列数据序列1,4,7,7,8,12,那么压缩之后,这个序列变为:1,3,3,0,1,4。
- Foreign-order,many distinct values: 在这种情况下,压缩基本不可能实现,但是可以用一颗紧凑的B+树对其进行索引。
C-Store论文阅读笔记的更多相关文章
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- [置顶]
人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...
- Nature/Science 论文阅读笔记
Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...
- 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification
Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...
- 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification
论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...
- [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering
[论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...
- [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks
[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...
随机推荐
- 【剑指Offer】3、从尾到头打印链表
题目描述: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解题思路: (三种方法:借助栈.递归.列表的首位插入) 从头到尾打印链表比较简单,从尾到头很自然的可以 ...
- 布尔类型、操作符别名、C++函数、动态内存分配(new\delete)、引用(day02)
六 C++的布尔类型 bool类型是C++中基本类型,专门表示逻辑值:true/false bool在内存上占一个字节:1表示true,0表示false bool类型可以接收任意类型和表达式的结果,其 ...
- html_entity_decode()、空格、 乱码问题
普通 ASCII 码空格为 32,但是浏览器会对普通空格进行自动归并,也就是如果你输入10个 0x20 的空格在HTML页面里面,可能会被合并成一个空格. 如果想要一致的呈现多个空格,就要用到 编码标 ...
- Redis启动出错 noauth authentication required.
输入认证过的密码即可. 在命令行中运行: auth password
- mongodb--安全
安全和认证 mongodb和redis比较像,安全部分依赖于其所存在的环境 一定要把mongodb放在一个可信的环境下去运行,mongodb只能被web服务器所访问,禁止开外网端口访问mongodb, ...
- 谈论java中怎样处理高并发的问题
1 从最基础的地方做起,优化我们写的代码,降低必要的资源浪费. a.避免频繁的使用new对象.对于整个应用仅仅须要存在一个实例的类.我们能够使用单例模式. 对于String连接操作,使 ...
- URAL 1826. Minefield(数学 递归)
题目链接:http://acm.timus.ru/problem.aspx? space=1&num=1826 1826. Minefield Time limit: 0.5 second M ...
- swift+moya URLCahe
1.定义获取缓存策略的接口 import Foundation protocol CachePolicyGettable { var cachePolicy: URLRequest.CachePoli ...
- 南海区行政审批管理系统接口规范v0.3(规划) 3.业务办理API 3.1.businessAuditById【业务办理】
{"c_accept":"Q2015112400002","c_operators":"gz99","v_op ...
- 移动端的click事件延迟触发的原理是什么?如何解决这个问题?
移动端的click事件延迟触发的原理是什么?如何解决这个问题? 原理 :移动端屏幕双击会缩放页面 300ms延迟 会出现点透现象 在列表页面上创建一个弹出层,弹出层有个关闭的按钮,你点了这个按钮关闭弹 ...