Parallel processing 并发数据库MVCC时间戳生成方法

Parallel processing 并发数据库MVCC时间戳生成方法,parallel-processing,atomic,database-concurrency,mvcc,nosql,Parallel Processing,Atomic,Database Concurrency,Mvcc,Nosql,我需要为MVCC快照隔离生成数据库时间戳。使用的典型方法: “交易操作在SI-TM中实现如下。 TM BEGIN:生成事务的逻辑快照 通过使用原子增量获得唯一的时间戳 到全局时间戳计数器。“ 在具有数百个内核的系统中使用这种方法的问题在于它无法扩展。在有争议的内存位置上,存在每秒10M原子增量的硬件限制 有什么想法吗?这里有两个简单的想法和一份参考文件: 1) 不是将计数器增加1,而是将其增加N,从而有效地为客户端提供一系列事务标识符[c,c+N]。例如,如果N=5,且计数器的初始值为1,则客户

我需要为MVCC快照隔离生成数据库时间戳。使用的典型方法:

“交易操作在SI-TM中实现如下。 TM BEGIN:生成事务的逻辑快照 通过使用原子增量获得唯一的时间戳 到全局时间戳计数器。“

在具有数百个内核的系统中使用这种方法的问题在于它无法扩展。在有争议的内存位置上,存在每秒10M原子增量的硬件限制


有什么想法吗?

这里有两个简单的想法和一份参考文件:

1) 不是将计数器增加1,而是将其增加N,从而有效地为客户端提供一系列事务标识符[c,c+N]。例如,如果N=5,且计数器的初始值为1,则客户端a、B和c将得到以下结果:

A: [1, 2, 3, 4, 5]
B: [6, 7, 8, 9, 10]
C: [11, 12, 13, 14, 15]
A: [1, 4, 7, 10, 13]
B: [2, 5, 8, 11, 14]
C: [3, 6, 9, 12, 15]
虽然这降低了原子计数器上的压力,但正如我们从本例中看到的,一些客户端(如客户端C)将获得相对较高的ID范围,而其他客户端将获得较低的范围(客户端a),这将导致系统中较高的中止率

2) 使用交错事务标识符的范围。这类似于1,但我们添加了一个step变量S。下面是一个简单的示例:如果N=5,S=3,并且计数器的初始值为1,那么客户端a、B和C将得到以下结果:

A: [1, 2, 3, 4, 5]
B: [6, 7, 8, 9, 10]
C: [11, 12, 13, 14, 15]
A: [1, 4, 7, 10, 13]
B: [2, 5, 8, 11, 14]
C: [3, 6, 9, 12, 15]
这似乎已经解决了1的问题,但是考虑客户D:

D: [16, 19, 22, 25, 28]
现在,我们又回到了解决方案1所面临的同样问题上。必须使用这种技术来“搞定它”

3) 下面描述了一种有趣但更复杂的分散式事务ID分配方式:


Tu,Stephen,Wenting Zheng,Eddie Kohler,Barbara Liskov和Samuel Madden.“多核内存数据库中的快速事务处理”,《第二十四届ACM操作系统原理研讨会论文集》,第18-32页。ACM,2013。

这里有两个简单的想法和一篇论文参考:

1) 不是将计数器增加1,而是将其增加N,从而有效地为客户端提供一系列事务标识符[c,c+N]。例如,如果N=5,且计数器的初始值为1,则客户端a、B和c将得到以下结果:

A: [1, 2, 3, 4, 5]
B: [6, 7, 8, 9, 10]
C: [11, 12, 13, 14, 15]
A: [1, 4, 7, 10, 13]
B: [2, 5, 8, 11, 14]
C: [3, 6, 9, 12, 15]
虽然这降低了原子计数器上的压力,但正如我们从本例中看到的,一些客户端(如客户端C)将获得相对较高的ID范围,而其他客户端将获得较低的范围(客户端a),这将导致系统中较高的中止率

2) 使用交错事务标识符的范围。这类似于1,但我们添加了一个step变量S。下面是一个简单的示例:如果N=5,S=3,并且计数器的初始值为1,那么客户端a、B和C将得到以下结果:

A: [1, 2, 3, 4, 5]
B: [6, 7, 8, 9, 10]
C: [11, 12, 13, 14, 15]
A: [1, 4, 7, 10, 13]
B: [2, 5, 8, 11, 14]
C: [3, 6, 9, 12, 15]
这似乎已经解决了1的问题,但是考虑客户D:

D: [16, 19, 22, 25, 28]
现在,我们又回到了解决方案1所面临的同样问题上。必须使用这种技术来“搞定它”

3) 下面描述了一种有趣但更复杂的分散式事务ID分配方式:

Tu,Stephen,Wenting Zheng,Eddie Kohler,Barbara Liskov和Samuel Madden.“多核内存数据库中的快速事务”,《第二十四届ACM操作系统原理研讨会论文集》,第18-32页。ACM,2013年