NoSQL数据库学习教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NoSQL数据库学习教程
本文档由整理发布。
1序
2思想篇
2CAP
2最终一致性
2变体
2BASE
2其他
2I/O的五分钟法则
2不要删除数据
2RAM是硬盘,硬盘是磁带
2Amdahl定律和Gustafson定律
2万兆以太网
3手段篇
3一致性哈希
3亚马逊的现状
3算法的选择
3Quorum NRW
3Vector clock
3Virtual node
3gossip
3Gossip (State Transfer Model)
3Gossip (Operation Transfer Model)
3Merkle tree
3Paxos
3背景
3DHT
3Map Reduce Execution
3Handling Deletes
3存储实现
3节点变化
3列存
3描述
3特点
4软件篇
4亚数据库
4MemCached
4特点
4内存分配
4缓存策略
4缓存数据库查询
4数据冗余与故障预防
4Memcached客户端(mc)
4缓存式的Web应用程序架构
4性能测试
4dbcached
4Memcached 和dbcached 在功能上一样吗?
4列存系列
4Hadoop之Hbase
4耶鲁大学之HadoopDB
4GreenPlum
4FaceBook之Cassandra
4Cassandra特点
4Keyspace
4Column family(CF)
4Key
4Column
4Super column
4Sorting
4存储
4API
4Google之BigTable
4Yahoo之PNUTS
4特点
4PNUTS实现
4Record-level mastering 记录级别主节点
4PNUTS的结构
4Tablets寻址与切分
4Write调用示意图
4PNUTS感悟
4微软之SQL数据服务
4非云服务竞争者
4文档存储
4CouchDB
4特性
4Riak
4MongoDB
4Terrastore
4ThruDB
4Key Value / Tuple 存储
4Amazon之SimpleDB
4Chordless
4Redis
4Scalaris
4Tokyo cabinet / Tyrant
4CT.M
4Scalien
4Berkley DB
4MemcacheDB
4Mnesia
4LightCloud
4HamsterDB
4Flare
4最终一致性Key Value存储
4Amazon之Dynamo
4功能特色
4架构特色
4BeansDB
4简介
4更新
4特性
4性能
4Nuclear
4两个设计上的Tips
4Voldemort
4Dynomite
4Kai
4未分类
4Skynet
4Drizzle
4比较
4可扩展性
4数据和查询模型
4持久化设计
5应用篇
5eBay 架构经验
5淘宝架构经验
5Flickr架构经验
5Twitter运维经验
5运维经验
5Metrics
5配置管理
5Darkmode
5进程管理
5硬件
5代码协同经验
5Review制度
5部署管理
5团队沟通
5Cache
5云计算架构
5反模式
5单点失败(Single Point of Failure)
5同步调用
5不具备回滚能力
5不记录日志
5无切分的数据库
5无切分的应用
5将伸缩性依赖于第三方厂商
5OLAP
5OLAP报表产品最大的难点在哪里?
5NOSQL们背后的共有原则
5假设失效是必然发生的
5对数据进行分区
5保存同一数据的多个副本
5动态伸缩
5查询支持
5使用Map/Reduce 处理汇聚
5基于磁盘的和内存中的实现
5仅仅是炒作?
6附
6感谢
6版本志
6引用
序
日前国内没有一套比较完整的NoSQL数据库资料,有很多先驱整理发表了很多,但不是很系统。不材尝试着将各家的资料整合一下,并书写了一些自己的见解。
本书写了一些目前的NoSql的一些主要技术,算法和思想。同时列举了大量的现有的数据库实例。读完全篇,相信读者会对NoSQL数据库了解个大概。
另外我还准备开发一个开源内存数据库galaxydb.本书也是为这个数据库提供一些架构资料。思想篇
CAP,BASE和最终一致性是NoSQL数据库存在的三大基石。而五分钟法则是内存数据存储了理论依据。这个是一切的源头。
CAP
∙C: C onsistency 一致性
∙A: A vailability 可用性(指的是快速获取数据)
∙P: Tolerance of network P artition 分区容忍性(分布式)
10年前,Eric Brewer教授指出了著名的CAP理论,后来Seth Gilbert 和Nancy lynch两人证明了CAP理论的正确性。CAP理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。
熊掌与鱼不可兼得也。关注的是一致性,那么您就需要处理因为系统不可用而导致的写操作失败的情况,而如果您关注的是可用性,那么您应该知道系统的read操作可能不能精确的读取到write操作写入的最新值。因此系统的关注点不同,相应的采用的策略也是不一样的,只有真正的理解了系统的需求,才有可能利用好CAP理论。