在开始使用 KTM 之前,应了解以下术语的定义: 事务、 资源管理器、 事务客户端、 事务管理器、 日志流、 登记和 事务处理系统。
交易
事务是数据操作的集合。 所有操作都必须成功,事务处理才能成功。 如果所有操作都成功,则事务可以 提交(也就是说,可以永久公开其结果)。 如果任何操作失败,则必须 回滚,也就是说,必须删除所有更改,以便数据处于与事务操作开始之前的数据状态相同。
事务的操作是 原子、一致、隔离和 持久 (ACID)。
它们具有原子性,因为它们必须作为一个整体提交或回滚。
它们是一致的,因为这些操作无论是被提交还是被回滚,总是会产生准确的结果。
它们是隔离的,因为每个事务的结果在事务的操作被提交或回滚之前对其他事务不可见。
它们是持久的,因为在事务的操作被提交或回滚之后,这些操作的结果是永久性的。
交易的一个示例是使用自动取款机(ATM)将支票帐户中的资金转移到储蓄帐户时必须执行的作集。 支票帐户的借记和储蓄帐户的贷记必须显示为单个原子操作。
属于事务的操作也称为事务操作。
资源管理器
资源管理器是一个软件组件,用于管理可通过事务处理作更新的数据资源。 例如,如果要设计数据库系统,则可以提供一个资源管理器来存储和检索数据库的数据。 简单的 事务处理系统 (TPS)可能只有一个资源管理器。
资源管理器通常还提供一个公共接口,事务客户端可以调用该接口来访问资源管理器的数据。 例如,数据库的资源管理器可以提供一组函数,客户端可以调用这些函数来读取和写入数据库。
更复杂的 TPS 可以有多个资源管理器,每个管理器在参与系统的事务时管理单独的数据库或其他资源。
有关资源管理器的详细信息,请参阅 “创建资源管理器”。
在某些情况下,一个资源管理器优于其他资源管理器时,可以启动提交操作。 在 KTM 中,此类资源管理器称为 高级事务管理器。
事务客户端
事务客户端是一个软件组件,它访问资源管理器支持的数据库,通常通过调用资源管理器导出的函数。 客户端负责创建事务、执行资源管理器支持的一组操作,然后通知事务管理器(KTM)事务是应提交还是回滚。
有关事务客户端的详细信息,请参阅 创建事务客户端。
事务管理器
事务管理器(如 KTM)提供基础结构,使事务客户端和资源管理器能够相互通信。 它还跟踪每个事务的状态(但不会跟踪客户端和资源管理器处理的数据)。
事务管理器还可以协调系统崩溃后的恢复作。
事务管理器没有关于构成事务的数据或操作的知识。 数据和作由客户端和资源管理器控制。
KTM 提供事务客户端可以调用的函数。 客户端可通过这些函数来创建、提交和回滚事务。
KTM 还提供资源管理器可以调用的函数。 这些函数使资源管理器能够在事务中登记,以便他们可以接收有关事务的通知。 在事务登记资源管理器后,当事务客户端准备好提交或回滚事务,或者发生恢复操作时,它可以接收通知。
日志流
日志流是事务发生的事件的记录历史记录。 KTM 使用 通用日志文件系统 (CLFS)维护日志流。 KTM 记录每个事务的状态更改,以便在需要时支持回滚和恢复操作。
资源管理器还必须使用日志流来记录数据和作。
回滚操作需要 KTM 和资源管理器将事务及所有数据恢复至初始状态。 KTM 和资源管理器记录每个事务在日志流中的初始状态,以便在回滚操作期间提取该状态。
系统崩溃后发生恢复操作。 作系统随后重启时,KTM 和资源管理器可以使用日志流内容将事务的状态重新生成到崩溃前的状态。
有关 KTM 中的日志流的详细信息,请参阅 将日志流与 KTM 配合使用。
登记
登记是资源管理器与事务之间的关联。 KTM 提供一组函数,资源管理器调用这些函数来创建和管理登记。 资源管理器创建登记后,KTM 会在事务的状态发生更改时向资源管理器发送通知。
事务处理系统
事务处理系统(TPS)是事务管理器、一个或多个资源管理器、一个或多个日志流以及一个或多个访问资源管理器资源的事务客户端的集合。