论文部分内容阅读
大数据是由数量巨大、结构复杂、类型众多的数据构成的集合。大数据的来源广泛,除了互联网这一众所周知的大数据源,最大的数据源实际上是实体行业,如电信、零售、制造、电力等行业。大数据背后蕴藏着巨大信息,为此,需要高效地将大数据进行存储和管理,以便需要时对其进行挖掘和提炼。在大数据当中,非结构化数据(如文本)、半结构化数据(如网页、日志)占据了很大比例,以OracleDatabase、MySQL为代表的传统关系型数据库不适合用于大数据的存储和处理,从而催生了NoSQL系统。 NoSQL系统相比关系型数据库具有更高的性能,然而,随着数据量逐渐增大,已有的NoSQL系统同样在性能和可扩展性方面遇到了问题。通过对主流NoSQL系统进行分析,本文认为其存在以下问题:采用传统多线程模型,对多核CPU的利用率不高;采用传统的索引结构,不支持并发访问;对存储空间的管理不高效;访问接口不高效;采用集中式的元数据管理方式,制约了集群的扩展能力。总之,已有NoSQL系统存在许多不足,难以满足OLTP对高并发、低延迟、高可扩展的数据存储的需求。 本文从操作系统层面对NoSQL系统进行改进,提出了基于Linux内核的分布式Key/Value存储系统KStore。本文从两个层面展开了研究: (1)在存储引擎层面,研究了内核态的请求处理模型和存储模型。实现了基于内核多线程的并发处理机制,基于系统调用的高效Key/Value访问接口,以及基于内存、SSD和磁盘的分层存储机制。最终完成了基于Linux内核的高并发、低延迟的Key/Value存储引擎。 (2)在分布式系统层面,研究了去中心化的集群架构。为了提高系统的可扩展性,设计了非集中式的元数据管理机制,实现了提高系统可用性的技术,包括多副本、一致性、负载均衡以及节点失效处理。最终完成了可扩展、高可用的分布式Key/Value存储系统。 本文通过多组实验,分别对KStore的实时性、并发性进行了测试和分析。实验结果表明KStore的各项指标均优于主流Key/Value存储系统,证明了KStore关键技术“内核态运行”、“分层存储”和“去中心化”的有效性。