[发明专利]数据库事务日志的写入和完整性检查在审
申请号: | 201980011319.5 | 申请日: | 2019-01-25 |
公开(公告)号: | CN111670442A | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | C·普里布;K·瓦斯瓦尼;M·S·D·S·科斯塔 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/64 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 黄倩 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 事务 日志 写入 完整性 检查 | ||
在各种示例中,提供了一种用于将事务日志条目写入针对数据库系统的事务日志的计算机实现方法。数据库系统的至少一部分被配置为在可信执行环境内执行。事务日志被存储在可信执行环境外部。该方法保持第一安全计数,第一安全计数表示针对已经被提交到数据库的事务的、已经被写入事务日志的事务日志条目的数目,并且将事务日志条目写入事务日志。在其他示例中,还提供了一种用于还原数据库系统的计算机实现方法,该方法使用从事务日志接收到的事务日志条目和第一安全计数的当前值。
背景技术
本技术总体上涉及数据库系统,以及更具体地涉及至少部分地在可信执行环境内执行并使用被存储在可信执行环境外部的事务日志来记录事务的数据库系统,事务被应用到数据库系统以使得事务日志可以用来通过重播被记录在数据库系统中的事务来恢复(recover)数据库。
可信执行环境(TEE)是处理器的安全区域,该安全区域确保代码和数据在其中的保密性和完整性方面得到保护。一种提供TEE的技术是使用存储器飞地。例如,可以使用虚拟安全模式(VSM)创建飞地。备选地,处理器可以包括允许创建安全飞地的软件保护扩展(SGX)指令。但是,也可以使用用于创建安全飞地的其他机制,诸如安全加密虚拟化(SEV)。用于特定进程的代码或数据可以在飞地内被存储和/或处理。飞地内的数据和处理受到保护,不受计算机系统内可能正在执行的其他进程的影响,有助于确保其保密性和完整性。飞地通常提供一个飞地引用机制,使用户能够验证进程确实在有效的飞地内部运行,并验证飞地的状态(例如,飞地内的实际进程)。
诸如由Hekaton引擎提供的存储器中数据库,将数据存储在易失性存储器中的表和索引中。虽然这样具有许多的优点,诸如改进性能,但存储器中数据库的一个缺点是,当在其上运行它们的计算机系统重新启动时(诸如由于电源或组件故障或作为计算机系统常规维护的一部分),存储在易失性存储器中的数据会丢失。因此,这类存储器中数据库通常使用事务日志,通过重播事务日志的日志条目中所记录的事务,允许在主机计算机系统重新启动后恢复数据库的当前状态。除了存储器数据库之外的其他数据库也可以使用事务日志以允许在用于数据库的主要存储设备丢失或损坏(即便这种情况通常不会在主机系统正常重启时发生)的情况下恢复数据库的状态。
鉴于从事务日志(或仅仅是日志)恢复之后的数据库的状态是由事务日志中读取的事务日志条目决定的,因此,需要提供一种机制,以保证事务日志的完整性。否则,对事务日志有访问权(无论是授权的还是未授权的)的用户可以有意或无意地更改日志,从而改变数据库系统从日志被还原(restore)时的状态。虽然存在用于验证单独的日志条目的完整性的机制,诸如通过在日志文件中包含日志条目内容的经过签名的散列,但需要确保日志中的日志条目的集合本身没有变化。
Merkle树提供用于确保日志条目的集合的完整性的一种可能的解决方案。Merkle树是一种树状数据结构,其中每个叶子节点都标记有数据块的散列,以及每个非叶子节点都标记有其子节点的标签的加密散列。然而,维护用于高并发和写密集型工作负载(诸如数据库事务日志)的Merkle树可能是计算密集型的。这是因为,当向Merkle树的叶子节点写入时,父节点中的每个父节点也需要被更新。因此,当使用Merkle树维护事务日志时,将日志条目追加到事务日志的进程有必要获得叶子节点和其每个父节点的锁。由于数据库事务日志是只追加的工作负载,并且可能使用大量不同的事务处理线程以同时处理事务,所以基于Merkle树的事务日志可能会引起大量的争用,最终成为数据库系统中的瓶颈。这是因为每个事务处理线程都会试图写入Merkle树中大致相同的一组节点,因此,事务处理线程间最终会彼此竞争(并且不得不等待)以获得将日志条目追加到事务日志所需要的锁。
当事务日志变得太大时,数据库系统可以将日志中的一些条目组合在一起,成为数据库系统快照。这种快照完全表示数据库在某一特定时间点的状态。然后数据库系统可以从事务日志中截断(或移除)已经被组合成快照的日志条目,因为不再需要这些日志条目来还原数据库。相反,可以使用最新快照作为起点,从事务日志重播剩余的事务日志来还原数据库。当然,如果需要(例如,可能的,考虑到对已经发生的事务进行审计/审查),数据库系统仍然可以在事务日志之外保留被截断的事务日志条目的副本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980011319.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有高唇牵拉强度的陶瓷自锁托槽
- 下一篇:通过双重照明分析气体的方法