关键词:
分布式数据库
基于日志结构存储
数据复制
数据导出
日志解析
摘要:
随着互联网的不断发展,数据规模不断增大,数据库系统的存储与计算的横向扩展能力将会越来越重要。因此,分布式数据库系统以其良好的扩展性受到了工业界和学术界的广泛关注。其中,基于日志结构存储(Log-StructuredStorage)的分布式系统成为了一种新的趋势,这种读写分离的架构已应用于分布式数据库系统中,如阿里巴巴的开源关系型数据库管理系统OceanBase。数据导出是数据复制常见的技术之一,常用于企业级应用,来提高系统的可用性、可扩展性,以及保证数据的可靠性。在采用读写分离架构的分布式数据库系统中,由于数据分为静态数据和动态数据,并且静态数据存储于不同的物理节点上,数据复制成为了一种既消耗时间,也浪费系统资源的一种操作。本文主要分析了在读写分离的分布式数据库架构下,数据复制存在的问题,并提出了有效的解决方法。本文工作的主要贡献如下:1.设计并实现了一种考虑负载均衡的静态数据导出方法。首先,针对分布式数据库的架构特点,直接向不同物理节点发起并发查询请求,减少数据的网络传输次数,缩短响应时间。其次,采用生产者消费者模型加快数据写磁盘速度并解决占用大量内存的问题。最后,根据数据多副本的特点,将查询请求均匀的发送给各个节点,使系统中的各个节点负载均衡,同时也能提高整体数据导出的性能。2.设计并实现了一种基于日志解析的动态数据捕获方法。一方面,实现日志同步和日志拉取功能,保证数据的正确性。另一方面,在日志解析过程中精简对同一元组的频繁操作,避免冗余操作,降低应用更新的代价。3.通过基准测试YCSB生成测试数据集并设计多组实验,验证了本文提出的数据导出方法的可行性与高效性。并在开源数据库CEDAR上实现了本文提出的数据导出方法。实验结果展示了本文提出的数据导出方法能有效的降低响应时间,减少系统资源占用。本文提出的数据复制方法在CEDAR中的测试结果表明,该方法极大地提升了数据导出的效率。同时,本文提出的方法对同类型的可扩展数据库管理系统的数据复制有借鉴意义,也为可扩展数据库管理系统后续的数据复制技术提供了参考。