·  MongoDB: 9. Sharding (2)

日期:2010-09-07MongoDB Auto-Sharding 解决了海量存储和动态扩容的问题,但离实际生产环境所需的高可靠(high reliability)、高可用(high availability)还有些距离。 解决方案: Shard: 使用 Replica Sets,确保每个数据节点都具有备份、自动容错转移、自动恢复能力。 Config: 使用 3 个配置

·  MongoDB: 8. Sharding (1)

日期:2010-08-30将海量的数据水平或垂直切割,分区存储到多台服务器上是一个最基本的现实需求。从 1.6 版开始,MongoDB Sharding 总算打上了 production-ready 标记。 MongoDB 的数据分块称为 chunk。每个 chunk 都是 Collection 中一段连续的数据记录,通常最大尺寸是 200MB,超出则生成新

·  MongoDB: 7. Replication (2)

日期:2010-08-302. Master/Slave Master/Slave 是一种典型的备份方案,MongoDB 支持 One Master Multi Salver 和 Multi Master One Slave 等多种部署方式。 先从简单的 镜像备份 开始。 $ sudo mkdir -p /var/mongodb/0 $ sudo mkdir -p /var/mongodb/1 $ sudo ./mongod --fork --logpath /d

·  MongoDB: 7. Replication (1)

日期:2010-08-30最新的 1.6 版总算提供了 Replica Sets,比起有点莫名其妙的 Replica Pairs,这才是高可用集群所需要的。 1. Replica Sets Replica Sets 使用 n 个 Mongod 节点,构建具备自动容错转移(auto-failover)、自动恢复(auto-recovery) 的高可用方案。通常使用 3 个 mongod 实例,

·  面向对象语言的编译过程--以C++为例(二)

日期:2010-08-15摘要: 概述面向对象语言的重要概念和实现技术 以C++语言为例,介绍如何将C++程序翻译成C程序 实际的编译器大都把C++程序直接翻译成低级语言程序 编译器对于继承的处理,往往是父类包含子类的对象,例如 struct Base { int a; }; struct Derived { Base base; int b; }; 再深

·  面向对象语言的编译过程-以C++为例(一)

日期:2010-08-15摘要: 概述面向对象语言的重要概念和实现技术 以C++语言为例,介绍如何将C++程序翻译成C程序 实际的编译器大都把C++程序直接翻译成低级语言程序 关于面向过程的高级语言的编译过程想必大家不陌生。《编译原理》类的课程多是以C语言(C的子集)为例,介绍高级语言的编译过程。

·  关于c#静态方法和实例方法的辨析和应用

日期:2010-08-15本文将围绕c#静态方法和实例方法讨论一下。针对一些观点,如:静态方法是常驻内存, 还有静态方法比实例方法先装载,做一个辨析。同时讨论下何时用静态方法,何时用实例方法。 前几日,在微软的好友发给我一个链接:《静态方法和实例化方法之间的区别你知道了嘛? 欢迎讨

·  C#中Trim()、TrimStart()、TrimEnd()的错误看法

日期:2010-08-15这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。 如果这

·  使用不同的本机IP地址访问目标网站

日期:2010-08-15公司的爬虫在爬取个别网站内容时候发现目标服务器对访问频率做了限制,这样只能限制爬虫访问的频率,造成了信息的滞后和数量始终上不去。于是就研究能不能让访问请求依次通过不同的IP地址访问目标服务器来增大访问的频率。让爬虫在不同的服务器上运行,这是另外一种解决思路

·  Flash Lite手机应用程序开发初探

日期:2010-08-13移动互联网电子产品领域Apple风头正劲,Google也持续发力,两大巨头旗下产品iPhone和Android的竞争打的火热。基于这两个平台的手机应用程序开发也进行的如火如荼。最近有机会着手进行了一些手机Flash lite技术的预研工作,尝试从另一个技术层面来探索手机应用程序的开发。

·  C技巧:结构体参数转成不定参数

