We recovered from nightmare Postgres corruption on the matrix.org homeserver
10 months ago
- #Matrix.org
- #PostgreSQL
- #DatabaseCorruption
- Matrix.org家园服务器出现故障,多个房间功能瘫痪,发送消息、加入房间等操作均无法完成。
- 问题根源在于大型PostgreSQL数据库中部分索引损坏,影响了房间运行关键的状态组数据。
- 由于索引损坏,后台维护任务误删了活跃数据,最终导致房间数据损坏。
- 团队定位问题后重建了损坏索引并从备份恢复数据,成功修复了大部分受影响房间。
- 该损坏可能至少一年前就已存在,但直到维护任务触发损坏索引时才显现出来。
- 调查显示损坏范围涉及数百万状态组,但被控制在特定区间内。
- 根本原因尚未明确,可能涉及硬件故障、内核或磁盘固件缺陷,但未找到确切证据。
- 此次事件凸显了大规模服务运维的挑战,以及健全数据库管理和备份策略的重要性。
- 依靠捐赠运营的Matrix.org基金会对于维护Matrix生态系统、保障数字隐私与尊严具有关键作用。