cc-5-1

还有一类并发控制的方法:多版本控制(multivesion concurrency control, MVCC)。每个写操作,都会产生一个新的版本,而不是覆写。这样做的好处是,一般不会reject一个操作(事务),即使按照history来说这个操作已经来迟了。而且也不会有太多额外的开销,因为对于下层的DM来说,为了支持recovery,也一般需要存储多个版本。只不过之前DM维护这些版本,对Scheduler不可见而已。

Read More

Speedup RW-conflict tracking in PostgreSQL

    Read More

    NVM library 源码分析(1) libpmem

    NVML是Intel提供的一个操作NVM的库。背景是把NVM硬件当成一个文件,通过mmap映射到内存空间中来。为了方便使用,在裸的NVM的基础上包装了一些函数,类似于libc中malloc、free等函数,来方便程序员进行内存、事务等管理。其中,libpmem是NVML里面最基础的一个库,也是比较简单的。本文分析了libpmem的源码。

    Read More

    core-chip-processor-socket等的区别

    Core

    Core表示一个逻辑计算单元,有着单独的L1 cache,能够独立地执行进程或线程。我们日常碰到的双核,4核,其中的核指的就是这个core。可以说是最小的单位了。

    Read More

    tsx

    Hardware Lock Elision

    XACQUIRE和XRELEASE两个接口。

    Read More

    BigTable

    BigTable是google的一个keyvalue store,和dynamo很像。区别是支持范围查询,而dynamo只是纯hash,所以不能范围查。

    Read More

    dynamo

    Dynamo是Amazon的分布式 key-value store。

    Read More

    spark

    MapReduce、Drayd包括本文的Spark,都是高级的集群编程模型。前两者都是基于非循环的数据流模型,从物理存储加载;经过DAG的一系列操作,写回到稳定存储。但是这种方式对于迭代式计算、交互式程序效率很低,需要不断地重复读写磁盘。Spark就是针对这种应用方式,提出了一种新的数据模型——RDD(resilient distributed datasets)。

    Read More

    dryad

    Dryad是微软推出的一个分布式计算框架,类似于MapReduce。但影响力远不如MapReduce。跟MapReduce的区别是编程接口更复杂/灵活。

    Read More

    MapReduce

    MapReduce 是google提出的一套计算框架。灵感来源于一些函数式语言。Map 指的是对一个数组所有的元素,全都执行一遍Map函数,得到一个解的数组;Reduce指的是给定一个数组,对数组里的元素两两进行Reduce操作,最后得到一个解。现在在python里面就有map reduce的用法。这里google把它应用到分布式系统里来了,用来处理大规模的数据问题。

    Read More

    算法(下)

    算法与算法复杂性分析(下)

    Read More

    算法(上)

    算法与算法复杂性分析(上)

    Read More

    tpc-c

    TPCC是一个测试数据库性能的benchmark,是一个标准。很多transaction相关的论文都是以这个标准来评测性能的。

    Read More

    Bayon(最终一致性)

    场景:会议室预定系统;手机和后台交互。

    Read More

    释放一致性

    IVY的问题,每次page fault都需要传一个完整的page,4KB,性能太差。

    Read More

    分布式共享内存

    分布式共享内存,Distributed Shared Memory(DSM),是一种构架,多个机器共享所有的内存,看到的是同一块地址空间。这样就像使用同一个机器一样,操作不同机器上的内存了。

    Read More

    拜占庭算法

    拜占庭的问题是:在一个集群中,某些节点可能是恶意的。而恶意的节点的目标是阻止集群获得协商一致。

    Read More

    虚拟文件系统

    占个坑,有空来写一写

    Read More

    cc-4 "Non-locking concurrency control"

    本章介绍两种不用加锁的并发控制协议,一种是时间戳(timestamp ordering),一种是序列图检测(serialization graph testing)

    Read More

    cc-3-3

    占坑。。

    Read More