摘要: 本文图片来自Ricky Ho的博文MongoDB构架(MongoDBArchitecture),这是个一听就感觉很宽泛的话题,但是作者在文章中确实对MongoDB由内至外的架构进行了剖析。本文截取了其文章中的几张重点架构示意图片进行简单描述。希望对大家有用。MongoDB数据文件内部结构MongoDB在数据存储上按命名空间来划分,一个collection是一个命名空间,一个索引也是一个命名空间同一个命名空间的数据被分成很多个Extent,Extent之间使用双向链表连接在每一个Extent中,保存了具体每一行的数据,这些数据也是通过双向链接连接的每一行数据存储空间不仅包括数据占用空间,还可能包 阅读全文
posted @ 2012-09-15 14:24 vivianC 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 转自:http://nosql-wiki.org/foswiki/bin/view/Main/TwoPhaseCommit2PC是工程上广泛使用的分布式一致性协议,它主要解决的问题是:一个事务,要么所有参与者都commit;要么所有参与者都abort。 在没有异常的情况下,2PC是很容易理解的。理解2PC的难点在于出现异常的情况下协议如何保证事务的正确执行执行。2PC协议中有两种身份:协调者(coordinator)和参与制(participant)。2PC包括两个阶段,每个阶段各自包含两个步骤。下面请跟着 笔者的思路逐渐加深对2PC协议的理解。理想时代:没有异常此时,我们假设所有参与者、网络 阅读全文
posted @ 2012-09-15 14:15 vivianC 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 转自:http://nosql-wiki.org/foswiki/bin/view/Main/TransactonLog日志保证了数据的持久性和事务的原子性。可以简单的认为日志是一个不断追加日志记录的文件。单条日志记录是一段二进制缓冲区。 下面是本文会使用到的几条通用的日志记录:标示trasaction的开始标示transcatoin成功提交,所有对数据的修改都已经成功。由于cache的存在,在日志中看到COMMIT并不一定意味着 数据的修改都已经持久化。日志的目的就是保证所有COMMIT的事务的修改在程序程序异常退出的情况下能够保留;所有没有COMMIT 的事务的修改在程序异常退出的情况下都 阅读全文
posted @ 2012-09-15 14:14 vivianC 阅读(233) 评论(0) 推荐(0) 编辑
摘要: Google File System是Google的分布式系统。本文主要对论文中的技术点进行探讨。2.3 Architecture文件路径(namespace)数据结构how to mapping from files to chunks2.6.3 Operation Log2.7 Consistency Model3.1 Lease and Mutation OrderLease协议层级leaselease带来的不可服务时间master的primary和shadow之间是否要同步lease信息Lease应该使用绝对时间还是相对时间mutation order4.4 Garbage Colle 阅读全文
posted @ 2012-09-15 14:13 vivianC 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 转自:http://topic.csdn.net/u/20100325/16/0b86c0ed-5b8d-4eec-a757-c782ae9a3a35.html现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为:进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约702 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。这两个数值表示一个进程自启动以来所发生的缺页 阅读全文
posted @ 2012-09-15 14:07 vivianC 阅读(700) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示