AntDB 分布式内存数据库支持全内存态的运行模式,将热数据常驻内存。但内存存在易失性的特点,需要一种机制去保障这部分数据的高可以用。通常在实际使用过程中会配置多个数据副本来保障数据分片的高可用。同时 AntDB 分布式内存数据库提供一种 CP(Check Point)方案,将当前内存中的数据持久化到磁盘,形成以时间轴为连接线的基数文件备份体系,使用者可以选取时间轴上任意点的备份文件进行数据恢复。
为了更好地理解 AntDB 分布式内存数据库的 CP 过程,首先了解一下几个基本概念:
● 事务号:事务提交的事务号,在事务提交时会为事务分配一个事务号,并保证事务号严格递增,不会出现空洞。合法的事务号从1开始。每个CP都有对应的最后事务号,每次CP成功后,当前事务号之前的事务日志可以进行清理。CP要求落下来的文件事务是完整的,包含且只包含到当前事务号之前(包含当前事务号)所有的数据。既不能包含某些事务的部分更新,也不能缺少小于当前事务的数据。
CP文件包含的内容:表列表、事务号和所有表的数据。对于单张表,包含表的元数据(表空间信息、字段、索引和溢出页信息)和表数据。表数据是按照块存放的,一张表有多个块,块个数可扩展。每个块有固定个数的行,每个行都有唯一的编号,称为oid,oid从1开始。与oid一些相关的操作,包括备机复制恢复、CP文件恢复和binlog恢复,oid都不会改变,因此在记录CP文件时也会保证恢复后oid不会发生变化。
● 溢出页(overflow&#x