Cwinux源码解析系列

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

What's Really New with NewSQL?

What's Really New with NewSQL?
  这篇文章介绍的面很广,提到了诸多系统,不过每个点都不太细。另外虽然是16年的文章,但不知道为啥还是感觉有点陈旧了。。。简单来说,当个手册看吧,遇到具体细节问题,可以找文中提到的具体系统参考下。这里捡我感兴趣的点罗列了一下,详细内容读者可以看原文。   DBMS简史 1968年第一个DBMS上线,IBM在数据库领域发力甚早,比如System R,不过没有对外。 70年代,Oracle发布了第一个版本。 ...

Anna KVS中的Lattice是什么?

Anna KVS中的Lattice是什么?

Anna KVS官网对Anna的特性总结得非常到位:1. Crazy Fast, 2. Super-Scalable, 3. Flexibly Consistent。这里只关注Flexibly Consistent这一项,讲讲Anna是怎么实现灵活的consistency的。这篇博客算是论文导读,详细内容读者仍要仔细阅读论文原文 Anna: A KVS For Any Scale。
Lattice是什么,基于格怎么实现灵活的多种一致性,漫谈Consistency和Isolation Level。

C++中typename关键字的用法

C++中typename关键字的用法

本文介绍了C++中typename关键字的使用方法。
1.用在模板定义里,标明其后的模板参数是类型参数。
2. 模板中标明“内嵌依赖类型名”
3. 例外 (1) 类模板定义中的基类列表。 (2) 类模板定义中的初始化列表。

《挑战程序设计竞赛》读书笔记(三)图算法 图搜索 最短路 最小生成树

《挑战程序设计竞赛》读书笔记(三)图算法 图搜索 最短路 最小生成树

本文是《挑战程序设计竞赛》读书笔记的第三篇,主要涉及图算法,图的搜索,单源最短路和所有点对的最短路Floyd算法,最小生成树算法。文中解释了Roadblocks问题:求出图中指定的起点s和终点e之间次短路(第二短的路径);Conscription招兵问题。

Raft One-Server成员变更

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