
# 架构原理
#### 双格式存储模式
GaussDB HTAP架构下，采用双格式存储模型，通过不同的数据组织形式分别服务于OLTP与OLAP负载：
- 行存（Row Store）表仍作为主存储格式，服务于OLTP事务（INSERT/UPDATE/DELETE/点查 ）。
- IMCV则基于对应的行存表数据，以内存为载体，采用列式存储格式，面向OLAP查询进行优化。
- IMCV与现有行存表共享一致的事务与可见性语义。
 
#### 数据同步与一致性
IMCV采用异步更新机制来维护与行存表之间的数据一致性。
在基于行存表创建IMCV后，行存表上的INSERT/UPDATE/DELETE 操作并不会同步更新对应的IMCV数据，而是由后台任务以批量方式构建刷新列存数据，以避免在OLTP场景下引入额外的同步更新开销，最大化降低对事务写入路径的影响。
#### 混合负载透明路由
系统支持开启或关闭列存扫描能力，并支持混合负载透明路由机制。在该模式下：
- 查询优化器会根据查询访问的列是否已创建IMCV。
- 结合代价模型对行存扫描与IMCV列存扫描进行评估。
- 自动选择最优的执行路径。
对于分析型查询，若命中IMCV且代价更优，系统将优先选择IMCV列存扫描；否则回退至行存扫描路径。整个过程对应用透明，无需修改SQL语句。
