Ustore简介
Ustore(Unified Storage)是GaussDB Kernel推出的一款原位更新的存储引擎,其多版本的实现较Astore最大的区别在于最新版本和历史版本的数据是分离存储的,而索引当前还没有分离。Ustore目前已发展为GaussDB Kernel集中式形态的默认行存引擎。
使用Ustore的优势
- 最新版本和历史版本分离存储,相比Astore扫描范围小。去除Astore的HOT chain,非索引列/索引列更新,Heap均可原位更新,ROWID可保持不变。历史版本可批量回收,对最新版本空间膨胀友好。
- 大并发更新同一行的场景,Ustore的原位更新机制保证了元组ROWID稳定,先到先得,更新时延相对稳定。
- 不依赖Vacuum进行旧版本清理。Index与Heap解耦,可独立清理,IO平稳度较好。
- 支持闪回功能。
不过,Ustore DML除修改数据页面,同时也需要修改Undo,更新操作开销会稍大一些。此外单条Tuple扫描开销由于需要复制(Astore返回指针)也会大一些。