《NoSQL数据库笔谈》是一本由颜开撰写的关于NoSQL数据库的技术书籍,针对当时国内缺乏完整NoSQL数据库资料的情况,作者试图整合并分享来自各方的资料,结合自己的理解和见解。书中涵盖了NoSQL的核心概念、理论、算法、设计手段以及实际应用中的软件工具和案例分析。
1. **序章**:介绍NoSQL数据库的背景和发展趋势,强调其在全球范围内的重要性,尤其是在大数据时代的需求推动下。
2. **思想篇**:
- **CAP定理**:阐述分布式系统中一致性(C)、可用性(A)和分区容忍性(P)之间的权衡关系,这是理解NoSQL设计的一个关键原理。
- **BASE原则**:提出在某些场景下,最终一致性(B)和基本可用性(S)比强一致性更为适用。
- **I/O的五分钟法则**:讨论了数据库设计时对I/O性能的优化策略。
- **RAM和硬盘/磁带的比喻**:强调快速内存在NoSQL中的核心地位,以及数据持久化问题。
3. **手段篇**:
- **一致性哈希**:介绍如何通过哈希函数确保数据分布的均匀性和一致性。
- **Amazon案例**:展示了亚马逊如何使用特定算法和技术处理大规模分布式存储。
- **一致性协议**:如Quorum NRW、Vectorclock、Paxos等,这些协议是确保分布式一致性的重要技术。
- **DHT(分布式哈希表)**:描述了分布式数据存储的底层架构。
- **MapReduce执行模型**:讲解在Hadoop等大数据处理框架中的应用。
4. **软件篇**:
- **亚数据库**:可能是指轻量级的、嵌入式或中间件式的NoSQL数据库解决方案。
- **Memcached**:作为流行的内存键值对存储系统,其内存分配、缓存策略和故障预防机制被详细讨论。
- **列存数据库**:如HBase、HadoopDB、GreenPlum等,强调列式存储的特性和优势。
- **Cassandra**:Facebook开发的分布式NoSQL数据库,介绍了其独特的列族、SuperColumn等概念。
- **BigTable和PNUTS**:Google和Yahoo的代表作,展示它们的存储模型、寻址方式以及设计理念。
书中的开源内存数据库项目GalaxyDB与NoSQL数据库的实践紧密相连,书中内容不仅局限于理论,还提供了丰富的实践经验和技术细节,帮助读者全面理解NoSQL数据库的运作原理和应用场景。