随笔分类 -  MongoDB

MongoDB 探索之路
mongodb/SQL 连接池小记
摘要:默认情况下,基本所有数据库都是有连接池项的。mongodb也不例外,当我们使用一致的连接字符串时,这些连接都会归到一个池里重复利用,如果没设置最小minpoolsize 连接池会在一定的时间内关闭掉这些连接,当设置了此值时,连接池会保留这个值数量的活动连接以重用利用,从而必免反复创建浪费开销。 这里需要注意的是,连接字符串必段一样的,否则会重新创建另外一个池 。(SQL/Mongodb 都是如此)。在串行过程中,使用同一连接字符串依次创建的连接在一般指向同一个连接(当没有其它并行线程的情况下)。并行过程中,则表现为池中MinimumPoolSize循环利用。而不同的连接字符串创建连接必定都是. 阅读全文

posted @ 2011-10-19 23:00 小城岁月 阅读(5301) 评论(5) 推荐(4) 编辑

MongoVUE 客户端工具
摘要:MongoVUE是一个可视化的界面的客户端工具,有点像SQL SERVER,功能目前来说很全了,查询功能,操作功能,浏览功能都很完整,并且GFS文件的查询浏览都可以。不过目前已经收费了。看一下界面,不由的喜欢。1.登录2.操作界面 阅读全文

posted @ 2011-10-19 09:08 小城岁月 阅读(1753) 评论(4) 推荐(4) 编辑

SQL/MongoDB 连接并发测试
摘要:最近一直在搞mongodb 文件服务器大量文件并发上传测试,在官方文档发现mongo是线程安全的,支持单一连接下的并发操作。印象ADO.NET 似乎不支持单一连接并发。于是,测试一下来证实这个疑虑。(前两篇小记一直纠结mongodb吃内存导致并发文件上传变慢问题,经过这两天测试,发现文件并发上传越来越慢的瓶颈是磁盘的IO读写的瓶颈)以10W条/20W条 记录写入测试,下面是测试结果 操作10W w/s20W w/s操作方式备注179.958163.396主线程 有池 单连接 单打开单打开指的一次open close 内执行所有写入操作279.958164.412主线程 有池 单连接 ... 阅读全文

posted @ 2011-10-18 23:26 小城岁月 阅读(12189) 评论(7) 推荐(7) 编辑

mongodb 服务器内存控制(WSRM)
摘要:由于碰到过mongodb吃掉所有闲置内存的情况,导致服务器操作越来越慢。虽然对mongodb的读操作没有太多影响,但是此时写入的性能却极剧下降(怀疑内存不够引起的)。由于要收集大量的历史文件数据,每次多线程收集到一定的程度时,写入文件速度越来越慢,经过多次测试发现,均与服务内存的使用峰值有关。当服务器内存使用率较低时,多线程写入较快,当服务器内存被mongodb 映射耗尽时,多线程写入速度慢到惨不忍赌了,即使是单线程情况这种情况表现也很明显。虽然mongodb提供了runCommnad({closeAllDatabase:1})或关闭数据库释放缓存,但是这却影响到了正常读写操作。因此给服务器预 阅读全文

posted @ 2011-10-17 11:12 小城岁月 阅读(3787) 评论(2) 推荐(1) 编辑

mongodb 64位服务器安装小记
摘要:今天试着在64位服务器上使用mongodb数据库,服务器硬盘磁盘阵列由10块140G硬盘构成,由于考虑采用Master/Salve机制备份这样就可以充份利用硬盘,所以采用了RAID5阵列。但是64位系统安装mongodb后,local数据库会直接用掉了70G。好浪费啊,赶紧查原因,发现mongodb在64位默认使用5%空间做为日志存储。经过测试发现不采用Master/Salve机制,则不会有这种问题,32位系统下也不会有这种问题。由于mongodb可以循环利用日志空间,加上是做文件器,最后把oplogsize 先定到10G 测试一下了。之前的32位服务器上mongodb收1G物理文件,会用掉. 阅读全文

posted @ 2011-10-11 21:19 小城岁月 阅读(1778) 评论(0) 推荐(2) 编辑

第六节 MongoDB 状态监控、备份复制及自动分片
摘要:如果MongoDB仅仅是一个文档型的数据库,那就没有什么亮点了,然而MongoDB最大优点在于读扩展,热备份,故障恢复以及自动分片(写扩展)。这节系列结束篇就把这些功能介绍一下。备份复制实现了数据库备份的同时,实现了读写分离,又实现了读操作的负载均衡,即一台主写服务器,多台从属备份和读服务器,并且支持备份和读的集群扩展。其中Replica Sets方式又支持故障切换,当主服务器down掉后会投票选出一台从服务器接替为主服务器实现写操作。而自动分片功能会将原先的集合(表),自动分片到其它服务器上,实现分布式存储,即缓解单表数据量过大,同时又实现写操作的负载均衡。状态监控Http Consolem 阅读全文

