今年8月,随着原有数据库被成功切换至金仓分析型数据库kadb,某直辖市健康码平台日志分析系统的无感升级工作全部顺利完成。本次改造使得该系统总体性能得到大幅提升、数据服务的可用性显著提高,进一步筑牢疫情防控屏障。
tips:健康码平台日志分析系统用于记录全市所有公共场所二维码扫码情况及对应人员信息,并对以上基础数据进行分析生成流调数据,进而为疫情发生时判定密接、次密接人员、时空密接者以及风险区域划定提供准确的数据支撑。
随着该市疫情常态化防控的推进,及社会经济活动的持续复苏,目前日均扫码量超3000万次,累计扫码数据数百亿条,日志分析系统原有数据库服务器cpu占用超过80%,已用存储空间超60%,服务器长期处于高负荷运行状态,数据库系统的性能与稳定性受到极大挑战。
数据持续增长
挑战一:数据写入效率
在原数据库系统上,每小时扫码数据的平均写入耗时约为40分钟,在此情况下,社会活动高峰时段存在数据无法及时入库的风险,从而导致数据积压、日志分析业务时效性持续延后甚至雪崩的后果。
挑战二:数据分析性能
疫情爆发2年多以来,随着防控数据的持续累积,相关数据已达数百亿条,原数据库的分析性能也随着数据量的增长不断下降,其中最重要的某业务数据分析响应时延超过2分钟。因疫情风险结果数据的时效性直接影响传播扩散的范围,原数据库分析性能已经无法满足系统针对疫情风险防控的总体设计要求。
挑战三:数据库可用性
原数据库从数据存储到服务接入,各个层级均采用单点建设模式。当前系统持续高负荷运转,数据可靠性、服务连续性受到极大挑战,数据库部署架构亟需进行高可用加固。
kadb全面提升系统性能与可用性
热数据缓存加速
针对健康码平台日志分析系统历史留存数据量大、实时数据持续写入负载高的特点,本次部署的kadb采用了冷热数据分离存储的架构,数据写入性能整体提升3倍。
历史数据采取列存并进行压缩的方式进行存储,以支撑海量数据少列查询的场景下快速响应。历史冷数据的压缩比达12:1以上,显著提升集群整体的数据容量。
实时数据采取行存的方式以提高数据导入速度和实时查询效率,同时通过热数据缓存技术实现数据快速加载,本系统单小时场所码扫码数据加载耗时由原来的40分钟缩短至15分钟以内。通过配置热数据生命周期相关参数,数据库支持对冷热阶段的数据进行存储方式的自动转换。
全并行计算
kadb基于多物理节点、节点内多虚拟实例、cpu众核多线程以及指令向量化执行四级全并行计算,实现了一套高效能的分布式引擎。结合百节点以上超大规模部署、并行cbo优化器、流水线执行引擎、数据高效压缩技术、热数据高速缓存等10大技术特性,充分利用集群中各节点资源,发挥并行计算的极致性能。在该直辖市健康码平台日志分析系统中,流调信息相关分析业务平均响应时延由150秒降至40秒以内,总体查询分析效率提升6倍以上。
高可用部署
kadb数据库支持全栈高可用部署,所有组件无单点故障,所有数据均提供副本存储,从架构整体上确保数据不丢失、服务持续可用。
本次在数据存储层采用了双副本架构,即每个数据分片都有一份实时一致的热备副本,主副本故障后热备副本即刻拉起,可在数据节点宕机数量不超过半数时持续提供服务。此外,在数据访问层也部署了主备管理节点,支持节点故障的秒级无感切换,进一步确保数据库服务持续可用。
随着各地常态化防控的深入推进,面对突发疫情的发现、响应、分析与处置越来越科学、迅速、有效。在这其中,基于海量数据的健康码大数据平台发挥了巨大作用。人大金仓作为数据库领域的国家队,已先后在多个省级健康码平台完成了数据实时灾备方案的落地实施及流调分析等系统的数据库升级。
在未来,人大金仓将继续勇担使命,以数字化支撑精准防控、助力科技战“疫”。