基于Raft协议的NoSQL数据库的设计和实现
1. 论文简介
近些年来,随着大数据业务和巨型Web网站的增多,如何存储和管理各种数据成为了各大公司棘手的难题。为了存储日益增加的用户个人数据和业务数据,能够灵活简单使用,高可用的,使用简便的NoSQL数据库在工业界的使用越来越多。本课题提出了一种基于Raft一致性协议的内存式NoSQL数据库(下称DistKV),并且支持表结构。本课题对当前NoSQL数据库使用上因为架构设计导致的丢数据,不可用,性能瓶颈等问题进行了探讨和优化,并且尤其对于大数据存储场景做出专项优化。
设计实现DistKV的基本架构,考虑横向扩展,表结构存储等基本需求。
设计实现高性能专用RPC用于降低传输延时。
对于业务中使用NoSQL数据库遇到的丢数据,不可用问题做专项测试和比对。
和市面流行的NoSQL数据库在读写方面进行比对。
本论文主要通过以下几个方面展开讲述本系统的设计。
- History
- Raft
- Architecture
- Partition和StoreServer
- Multi-thread
- Sync
- MetaServer
- Function
- Optimization
- Algorithm和Data struct
- SkipList
- DRPC
- NIO
- Multi-Thread
- Code
- API
- DistKV Client
- DRPC Client
- Benchmark
- Conclusion
- Acknowledgments
- Reference