时间:2022-12-14 22:30:01 | 来源:信息时代
时间:2022-12-14 22:30:01 来源:信息时代
长事务管理 : 工程数据管理所特有的一种事务管理方式,在工程设计中,通常要在交互状态下使用一组数据数小时,甚至数天,为保持数据的一致性和完整性,如果仍采用封锁一部分数据的方式,就让人难以接受了。工程事务处理过程的长期性、协作性和试探性等特点要求必须摒弃商用事务处理中封锁数据库这种简单的等待或放弃方式,既不能要求用户对合理申请进行长时间的等待,也不能简单地对失败的操作进行放弃,而应建立一套新的机制以支持工程事务的长期性和试探性特点。
长事务处理时通常采用设置保存点(savepoint)的方式,将需要封锁的数据的副本从数据库中取出,为设计者设立专门的工作区,并在数据库中用保存点对该部分数据进行标记。这样数据库仍然可由其他用户使用,而事务处理结束后,工作区中的数据恢复到数据库中时,在保存点之间进行,以保持数据的一致性。
事务处理的核心是日志(log)。在事务处理过程中,每一个操作都应遵循“先写日志”协议,即在对数据库进行操作前,应先将所作的修改记入日志中,以备将来恢复和回退时使用这些信息。这样,一旦系统崩溃,事务管理模块可以根据记录在日志文件中的信息,恢复到崩溃前的状态。而回退功能也可以利用日志文件中记录的信息,使用户在不同的结点之间进行状态转换。
事务的并发功能是允许不同事务同时执行,其中的关键技术是冲突解决。一般工程数据库都通过锁机制来解决冲突,在工程数据管理中,长事务持有的锁是持久锁。