2012-04-27 103 views
-1

如何在非事務性數據庫中實現事務。如何在非事務性數據庫中實現事務

1)請解釋如何在java端做到這一點。

注:我將分享我在尋找答案時的努力。

假設您在單個事務中有兩個插入和兩個更新。所以你將有四個線程執行每條指令,一個線程將監視它們。如果某個線程出現故障,監控線程將取消所有內容。

+0

到目前爲止你有什麼想法? – 2012-04-27 12:43:44

+0

@BrianRoach這是面試問題之一,因爲我已經標記了它。所以我問了開發人員的想法。請原諒我,如果我做錯了什麼。 – 2012-04-27 12:58:36

+0

@DaveNewton我已經明確了這個想法。 – 2012-04-27 12:59:03

回答

1

參與事務的每個線程都有一個事務ID。你需要創建一個他們可以寫入的結構來跟蹤數據(或鍵)以便退出變化。

就像真實的數據庫一樣,當你進行更新時,需要存儲之前更改過的數據,並且還需要記錄更改後的數據。你需要這個,因爲你可能需要它來查找記錄。

插入有點容易,只需刪除記錄。

刪除需要存儲之前刪除的數據。

因此,您創建的任何結構都需要一個事務ID,一個表名稱和一個列數據列表(可以是String的映射,用於存儲列名稱,列數據的對象)。

這應該是一個不錯的開始...

+0

感謝Mike的有用評論。 – 2012-04-28 12:05:46