MongDb
u010725670
这个作者很懒,什么都没留下…
展开
-
MongoDB 初见指南
在系统引入 MongoDB 也有几年了,一开始是因为 MySQL 中有单表记录增长太快(每天几千万条吧)容易拖慢 MySQL 的主从复制。而这类数据增长迅速的流水表,对数据一致性也没那么高要求,而且业务上也不需要关联查询它,就考虑分出去。为什么是 MongoDB?刚巧赶上公司 DBA 团队引入了这个数据库,有人帮助运维,对业务团队就成了一个自然的选择。不过对于任何技术产品你如果要把它用在生产环境上转载 2016-02-02 15:09:58 · 164 阅读 · 0 评论 -
MongoDB使用教程系列文章--Driver原理(初始化)
MongoDB使用教程系列文章--Driver原理(初始化)Driver是MongoDB非常重要的组成部分,通过不同的配置实现Secondary访问;读写分离,动态感知集群容灾切换等功能。MongoDB目前已经覆盖了大部分的开发语言,常见的JAVA到Go,可以参考官方连接MongoDB Drivers。这篇文章我们以Java版本为例介绍MongoDB的Drivers实现逻辑和协议,选择转载 2016-02-03 17:49:43 · 2033 阅读 · 0 评论 -
MongoDB使用教程系列文章--开篇
MongoDB使用教程系列文章--开篇根据DB-Engines的排名统计,MongoDB综合排名第四(2016年1月数据,前三名分别是Oracle,MySQL,SQL Server),NoSQL领域(非RDBMS)里排名第一。尤其是在2015年里,一口气发布了两个大版本,3月发布了3.0版本,11月发布3.2版本。在3.2版本中开始突破NoSQL的枷锁,提供了Join操转载 2016-02-03 17:50:25 · 281 阅读 · 0 评论 -
Mongodb Wiredtiger存储引擎实现原理
Mongodb Wiredtiger存储引擎实现原理Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理清了wiredtiger的大致原理,并简单总结,不保证内容都是正确的,如有问题请指出,欢迎讨论交流。按照Mongodb默认的配置,转载 2016-02-03 17:51:16 · 275 阅读 · 0 评论 -
MongoDB Replication NetworkInterface
Replication是MongoDB一套非常复杂的功能,功能包括数据同步,选举,心跳维护等。涉及到与其他MongoD进程通讯。RPC的封装相对也比较重要,作为这些功能实现的基础。Replication相关的对象角色都被封装在ReplicationCoordinatorImpl对象中:repl::ReplicationCoordinatorImpl* replCoord =转载 2016-02-03 17:52:00 · 268 阅读 · 0 评论 -
MongoDB Kill Hang问题排查记录
AliCloudDB MongoDB在开发过程中遇到一个无法正常退出的BUG,由于是Release版本的编译(-O3),debuginfo已经不能很好的展现出堆栈的情况。这时又该如何确定问题所在呢?本篇文章完整的记录了整个排查过程。场景kill命令正常执行,但进程迟迟没有退出。非必现场景,在批量回收资源时比较容易出现,平时开发测试时没有遇到。从场景上看出现的概率并不高,可能是在某种转载 2016-02-03 17:52:58 · 617 阅读 · 0 评论 -
MongoDB的索引代码实现--BtreeBasedAccessMethod
学习开源软件的最好的办法就是阅读代码,MongoDB整个代码库有接近90万行代码,DB核心层大概50万行,代码量确实非常多。本文作为MongoDB代码导读的第一篇,从Index部分上入手分析代码实现。为何从索引部分开始介绍,首先代码量较少,总共5000多行,且相对其他模块来说比较独立;其次索引对数据库的优化至关重要,了解其实现,对日后的运维优化和索引自身的限制约定都具有实际意义。毕竟文档上的描转载 2016-02-03 17:53:56 · 351 阅读 · 0 评论