2012-04-27 60 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