日期:2010-08-10下面这段程序是一个C语言的小技巧,其展示了如何把一个参数为结构体的函数转成一个可变参数的函数,其中用到了宏和内建宏__VA_ARGS__,下面这段程序可以在GCC下正常编译通过: #include stdio.h #define func(...) myfunc((struct mystru){__VA_ARGS__}) struct mystru { con

·  程序员趣闻:微软最囧的UI

日期:2010-08-09以前,本站介绍过一些 Ugly的UI ,今天我们来看看微软Windows里的画笔程序,看看一个微软干了什么? 我打开了一个比较大的图片,有点太大了,我想缩小一下看看,很好,微软在菜单项里供了Zoom选项,其中有一个Custom(自定义),挺不错的。 但是,当我看到这个自定义的对话框后

·  VS2010 中创建自定义 SQL Rule

日期:2010-08-06VS2010已经发布几天时间了,一些新的特性特别引人注目,比如: 性能的稳定和提升,表现在WPF GUI和WPF文本呈现。 Windows Azure Tools模板。 多显示器支持,输出窗口,类图窗口,代码定义窗口等提供辅助信息的窗口放置在副显示器中。 对并行计算开发的大量支持。 包含了Shar

·  程序员有哪些发展方向

日期:2010-08-03程序员职业生涯发展到一定程度都会面临一个选择,是走业务+技术方向,还是选择纯钻研技术。程序员职业生涯发展的问题,这是所有程序员都在关心的问题,未来究竟要怎么走,30岁之后还能不能再做程序员。 绝大多数程序员最终的职业目标可能都是CTO,做到CEO的人估计会比较少,

·  像毛主席一样教导我们:最佳编程语录出炉

日期:2010-08-02毛主席语录,相信很多年龄稍大一些的朋友都看过吧?我们伟大的领导谆谆教导我们,如何工作、生活和学习,今天烈火网小编有幸在coolshell.cn看到了类似主席语录的外文翻译稿,大家一起学习吧

·  MongoDB: 6. Optimization

日期:2010-07-291. Profiler MongoDB 自带 Profiler,可以非常方便地记录下所有耗时过长操作,以便于调优。 db.setProfilingLevel(n) n: 0: Off; 1: Log Slow Operations; 2: Log All Operations. 通常我们只关心 Slow Operation,Level 1 默认记录 100ms 的操作,当然我们也可以自己调整 db

·  Git使用教程:取代码及修改全局设置

日期:2010-07-29取代码及修改全局设置 设置用户名与邮箱 git config --global user.name My Name git config --global user.email my@email.com 从已有的git库中提取代码 git clone git@server:app.git myrepo 每次更改代码的操作 更新本地代码到最新版本(需要merge才能合到本地代码中

·  五种应该避免的代码注释

日期:2010-07-28在酷壳,有很多文章都提到了代码注释,如:《 十条不错的编程观点 》、《 优质代码的十诫 》、《 整洁代码的4个提示 》、《 惹恼程序员的十件事 》等等。今天,某国外的程序员在 这里 列举五种应该避免的程序注释,我觉得比较有道理,但我觉得有少数几个观点也并不绝对。所

·  MongoDB: 5. Admin

日期:2010-07-26Mongod 是 MongoDB 核心程序,通常情况下我们只需折腾该程序即可。 1. dbpath port 默认数据存储路径是 /data/db,默认端口 27017,默认 HTTP 端口 28017。用 --dbpath 和 --port 改吧。 $ sudo ./mongod --dbpath /var/mongodb --port 1234 Sat Jul 24 22:58:50 MongoDB sta

·  MongoDB: 4. Index

日期:2010-07-26MongoDB 提供了多样性的索引支持。 for (var i = 0; i 30; i++) { ... u = { name : user + i, ... age : 20 + i, ... contact : { ... address : [address1_ + i, address2_ + i], ... postcode : 100000 + i, ... } ... }; ... db.users.insert(u); ... } 索引信息被