posted @ 2011-07-25 23:54 小城岁月 阅读(20125) 评论(10) 推荐(8) 编辑

项目铺垫系列导航目录
摘要:整理了最近的学习笔记,之所以写这些,就是想结合这些技术实现一个完整的项目。之后时间会结合JQuery+MVC+Entity FrameWork+Memcached+MongoDB 等技术写个项目应用系列。MVC原理分析通过.net reflector了解asp.net站点的请求与响应过程了解.net MVC的实现原理Controller/Action了解.net mvc实现原理ActionResu... 阅读全文

posted @ 2011-07-20 22:26 小城岁月 阅读(6799) 评论(19) 推荐(22) 编辑

Nginx的负载均衡的那点事
摘要:本节就聊聊采用Nginx负载均衡之后碰到的问题:Session问题文件上传下载通常解决服务器负载问题,都会通过多服务器分载来解决。常见的解决方案有:网站入口通过分站链接负载(天空软件站,华军软件园等)DNS轮询 F5物理设备Nginx等轻量级架构那我们看看Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。2、weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。2、ip_hash每个请求按访问ip的hash结果分配,这样每个访客 阅读全文

posted @ 2011-06-20 23:53 小城岁月 阅读(40399) 评论(14) 推荐(13) 编辑

第五节 MongoDB GridFS文件存储
摘要:本节探讨问题:回顾对象存取GFS文件存储samus Mongo配置一、回顾对象存取上一节我们探讨了MongoDB对象的存储,这一节我们再补充一些。View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;using MongoDB;using MongoDB.Linq;using MongoDB.Attributes;namespace Demo{class Program{public class Person{[Mo 阅读全文

posted @ 2011-06-16 00:52 小城岁月 阅读(6818) 评论(0) 推荐(3) 编辑

第四节 MongoDB复杂及变化对象的存储
摘要:本节探讨问题:复杂对象的存储存储的实体对象发生变化了 既然要使MongoDB做业务驱动开发,那就要考虑到复杂的对象是否容易可以直接序列化存储呢?在后期的开发中,总会碰到对象的会增加或删除属性,那对象属性变动了,是否会对之前的存到MongoDB的数据反序列化会有影响呢?接下来我们就带着这些问题来简单测试一下,我也不知道是否会有问题。一、复杂对象的存储我们先来测试一些值类型的序列化问题,.net mvc中有两个方法用来将前台传回的数据绑定到对象上,TryUpdateModel(),UpdateModel(),我记得碰到日期,值类型若没赋值都会出错。而其它的序列化对数组,HashTable,日期等都 阅读全文

posted @ 2011-06-14 00:16 小城岁月 阅读(10337) 评论(3) 推荐(3) 编辑

第三节 MongoDB下samus源码初探
摘要:上一节我们在samus的simple例子简单的入门了,这一节将要探讨的问题写个简要对象存储继续关系对象的存储LINQ体现类关系分析一、对象存储继续在samus源码上分析,依然是simple的例子。Demo中.net 3.5特性基本上都涉及了。View Code public static void Main(string[] args){#region 以下为Mongo配置及关系映射部分//var config = new MongoConfigurationBuilder(); //COMMENT OUT FROM HERE//config.Mapping(mapping =>//{/ 阅读全文

posted @ 2011-06-12 23:48 小城岁月 阅读(7565) 评论(5) 推荐(3) 编辑

第二节 为什么用MongoDB及.NET开发入门
摘要:本节问题:为什么要用MongoDBMongoDB for.net驱动选择MongoDB for VS插件介绍Demo介绍一、为什么要用MongoDB 为什么要用MongoDB取代传统关系型数据库?其实不是取代,只是对传统数据库的文档型补充。不是所有的数据都需要二维关系及多表对应的存储和查询,比如:文件的海量存储,只需Key与Value形式的存储及查询,同时这种方式的存储及查询都是高效的,可查看GirdFS,GirdFS是MongoDB的大文件存储系统,比如图片、音频、视频;数据如果不需要实时分析统计(包含读写比高的),也可以使用KV形式存储及查询。MongoDB介于缓存与数据库之间,存取速度逊 阅读全文

posted @ 2011-06-12 15:17 小城岁月 阅读(19246) 评论(2) 推荐(9) 编辑

第一节 MongoDB介绍及下载与安装
摘要:引言 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:面向集合存储,易存储对象类型的数据。模式自由。支持动态查询。支持完全索引,包含内部对象。支持查询。支持复制和故障恢复。使用高效的二进制数据存储,包括大型对象(如视频等) 阅读全文

posted @ 2011-06-11 20:07 小城岁月 阅读(146979) 评论(18) 推荐(22) 编辑

导航

面朝大海,春暖花开!