这篇paper比较老,是列存比较基础的论文

几乎所有列存,或olap的论文都会引用这篇

行存面向写,支持OLTP

列存面向读,支持OLAP

基于磁盘的DBMS,瓶颈基本在磁盘IO,所有做的工作都是用多余的cpu来换取磁盘IO

总体的思路,压缩让需要存的数据更小,densepack,更多的数据一起存,这样会更紧凑?

本论文的创新点,如下

Hybrid架构

这个架构很有借鉴意义,因为一种结构很难同时满足TP和AP的需要

所以用两个系统,一个用于write-optimized,一个用于read-optimized,中间用一个tuple mover进行数据的同步

后续很多列存和ap系统都是用的这种架构

数据模型

这里提出的数据模型,比较有意思

Table只是一个逻辑概念,真正存储的是projections,

projection是columns的集合,并且projection之间是可以overlap的

这其实不就是把一张表,拆成多张表吗?或者可以认为是一种行存和列存的balance?类似Hbase的column family

降低了数据库管理的成本

可以对不同的projection不同的排序,当前不同排序的成本是很高的,需要多存一份数据

数据冗余可以用于数据恢复,因为一个colunm往往在不同的projections中存了多份

避免join,因为这个projection可以包含外表的字段,但是由于表拆的更小了,所以又增加了join的概率,双刃剑

数据压缩

在RS端,需要对数据进行压缩来降低磁盘IO

在WS端,就不需要加压缩了,因为本身数据在memory,而且WS只是cache实时数据,数据量不大

分成4种情况,

自身有序,大量重复,记录length

自身无序,大量重复,bitmap

自身有序,少量重复,记录delta

自身无序,少量重复,无解

并且对于数据value,可以再加上B-tree索引,因为RS是没有更新的,所以索引可以建的非常紧凑,不会有空洞,densepack

Snapshot Isolation

SI的核心问题,是在查询时间ET,我们要决定在WS和RS中哪些records是visible的?

SI,之所以是Snapshot,就是不能update in place,写不影响原来的读

所以update变成,一个insert和一个delete,这样如果我们记录下,insert和delete的时间,然后和ET比较,就可以判断这个record是否可见

这里决定以绝对时间来作为visible的判断,粒度太小,所以提出epoch

所以会保存insertion vector和deleted record vector,记录每个record的insert和delete的epoch

Epoch是什么,

对时间的划分

有个leader TA,会定期发送message,告诉大家可以epoch+1

然后大家会进入下一个epoch,并且等当前epoch的Transaction都结束后,reply到TA

TA收到所有的reply,就会把HWM设为改epoch,然后广播给大家,这样HWM以下的数据都是被读到的

C-Store: A Column-oriented DBMS Mike的更多相关文章

  1. MapReduce的核心资料索引 [转]

    转自http://prinx.blog.163.com/blog/static/190115275201211128513868/和http://www.cnblogs.com/jie46583173 ...

  2. 资源list:Github上关于大数据的开源项目、论文等合集

    Awesome Big Data A curated list of awesome big data frameworks, resources and other awesomeness. Ins ...

  3. Awesome Big Data List

    https://github.com/onurakpolat/awesome-bigdata A curated list of awesome big data frameworks, resour ...

  4. Oracle 12.1.0.2 New Feature翻译学习【In-Memory column store内存列存储】【原创】

    翻译没有追求信达雅,不是为了学英语翻译,是为了快速了解新特性,如有语义理解错误可以指正.欢迎加微信12735770或QQ12735770探讨oracle技术问题:) In-Memory Column ...

  5. PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)

    100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...

  6. PayPal 高级工程总监:读完这 100 篇文献,就能成大数据高手

    原文地址 开源(Open Source)对大数据影响,有二:一方面,在大数据技术变革之路上,开源在众人之力和众人之智推动下,摧枯拉朽,吐故纳新,扮演着非常重要的推动作用:另一方面,开源也给大数据技术构 ...

  7. 100 open source Big Data architecture papers for data professionals

    zhuan :https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan Big Da ...

  8. CNCF CloudNative Landscape

    cncf landscape CNCF Cloud Native Interactive Landscape 1. App Definition and Development 1. Database ...

  9. LIST OF NOSQL DATABASES [currently 150]

    http://nosql-database.org Core NoSQL Systems: [Mostly originated out of a Web 2.0 need] Wide Column ...

随机推荐

  1. 地产propretie单词propretie财产

    中文名:房产财产地产 外文名:property.propretie 释义:财产.所有物等 用法:作名词. 词汇搭配动词+-等 目录 1 英文释义 2 释义例句 3 词汇搭配 4 衍生 英文释义 1. ...

  2. FreeRTOS 任务通知模拟计数型信号量

    举例 //释放计数型信号量任务函数 void SemapGive_task(void *pvParameters) { u8 key; while(1) { key = KEY_Scan(0); // ...

  3. MySQL Table--独立表空间

    数据库表空间 独立表空间 在MySQL 5.6 中引入独立表空间的概念,启用独立表空间后,每个表将生成独立的文件来进行存储. 创建表时可以指定表存放的文件路径 ##首选需要确保innodb_file_ ...

  4. HTTP认识

    一.相关名词解释 1. 超文本:是指包含指向其他文档的超链接的文本 2. 万维网:简称web,是一个分布式的超媒体系统,它是超文本系统的扩充,以客户-服务器方式工作 3. 超媒体:文档包含文本,图片, ...

  5. LINUX基础学习之基础命令(3)--2019-11-22

    1.命令行展开   ~ USERNAME:展开用户的主目录 [root@CentOS-7-43 ~]# ls ~roo 公共 模板 视频 图片 文档 下载 音乐 桌面 {}:可承载一个以逗号分隔的列表 ...

  6. html中对应Word中的字体和字号

    原文链接:https://blog.csdn.net/xuexizhe88/article/details/79277587:https://blog.csdn.net/qq_31603575/art ...

  7. Codeforces C Match Points(二分贪心)

    题目描述: Match Points time limit per test 2 seconds memory limit per test 256 mega bytes input standard ...

  8. js动画--链式运动

    前面几节我们只是讲述了一种运动,这节课我将讲述链式运动:就以一个动作接着一个动作完成. 对于这个实现,我们只需要改变一下就可以实现了,设置一个回调函数. var timer; window.onloa ...

  9. “为了交项目干杯”对“那周余嘉熊掌将得队”、“男上加男,强人所男”的Beta产品测试报告

    "为了交项目干杯"对"那周余嘉熊掌将得队"."男上加男,强人所男"的Beta产品测试报告 格式描述 课程名称:软件工程1916|W(福州大学 ...

  10. RunLoop与线程,RunLoop的作用--runloop模型即位事件处理模型

    runloop的三大责任:生命周期管理.通信.调度. 一.线程缺省生命周期基础上的生命周期管理: 二.线程接收外部信息的通道 通过消息队列实现. 三.RunLoop即是消息处理循环,也是事件调度策略机 ...