Oracle NoSQL Database 为完全的创建、读取、更新和删除 (CRUD) 操作提供了符合 ACID 的事务,并提供可调持久性和一致性事务保证。
您还可以将一个操作序列作为一个原子单元执行,只要让要操作的所有记录共享同一主键路径。原子单元是指所有操作要么全部成功执行,要么全部不执行。
例如,假定您在数据库中存储了用户配置信息并希望作为单个原子事务更新特定用户的“birthdate”、“image”、“phonenumber”、“userID”(在此,为便于说明,使用正斜杠(“/”)分隔主键路径,使用点(“.”)分隔次键路径)。
Smith/Bob.birthdate
Smith/Bob.phonenumber
Smith/Bob.image
Smith/Bob.userID
Smith/Patricia.birthdate
Smith/Patricia.phonenumber
Smith/Patricia.image
Smith/Patricia.userID
可以使用 execute 方法,该方法为执行与共享同一主键路径的键关联的操作序列提供了高效的事务性机制。
Oracle NoSQL Database 提供了多种不同的一致性策略。在图谱的一端,应用程序可以指定绝对 一致性,这将保证所有读取返回指定键的最新写入值。在图谱的另一端,能够容许不一致数据的应用程序可以指定弱一致性,这样可允许数据库有效地返回值,即使该值并不完全是最新的。在这两个极端情况之间,应用程序可以指定基于时间的 一致性以约束记录的陈旧期限,或指定基于版本的 一致性以支持读-修改-写操作的原子性以及至少与指定版本一样新的读取的原子性。
Oracle NoSQL Database 还提供了一系列持久性策略,以指定系统在崩溃后有什么保证。在一种极端情况下,应用程序可以请求写阻塞,直到将记录成功写入所有副本的稳定存储。在另一个极端情况下,应用程序可以请求写入操作在系统记录了写入的存在之后立即返回,即使该数据未在任何位置持久保存。