Scaling Replicated State Machines with Compartmentalization,VLDB 21'
本文是针对Multi-Paxos协议的实现方案瓶颈做的扩展性方案,主要的方法论是compartmentalization,这个词本意是分离,在这里作为一种方法论,其含义是将各个功能进行剥离分开,并分别进行扩展。
Multi-Paxos的多个模块都有一些实现方案上的瓶颈,假设读者已经熟悉Multi-Paxos协议内容,我们根据论文的思路看看各个瓶...
Extensible/Rule Based Query Rewrite Optimization in Starburst
《Extensible/Rule Based Query Rewrite Optimization in Starburst》SIGMOD 1992
这篇文章是介绍Starburst的基于规则的优化器实现框架。
背景
很多业务的SQL语句或类SQL语句,尤其是中间件软件自动生成的SQL语句,主要面向业务模型,如果不做query rewrite,可能执行非常慢。
例如:
12345678
DISTINCT PFROM Patient p IN Patient_S...
REMIX: Efficient Range Query for LSM-trees
《REMIX: Efficient Range Query for LSM-trees》FAST'20
LSM-Tree引擎的scan操作是一个引擎固有的短板,其根源在于相比基于B+Tree的引擎如InnoDB的数据全局有序,LSM-Tree的数据有序性差,它由多个sort run组成,因此scan的时候需要对多个sort run进行merge。
考虑如下的情况,比如做一次全表扫描,扫描过程中对若干sort run进行了merge。但再有一次全表扫描时,还是需要进行一次merge。两次merge...
搭建Linux内核调试环境
这篇文章介绍下在MacOSX如何用gdb + vmware的方式调试Linux内核。
一:安装Vmware Fusion
二:安装gdb
注意这里需要安装高版本的gdb,这里安装的是8.2版本
123456
wget http://ftp.gnu.org/gnu/gdb/gdb-8.2.tar.gztar xf gdb-8.2.tar.gzcd gdb-8.2./configure --build=x86_64-apple-darwin14.0.0 --target=x86_64-vfs-lin...
Databricks Lakehouse
《Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics》 CIDR21'
整片文章讲的比较宽泛。
Introduction
第一代数仓:结构化数据,用于决策支持和BI。
第二代数仓:解决存储和计算资源耦合、无弹性、非结构化数据激增等问题,采用了data lakes方案,采用开放格式,数据存储到分布式文件系统,主要代表是Hadoop运动。
第三代数仓,2015年...
阿里LSMTree存储引擎X-Engine
X-Engine是阿里云研发的LSM-Tree结构的存储引擎,主打低存储成本带来的性价比。
问题
the tsunami problem 海啸问题:122倍突发流量
the flood discharge problem 泄洪问题:将内存数据快速转到持久化存储组件
the fast-moving current problem 快变洋流问题:热点行变化快
架构
优化总结
读路径优化
Extent
Cache
多版本SuperVersion
增量cache替换
写路径优化
memtable热点行优化
...
Access Path Selection in a RDBMS
《Access Path Selection in a Relational Database Management System》 1979
SQL语句处理的四个阶段:Parsing, Optimization, Code Generation, Execution。
query block: 由select from where表达的查询块。
单表查询
代价
Access Path Cost公式: cost = page fetches + w * (RSI calls),其中rsi for system R storage interface。
公式是IO代价(主要是读取页面)和CPU代价(System R...
Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
产品特征
...
Data Storage Management in Cloud Environment
这是一篇综述性质的文章,讲的是云计算环境的数据存储,这里先罗列下文章目录结构。
Introduction
Overview
A Comparison of Data-Intensive Networks
Terms and Definitions
Data-intensive Application
Architecture, Goals and Chanllenges of Intra-Cloud Storage
Architecture, Goals and Chanllenges of Inter-Cloud Storage
Data Model
Data Structure
Data Abstraction
Data Access Model
...
论文阅读 - OLTP Through the Looking Glass
这篇文章是08年SIGMOD的文章。
OLTP系统各组件开销
很多OLTP数据库的架构扔延续了70年代面向当时的硬件的设计,但30年来,现代CPU、内存、网络等等已经有了很大的变化。这篇论文分析了一个OLTP数据库的各个组件的开销。
OLTP系统设计趋势
Cluster Computing
从单机多线程的架构,在80年代有了shared disk的架构,最近20年又有shared nothing的架构。再以后的数据库必须要考虑面向集群。
Mem...