July 10, 2016
Programming
C++中typename关键字的使用方法
1.用在模板定义里,标明其后的模板参数是类型参数。例如
12345678910template<typename T, typename Y>T foo(const T& t, const Y& y) { /*. ...
Read more
March 12, 2016
Programming
最近在搞性能优化,读了一篇挺有意思的相关论文。
Performance of memory reclamation for lockless synchronization
几种Memory Reclaimation Scheme评测了几种回收机制的性能:
QSBR quiescent- ...
Read more
March 2, 2016
Database
最近又零散地看了一些mvcc/snapshot的东西,有了一些新的理解和观点,记录一下,内容比较碎,不一定正确,欢迎大家讨论拍砖。
在某些实现下,2PC会影响MVCC ?MVCC相比lock-based的并发控制,可以使得写不阻塞读。不过如果如果使用基于时间戳的行级多版本,在有分布 ...
Read more
October 3, 2015
Programming
最近又零散地看了一些mvcc/snapshot的东西,有了一些新的理解和观点,记录一下,内容比较碎,不一定正确,欢迎大家讨论拍砖。
在某些实现下,2PC会影响MVCC ?MVCC相比lock-based的并发控制,可以使得写不阻塞读。不过如果如果使用基于时间戳的行级多版本,在有分布 ...
Read more
June 20, 2015
Misc
没想到wordpress的latex插件支持的这么好。
写了几个例子,**右键”Show Math As”=>”Tex Commands”**可以看原始文本。
花体字母$\scr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
$\scr{abcdepfghijkl ...
Read more
June 10, 2015
Database
关系型数据库具备事务ACID的特性:原子性、一致性、隔离性、持久性。
原子性是说,事务的操作要么都完成,要么都不完成。一致性是说事务不能破坏数据库的一些约束。隔离性是说,并发事务执行时,如何看到其他事务的执行结果。持久性是说,宕机重启后,数据库状态还能恢复。
在分布式数据库中,原子性通常可以 ...
Read more
June 10, 2015
Database
Percolator是Google在2011年发的论文,用于替换MapReduce做索引。核心是分布式事务和观察者通知机制。
概述Google搜索引擎建立网页索引:通过处理网页库,会建好一个索引库。之后爬虫会新抓下来少量页面(相比于原始网页库的数量)。对于新抓来的页面,如何处理?有两种方式。 ...
Read more
June 2, 2015
Database
本文是Bigtable论文的阅读笔记,比较简略。
1 基本概念介绍Bigtable本质上是GFS之上对GFS文件数据的一层索引。
1.1 Bigtable的数据模型一个稀疏的分布式的持久化的多维度的排序的map。所谓map,就是key-value对。
如图示,bigtable的数据模型是: ...
Read more
June 1, 2015
Database
之前上学的时候读过Google三架马车的论文,后续再读时,发现有些地方以前理解还是不够深刻。本文是重新学习GFS论文时记录的阅读笔记,行文比较散,主要是记录一下自己比较感兴趣的点,有需要的同学还是请直接参考原始论文。
1 背景用大量普通机器搭建集群,因此节点失效成为集群中常态的问题,GFS必 ...
Read more
August 10, 2014
Programming
本文是 Why Functional Programming Matters的阅读笔记,用相对通俗的语言解读了这篇论文,并对我觉得重要的一些点做了一些解释,欢迎在读这篇论文的朋友留言交流。不得不说的是,这篇论文大量涉及到SICP这本书中的知识,所以如果能看过SICP再看这篇论文,相信应该会轻 ...
Read more