银行核心最主要的批量是日终批量,日终批量通常会有很多批量节点构成,例如具有代表性的“预处理”、“计提结息”、“重新生成还款计划”、“生成会计分录”、“核算总分核对”等等。
在基于Oracle的银行传统账务核心实现中,针对有性能挑战的批量节点已经有批量分段技术,即将批量任务所覆盖的客户号区间拆分为多个分段,针对这些分段将批量节点任务进行并行,并针对并行执行结果进行汇总。
当讲Oracle替换为分布式国产数据库时,批量执行的分段实现就会成为一个性能瓶颈。因为基于Oracle的分段实现并没有考虑分布式数据库的数据分布特征,就会导致拆分的分段大概率是会跨分布式节点的,会引入大量的分布式事务、分布式锁、分布式网络交互等,进而导致性能瓶颈和难以横向扩展。
所以存量核心去O时批量的一个主要的优化措施就是分段实现的优化,从实践角度,一个可能的实现方式就是基于分布式数据库的数据分布方式,针对每个数据分片内的数据跑原来的批量分段逻辑,这样可以确保所有批量分段后的操作都是在单一数据节点内的,并且整体架构可以充分发挥分布式数据库的横向扩展能力。
转载请注明转自高孝鑫的博客!