SIGMOD24文章阅读:VeriTxn
VeriTxn: Verifiable Transactions for Cloud-Native Databases with Storage Disaggregation
前几周读了ICDE和VLDB,这周读个SIGMOD试试
关键词:云原生数据库,事务验证技术,Intel SGX(可信硬件)
“VeriTxn与MySQL集成,证明了VeriTxn所采用的事务验证技术在真实系统中的适用性”
源码:https://github.com/zhanhaozhao/VeriTxn/(不可访问😓)
系统架构
相关竞品
兴趣点
Disaggregation
指云存储的计算与存储解构
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的关键点:
-
一致性读取技术:为了保证只读交易的正确性和效率,VeriTxn引入了一种一致性的读取技术。每个只读交易都会被分配一个读时间戳(read timestamp, rts),这个时间戳对应于一个复制检查点φ,意味着在此之前所有经过验证的哈希值已经保存在这个只读节点上。通过比较rts与访问页面和哈希项的时间戳,可以确保只读交易能够从一个一致的状态获取数据并验证其完整性。
-
异步复制机制:为了支持只读节点上的可验证交易,VeriTxn使用了异步复制机制来维护已验证的哈希值。由于哈希是在读写节点生成的,它会通过批量的方式异步地传输到所有的只读节点。当只读节点接收到新的哈希批次时,它会更新本地的哈希值,并应用Thomas写规则跳过任何过期的哈希更新,以避免用旧的哈希覆盖新的哈希。
-
安全通信通道:哈希复制是通过建立在远程认证基础上的安全通信通道完成的。读写节点的飞地会对复制消息及其哈希进行加密,然后传输给只读节点。接收后,只读节点解密消息,计算对应的哈希,并与接收到的哈希对比以验证完整性。
-
性能与数据新鲜度之间的权衡:考虑到哈希复制是异步的,这允许交易从一个一致但不一定是最新的状态检索数据。通过调整复制批次的大小,可以在数据新鲜度和交易延迟之间做出折衷。例如,较大的批次可能会增加数据的陈旧性,但减少交易等待最新版本的时间;反之亦然。
-
扩展性和负载均衡:当存在大量的只读交易时,通常的解决方案是部署额外的只读节点以实现扩展性。VeriTxn扩展了这种设计,确保只读交易总是能获取到具有可验证完整性的最新数据。
-
冷热数据分离:对于很少访问的数据(即“冷”数据),如果租约超过了某个阈值,则可以从数据缓存中移除这些页面,因为它们不常被访问。这样可以更有效地利用缓存空间,为频繁访问的数据(即“热”数据)提供更快的访问速度。
综上所述,VeriTxn中的只读交易处理机制旨在提供高效且安全的一致性读取,同时通过异步复制、安全通信以及合理的缓存策略,在不影响数据完整性的情况下优化性能和资源利用率。
结语
暂且读到这里,反正源码也没开源,顿时感觉没啥看头
感觉可信硬件TEE也是万金油选题,是不是任何软件改改架构跑在TEE上就能出Paper?
只要是TEE,就会拿侧信道攻击说事情😅come on,这个问题,它是,但也不是
我承认这篇文章很有意义,但和我目前的研究方向差异较大,在看完冗长的Introduction后阅读兴趣反倒不高,也许后面几周我该调整下论文阅读策略?