论文部分内容阅读
网络管理系统有大量的数据需要持久化存储,这些网管数据对网络管理系统的运行至关重要。传统的解决方案是使用关系型数据库来存储所有的网管数据,但是,当网络管理系统的数据量非常巨大、或者存在大量的并发读写时,后台数据库常常成为整个网络管理系统的性能瓶颈。关系型数据库对这些问题的解决方案是主从分离和分库分表,但这种扩展需要数据库管理员和程序设计人员手工实现,分表分库的规则把握都是需要经验的,分库分表的子库膨胀到一定阶段又面临扩展问题,还有就是需求的变更可能导致一种新的分库方式。由于不具备自扩展性,这种重构的人力成本太高,不能从根本上解决问题。最近几年,NoSQL存储技术发展非常迅速,它具有高性能、海量存储、高可用性、高扩展性的特点。NoSQL采用分布式架构,可以通过加入新的节点来水平扩展,提高存储容量和读写性能,分布式特性和多副本冗余备份技术使NoSQL具有极高的容错性。经过长时间的调研和分,析,笔者认为可以通过引入NoSQL存储技术来解决网络管理系统的数据存储性能瓶颈。
针对上述传统解决方案的缺点,本文提出了一个新的设计方案,该方案融合了传统的关系数据库和NoSQL数据库,具有高性能、高可用性和高扩展性的特点。根据网络管理数据的存储需求,在不同的场景下使用不同的存储技术。概括的说,本文提出的方法包括以下三个优势:1)高可扩展性;2)高性能;3)向上提供统一的SQL接口。最后,本文基于开源软件实现了网管数据存储系统,给出了各模块的实现细节。