摘要

近年来,随着互联网技术的快速发展,无论是互联网企业还是传统的金融机构,用户量和业务处理数据量都在快速地增长.传统的通过增加服务器并采用基于分库分表的方法来解决扩展性问题,需要大量的人工维护成本和硬件开销.为降低开销和分库分表带来的各种问题,业界通常用新型数据库系统替换原有的系统,其中,基于日志结构合并树存储的数据库系统(如OceanBase)被广泛采用,这类系统磁盘上存储数据块呈现全局有序的特征.在从传统数据库切换到新型数据库过程中,需要将大量数据加载到新数据库系统中,长时间加载的过程中可能出现数据库节点宕机.为了减少总加载时间和故障恢复时间,提出了一种负载均衡且支持高效容错的数据加载方法;为了支持负载均衡的数据加载,与预确定分区划分数据的方法不同,考虑到目标系统默认存储块大小,采用通过基于文件大小和目标系统默认存储块大小预计算分区数目,并利用分库分表的数据导出往往已经排序的特点,采用选取部分采样块和等间隔选取样本的方式确定分区之间的切分点,避免了全局采样和随机或头部样本选取方式确定切分点带来的高开销;为了加快故障恢复速度,利用日志结构合并树存储系统的多备份减少故障恢复时的数据量,提出了基本副本局部故障恢复方式,避免了完全重新加载的故障恢复方式.实验结果表明,相比采用预确定分区数目和全局选取采样块的随机或头部选取样本方法,采用预计算分区数目和部分选取采样块的等间隔选取样本确定切分点的方法,提高了数据加载的性能,并且验证了基于副本局部故障恢复方法相比完全重启加载恢复方法的高效性.