InfluxDB Cloud 专用数据持久性
InfluxDB Cloud Dedicated 将数据写入本地存储的多个预写日志 (WAL) 文件,并在数据持久化到对象存储中的 Parquet 文件之前保留 WAL。对象存储中的 Parquet 数据文件会冗余存储在云区域的多个设备上,跨越至少三个可用区。
数据存储
在 InfluxDB Cloud Dedicated 中,所有测量值都存储在 Apache Parquet 文件中,代表数据的某个时刻快照。Parquet 文件是不可变的,永远不会被替换或修改。Parquet 文件存储在对象存储中,并在 Catalog 中被引用,InfluxDB 用于查找特定数据集的适当 Parquet 文件。
数据删除
当数据被删除或过期(达到数据库的 保留期)时,InfluxDB 执行以下步骤:
- 在目录中将相关的Parquet文件标记为已删除。
- 从所有查询中过滤掉标记为删除的数据。
- 在文件中最新数据超过保留期后,保留标记为删除的Parquet文件在对象存储中约30天。
数据摄取
当数据写入 InfluxDB Cloud Dedicated 时,InfluxDB 首先将数据写入到 Ingester 节点上本地附加存储的预写日志 (WAL),然后再确认写入请求。确认写入请求后,Ingester 暂时将数据保存在内存中,然后将 WAL 的内容写入对象存储中的 Parquet 文件,并更新 Catalog 以引用新创建的 Parquet 文件。如果 Ingester 节点被优雅地关闭(例如,在新的软件部署期间),它会在关闭之前将 WAL 的内容刷新到 Parquet 文件中。
备份
InfluxDB Cloud Dedicated 实现了以下数据备份策略:
WAL文件的备份: WAL文件写入本地附加存储。如果一个ingester进程失败,新的ingester在启动时简单地读取WAL文件并继续正常操作。WAL文件会被维护,直到它们的内容被写入对象存储中的Parquet文件。为增加保护,ingester可以配置为写入复制,每个测量在确认写入之前会被写入两个不同的WAL文件。
Parquet 文件的备份: Parquet 文件存储在对象存储中,冗余地存储在多个设备上,分布在云区域的最少三个可用区中。与每个数据库关联的 Parquet 文件在数据库保留期内保存在对象存储中, plus 额外的时间段(大约 30 天)。
目录备份: InfluxData 保留最近所有更新的事务日志 到 InfluxDB 目录,并生成每日备份 该目录。备份在对象存储中至少保存 30 天,跨越至少 三个可用区域。
恢复
InfluxData 可以执行以下恢复操作:
摄取器故障后的恢复: 如果摄取器失败,将启动一个新的摄取器,并从WAL文件中读取最近摄取的数据。
Parquet文件的恢复: InfluxDB Cloud Dedicated使用提供的对象存储数据持久性来恢复Parquet文件。
目录的恢复: InfluxData 可以将 Catalog 恢复到最近的每日备份,然后重新应用自中断以来发生的任何交易。