Retroactive operation is an operation that changes a past operation in a series of committed ones (e.g., cancelling the past insertion of '5' into a queue committed at t=3). Retroactive operation has many important security applications such as attack recovery or private data removal (e.g., for GDPR compliance). While prior efforts designed retroactive algorithms for low-level data structures (e.g., queue, set), none explored retroactive operation for higher levels, such as database systems or web applications. This is challenging, because: (i) SQL semantics of database systems is complex; (ii) data records can flow through various web application components, such as HTML's DOM trees, server-side user request handlers, and client-side JavaScript code. We propose Ultraverse, the first retroactive operation framework comprised of two components: a database system and a web application framework. The former enables users to retroactively change committed SQL queries; the latter does the same for web applications with preserving correctness of application semantics. Our experimental results show that Ultraverse achieves 10.5x~693.3x speedup on retroactive database update compared to a regular DBMS's flashback and redo.
翻译:追溯操作是一种改变一系列承诺操作(例如,取消过去将“ 5” 插入在 t=3 的队列中的“ 5” 后继操作) 的操作,它改变了过去在一系列承诺操作中的操作(例如,取消过去在 t=3 的队列中插入“ 5” ) 。 回溯操作有许多重要的安全应用程序,例如攻击性恢复或私人数据移除(例如, GDPR 合规 ) 。 虽然先前的努力设计了低层次数据结构( 如, 队列、 设置) 的追溯性算法, 但没有为数据库系统或网络应用程序等更高层次的追溯性操作进行探索。 这具有挑战性, 因为:(一) 数据库系统的 SQL 语义复杂;(二) 数据记录可以通过各种网络应用组件流动, 如 HTML 的 DOM 树、 服务器- 端用户请求处理器和客户端 JavaScript 代码等。 我们提议 Urrversal, 第一个追溯性操作框架由两个部分组成: 数据库和网络应用者进行追溯性更改查询 SQL查询; ; 后者与维护应用程序的设置的网络应用程序相同性相同性相同。我们的实验结果显示Ulversal 10x-69xxxxxxxxxxxxxxxxxxxxxxx 更新数据库上追溯性数据库。