VeriTxn: Verifiable Transactions for Cloud-Native Databases with Storage Disaggregation

前几周读了ICDE和VLDB,这周读个SIGMOD试试

关键词:云原生数据库,事务验证技术,Intel SGX(可信硬件)

“VeriTxn与MySQL集成,证明了VeriTxn所采用的事务验证技术在真实系统中的适用性”

源码:https://github.com/zhanhaozhao/VeriTxn/(不可访问😓)

系统架构

image-20241205105305128

相关竞品

image-20241205114201461

兴趣点

Disaggregation

指云存储的计算与存储解构

image-20241205105324451

Intel SGX

可信硬件,TEE运行环境,ARM架构也有个类似的。可以将部分软件放在这种模块上面跑,以最大程度保证安全

Verifiable

一种机制,使得其上的每一个Transaction都可以被验证(What mean?)

Read-Only Transactions

Many existing works [15, 23, 47] show that read-only transactions are one of the common workloads in the cloud.

在VeriTxn系统中,Read-Only(只读)Transactions的设计是为了确保数据的一致性和可验证性,同时优化性能和数据的新鲜度。以下是关于VeriTxn中Read-Only Transactions的关键点:

  1. 一致性读取技术:为了保证只读交易的正确性和效率,VeriTxn引入了一种一致性的读取技术。每个只读交易都会被分配一个读时间戳(read timestamp, rts),这个时间戳对应于一个复制检查点φ,意味着在此之前所有经过验证的哈希值已经保存在这个只读节点上。通过比较rts与访问页面和哈希项的时间戳,可以确保只读交易能够从一个一致的状态获取数据并验证其完整性。

  2. 异步复制机制:为了支持只读节点上的可验证交易,VeriTxn使用了异步复制机制来维护已验证的哈希值。由于哈希是在读写节点生成的,它会通过批量的方式异步地传输到所有的只读节点。当只读节点接收到新的哈希批次时,它会更新本地的哈希值,并应用Thomas写规则跳过任何过期的哈希更新,以避免用旧的哈希覆盖新的哈希。

  3. 安全通信通道:哈希复制是通过建立在远程认证基础上的安全通信通道完成的。读写节点的飞地会对复制消息及其哈希进行加密,然后传输给只读节点。接收后,只读节点解密消息,计算对应的哈希,并与接收到的哈希对比以验证完整性。

  4. 性能与数据新鲜度之间的权衡:考虑到哈希复制是异步的,这允许交易从一个一致但不一定是最新的状态检索数据。通过调整复制批次的大小,可以在数据新鲜度和交易延迟之间做出折衷。例如,较大的批次可能会增加数据的陈旧性,但减少交易等待最新版本的时间;反之亦然。

  5. 扩展性和负载均衡:当存在大量的只读交易时,通常的解决方案是部署额外的只读节点以实现扩展性。VeriTxn扩展了这种设计,确保只读交易总是能获取到具有可验证完整性的最新数据。

  6. 冷热数据分离:对于很少访问的数据(即“冷”数据),如果租约超过了某个阈值,则可以从数据缓存中移除这些页面,因为它们不常被访问。这样可以更有效地利用缓存空间,为频繁访问的数据(即“热”数据)提供更快的访问速度。

综上所述,VeriTxn中的只读交易处理机制旨在提供高效且安全的一致性读取,同时通过异步复制、安全通信以及合理的缓存策略,在不影响数据完整性的情况下优化性能和资源利用率。

结语

暂且读到这里,反正源码也没开源,顿时感觉没啥看头

感觉可信硬件TEE也是万金油选题,是不是任何软件改改架构跑在TEE上就能出Paper?

只要是TEE,就会拿侧信道攻击说事情😅come on,这个问题,它是,但也不是

我承认这篇文章很有意义,但和我目前的研究方向差异较大,在看完冗长的Introduction后阅读兴趣反倒不高,也许后面几周我该调整下论文阅读策略?