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