PostgreSQL 持久性和多云单元
PostgreSQL 持久性和多云单元
Section titled “PostgreSQL 持久性和多云单元”权威来源:AetherCloud。此页面镜像到统一的 AetherIoT 文档中。
PostgreSQL 是 AetherCloud 的默认控制平面事务引擎。这不会使 AetherCloud 成为 PostgreSQL 管理产品,也不会删除其多云提供商适配器模型。
| 商店 | 拥有 | 不拥有 |
|---|---|---|
| PostgreSQL | 租户/队列元数据,身份、会话游标、收件箱、发件箱、审计、部署和作业分类帐 | 边缘实时状态、提供商资源、基础设施状态、大型不可变 blob |
| 对象存储 | 工件、出处、原始/冷批次、证据、导出 | 可变聚合或授权状态 |
| 时间序列/分析适配器 | 历史遥测扫描、下采样、测量需求后聚合 | 实时点权限或命令事务 |
| 部署堆栈后端 | 一个提供商范围的锁定基础设施状态 | 物联网产品数据或跨提供商全局状态 |
| OpenTelemetry后端 | 采样操作跟踪和指标 | 审核、物联网遥测、收据或授权证据 |
PostgreSQL最初可以实现有界遥测历史端口。将历史记录移至 TimescaleDB 或 ClickHouse 不会更改 CloudLink 确认:拥有的摄取应用程序合约仍必须在确认边缘之前建立持久的重播身份和接受的业务事实。
多云部署模型
Section titled “多云部署模型”多云具有三种不同的含义:
- **便携式单元:**相同的 API、CloudLink、worker、 PostgreSQL,对象存储组合可以在任何支持的环境中运行。
- **多云管理:**一个单元管理跨多个云的提供商范围的资源和网关。它的数据库不需要跨越这些云。
- **多云主动-主动控制平面:**多个单元写入相同的租户事务状态。这尚未实现,需要单独的共识、隔离、冲突、延迟和恢复决策。
多云管理不需要同步跨云数据库写入。
默认拓扑是显式租户主单元:
Global tenant directory ├── Tenant A -> Cell 1 -> PostgreSQL writer + object storage ├── Tenant B -> Cell 2 -> PostgreSQL writer + object storage └── Tenant C -> Cell 3 -> PostgreSQL writer + object storage
Each cell API + CloudLink + workers | +-- one authoritative PostgreSQL writer topology跨云副本和备份可能会改善恢复,但在受控故障转移隔离旧单元之前,它们不是写入权限。 CloudLink 持久确认永远不会等待不相关的跨云基础设施传奇。
提供商数据库配置文件
Section titled “提供商数据库配置文件”核心提供商描述符可以通告managed-postgresql。未来的配置文件发现契约将至少保留而不是扁平化:
- 提供商本机引擎/配置文件身份;
- PostgreSQL兼容版本和可选扩展;
- 区域可用性、主权和专用连接;
- HA、副本、备份、恢复、加密和维护功能;
- 规定的 RPO/RTO 和观察到的成本证据;
- 特定于提供商的命名空间扩展。
核心仓库永远不会在 AWS、Azure、GCP 或任何其他固定供应商标识符上分支。没有托管 PostgreSQL 的提供程序稍后可能会公开受管理的自托管配置文件。
已实现的网关持久性切片
Section titled “已实现的网关持久性切片”当前可执行切片包括:带有参数化 SQL 的
PostgresGatewayIdentityRepository;- 狭窄本地合约背后的真实
pg驱动程序池适配器; - 显式注册、待声明、已声明的列和检查;
- 复合租户/项目/网关身份和乐观修订检查;
- 租户事务上下文加上强制行级安全策略;
- 原子聚合、仅附加审核和发件箱写入;
- 稳定的证据身份和无秘密的发件箱有效负载;
- 键入
gateway-storage-unavailable应用程序故障; - 无需外部服务的脚本化 SQL/迁移行为测试;
- 使用专用数据库和非超级用户/非
BYPASSRLS应用程序角色的选择加入 PostgreSQL 18 集成测试。
已实施 SQL 适配器和迁移。当前没有组合根打开生产数据库、运行迁移、公开网关 HTTP 路由或传送发件箱。生产角色、凭据、池大小、超时、备份/恢复测试、托管提供商配置文件和持续配置的集成基础架构仍在计划中。
实施的遥测和 CloudLink ACK 切片
Section titled “实施的遥测和 CloudLink ACK 切片”PostgresTelemetryRepository 实施第一个耐崩溃遥测接受切片。一个租户范围的事务写入入口幂等性身份、批量接收、流和连续游标状态、已接受的记录、所需的审核事件、集成发件箱事件以及确切的CloudLink 持久 ACK 发件箱行。重复重播返回并重新排队相同的存储 ACK,而不是插入第二个事实。
适配器使用参数化 SQL、无损 numeric(20,0) 协议位置、复合租户密钥和外键、强制行级安全性、有界重新排序和配额检查以及基于租赁的 ACK 交付仓库。应用程序拥有的交付用例验证声明的适配器输出,按顺序发布,仅在发布成功后记录完成情况,并使用经过净化的代码发布失败。
选择加入的 PostgreSQL 18 测试使用非超级用户/非BYPASSRLS 应用程序角色,并在提交两侧注入失败。预提交失败不会留下遥测事实和 ACK。提交后不确定的结果留下一个已提交的事实,并且工作进程随后发布相同的 ACK;重播不会创造第二个事实。该证据仅涵盖公认的遥测技术。生产数据库和工作线程组成、CloudLink会话/纪元持久性、数据丢失事实、多样本映射以及完整的生产耐崩溃发布门仍在计划中。