2016-07-14 35 views
1

我需要爲MVCC快照隔離生成數據庫時間戳。典型的方法中使用:併發數據庫MVCC時間戳生成方法

「事務動作在SI-TM實現如下 TM BEGIN:通過獲得使用原子增量 到全局時間戳計數器的唯一時間戳生成 用於交易的邏輯快照。 「

在具有數百個內核的系統中使用此方法的問題是它不能縮放。在有爭議的內存位置上每秒有10M原子增量的硬件限制。

任何想法?

回答

0

這裏有兩個簡單的想法,以及紙張參考:

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] 

雖然這降低了原子計數器中的壓力,因爲我們從這個例子可以看出,一些客戶(如客戶C)將獲得相對較高範圍的ID,而其他客戶則獲得較低範圍(客戶A),這將導致系統中更高的中止率。

2)使用範圍爲交錯交易標識符。這就像1,但我們已經添加了一個步驟變量S.這裏有一個簡單的例子:如果N = 5且S = 3,並且計數器的初始值爲1,則客戶端AB和C將得到以下內容:

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的一個有趣的,但更復雜的,分散的方式在這裏描述:

塗,泉,聞聽鄭,埃迪 - 科勒,里氏芭芭拉和塞繆爾·馬登。 「多核內存數據庫中的快速事務處理」。在Proceedings of the Twenty-4th ACM Symposium on Operating Systems Principles,pp.18-32。 ACM,2013.