分布式并发控制算法评估

分布式并发控制算法评估
An Evaluation of Distributed Concurrency Control(VLDB17') 这篇工作主要是比较并评估了6种in-memory分布式数据库的并发控制计算法。   System Overview 论文在Deneva系统上做分布式并发控制算法实现和测试。 Architecture Deneva架构:shared-nothing Env Model 所有的事务都使用存储过程,有些协议只能执行确定事务(需要提前知道访问哪些行)。 数据按consistent-hash分布,client上配置locat...

Cwinux源码解析系列

Cwinux源码解析系列
Cwinux源码解析系列 系列说明: 本系列对Cwinux 2.3.7的部分代码进行了解析。如本系列第一篇博文所述,Cwinux是一个框架,结构比较复杂,从底层socket fd读取并构造消息,Reactor模式,创建线程池,Commander模式处理消息,以及更为复杂的异步Task等都有涉及。此外,Cwinux细节也非常多。 单从学习角度看,Cwinux框架涉及到的Linux环境编程知识覆盖面广,用法典型,文档和注释都非常规范详实,是学习Linux...

浅析CAP理论

浅析CAP理论

CAP理论是Eric Brewer在2000年前后提出的一个设计上的折中原则,大意是说,一个系统在Consistency、Availability、Partition Tolerance三者之间无法兼顾,必须舍弃一个。CAP理论作为一个设计折中原则,在后面的几年被人误解,因此Eric Brewer在2012年又写了一篇文章,着重解释了CAP的一些误解,一个系统并非一定要预先在CAP中彻底牺牲一个属性,更多的场景下,没有P发生时,CA可以兼得,而在P发生时,可以选择C或A中的一个,并在P结束后恢复。

LSMTree综述

LSMTree综述
  LSM-based storage techniques: a survey (VLDBJ 2020)   This paper aims to serve as a guide to the state of the art in LSM-based storage techniques for researchers, practitioners, and users.   LSMTree引擎在业界已经有了很多的落地。很多NoSQL系统如Bigtable、Dynamo、HBase、Cassandra、LevelDB、RocksDB、AsterixDB底层都是LSMTree引擎。RocksDB在Facebook的实时数据处理...

Helping compiler help you : Ispike, BOLT

Helping compiler  help you : Ispike, BOLT
《BOLT: A Practical Binary Optimizer for Data Centers and Beyond》 CGO 2019 《Ispike: A Post-link Optimizer for the IntelR ItaniumR Architectur》 CGO 2004   Helping compiler help you 现在数据中心跑的程序二进制文件普遍都比较大而且代码逻辑比较复杂,因此编译过程的优化在很多情况下能够显著提升性能。编译优化是一种 helping compiler help you的方式。 编译优化常见的几种优化技术...

浅谈数据库隔离级别

浅谈数据库隔离级别

本文介绍了关系型数据库的隔离性。ANSI标准里面定义了Read Committed, Repeatable Read, Serializable隔离级别,Jim Gray等针对ANSI的标准提出了改进,并介绍了Cursor Stability, Snapshot Isolation等隔离级别。

几道面试趣题( 打印重复数字 编码扑克牌 煎饼堆排序 随机选取数字 统计1的个数 )

几道面试趣题( 打印重复数字  编码扑克牌  煎饼堆排序  随机选取数字  统计1的个数 )

逛Quora的时候,看到一个有趣的问题。”What are the best programming interview questions you've ever asked or been asked?” (在编程面试中,你问过或者被问过的最好的问题是什么)里面有几道题目很有意思,在这里分享给大家。
第一道题:有一个长度为N+1的数组,里面的元素都是1~N的整数,但有些数字可能重复多次。例如1,1,3 ,3或者 1,3,2,2。现在要求打印出重复的数字(有多个数字重复时,可打印任意一个)。
第二道题目:去掉大小王的52张扑克牌,你和你的朋友事先约定一种策略,使得:我任意给你5张扑克牌,你选择一张留下,剩余的4张给你的朋友,你的朋友能够根据事先约定的策略,知道你留下的牌是什么。
从连续不断的数字流中随机选取一个数字(数字流只能过一遍),要求保证任意时刻,已经过去的数字流中任意一个数字被选中的概率相等。
给定整数N,计算从1到N的数字的二进制表示中所有1的个数。

Raft One-Server成员变更

Raft One-Server成员变更
前面介绍了Paxos成员组变更,现在根据Raft博士论文介绍一下Raft是怎么做成员组变更的。前者更多描述几个核心的思想,而后者更加实用,介绍了实践过程中遇到的一些实际问题。 Raft博士论文描述了两种变更方案: One-Server变更:一阶段变更,要求每次成员组从G1变成G2时,G2相比G1加一个成员或者减一个成员。 Joint Consensus:支持任意的变更,即从成员组G1变成G2,不要求G1和G2有什么关联,比如可以完全...

Calcite论文阅读笔记

Calcite论文阅读笔记
  Calcite是Apache旗下开源的、支持多种数据源、提供查询处理/查询优化/查询语言的基础软件框架。   Calcite的三个特点: 标准SQL: 工业级的SQL parser, validator, JDBC Driver 查询优化器:将查询表达为关系代数,计划生成,基于代价的优化 数据源适配:融合第三方数据源   SIGMOD18上的Calcite总结论文《Apache Calcite: A Foundational Framework for Optimized Query Processing Ove...