擅长面向对象设计、C++程序开发,在金山和华为呆过,互联网从业十多年,有分布式计算和存储系统经验。
mooon的设计进入关键时刻,有几个决策点还没有定下来,如下: 1.是否同时支持进程和线程模型 进程模型是指内核为一个独立的进程,而每个业务又为独立的一个进程,业务可以为多线程,同时内核会产生相应个数的内核线程与业务线程一一对应,内核线程和业务进程在创建业务时产生。
当需要对disuz做一些修改时,可能会涉及到这个文件。 D:\hadoop\backup\20120619221410\templates\default\messages.lang.php ...
作者:gfree.wind@gmail.com 博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。
软件技术经历也如下几个发展阶段:1.纯属科学家的玩意 2.个人英雄者的世界,比如我们常说的第一代程序员 3.纯软件公司,产生了大批纯软件公司,而且活得很好,如当年的四大软件园 4.软硬结合,纯软件的死了大半,象华为软硬结合活得很好 5.
写代码,少不了各种命名,那如何才是最合理的命名,或者没有好坏之分了?如果有了理论基础,这事就好办。 mooon中的命名采用的理论依据: 1.简单性,拒绝画蛇添足,如类成员变量仅以“_”打头,前面的字母“m”纯是多余的 2.
MOOON-agent系统设计与使用说明.pdf MOOON-agent系统设计与使用说明 易剑 2012/6/16 目录 1. 设计目标 1 2. 应用场景 2 3. 主要功能 2 4. 系统骨架 3 5. 资源接口 3 6. 内置CommandProcessor 3 7. 编程接口 3 7.1. agent.h 4 7.2. message.h 5 7.3. message_command.h 5 7.4. command_processor.h 6 8. 编程示例 7 1. 设计目标一个通用的agent框架,提供编程接口,并内置通用的功能。
如果是定义一个全局的map,会出现如下core: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7b449ea in std::_Rb_tree_decreme...
在实践中遇到一个问题,就是经过良好设计而实现的代码,大家会觉得不容易看懂,而平铺直述的反而易看。 我分析这是一个很正常的现象,原因是未设计而出的代码是按人的正常思维平铺直述的,所以大家容易看,这些代码常有些共性:即冗长、重复的现象常见、基本没有职责单一可言、比较扁平、以过程化为即使是C++写的。
良好的编程有习惯的意义在于: 1.犹如面子,给人好的好象 2.犹如在找东西,容易找到 3.不给人添麻烦,让人接手得舒舒服服 4.从源头避免版本不一致问题(当同一个文件在不同目录下出现拷贝时,容易出现其中某个未同步更新的问题) 5.
在技术文档中,发现很多时候并没有对topology、architecture和struct进行严格区分,有时可以见到一个topology成了architechure,有时一个struct成了architechure。
下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件没有包含任何symbol,这个时候,可以找相应的静态库版本librt.a,看看它里面是否存在`clock_gettime'。
下面这个错误是因为zlib包没有安装,安装后问题即可解决。但有一点请注意安装命令是:sudo apt-get install zlib1g-dev,而非sudo apt-get install zlib ./file_util.cpp:19:18: 致命错误: zlib.h:没有那个文件或目录 编译中断。
autoconf --version autoconf (GNU Autoconf) 2.59 automake --version automake (GNU automake) 1.
下面这个错误是因为没有安装g++ $ ./configure --prefix=/data1/mooon/run checking for a BSD-compatible install.
今天特别花1688在51buy.com上买了台同方的笔记本用于mooon的开发,先是安装了Fedora,觉得不好,想安装openSuSE,但发现安装包太大,最后仍选择了ubuntu 12.
深入多线程编程.pdf 线程库 多线程编程定式 无锁编程(Lock Free) 阻塞型同步(Blocking Synchronization) 非阻塞型同步(Non-blocking Synchroni...
全文下载: Linux内核list&hlist解读.pdf 目录 1. 前言 2 2. 通用宏 2 2.
OpenSSL编程入门(含完整示例).docOpenSSL编程入门(含完整示例).pdf OpenSSL编程入门(含完整示例) 易剑 2008/12/5 目录 目录 1 1.
原帖发表在Hadoop技术论坛 在做C++程序的单元测试时,大家经常会遇到两个问题: 1.不方便验证测试结果,原因是因为不可访问保护和私有类成员 2.对于需要访问的connect、receive、send等不好绕过 这里介绍两种方法,即可解决: 1.
注:原发表在Hadoop技术论坛1.inotify_add_watch返回并不是一个fd,而只是一个标识2.对于同一个PATH,inotify_add_watch将返回相同的标识。不需要调用close关闭,但需要调用inotify_rm_watch来删除。
注:原发表在Hadoop技术论坛 相关函数:sched_setaffinity, sched_getaffinity, CPU_CLR, CPU_ISSET, CPU_SET, CPU_ZERO - set and get a process's CPU affinity mask大写数实际为宏,进行位操作的宏。
注:原发表在Hadoop技术论坛 在进行OO时,很容易做到结构统一,这个也容易理解,如下: class Parent { public: virtual void hello() = 0; }; class Child1: public Parent { p...
如果你的程序遇到SIGILL, Illegal instruction问题,你应当考虑一下是否存在版本不一致的问题,比如依赖的共享库接口变了,但你仍在使用老版本的库,问题的现象通常是诡异,而且你觉得不可能挂的地方,而通常是挂在你对依赖库的调用之处。
注:原发表在Hadoop技术论坛 io_submit、io_setup和io_getevents是LINUX上的AIO系统调用。
ChinaUnix最近有个贴子讨论热烈,在这里记录一下我的理解,struct的对齐是遵照下列二个条件中最小的一个进行的: 1.#pragma pack(N)中N指定的值 2.
C语言编程程序的内存如何布局 C语言程序在内存中各个段的组成 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。
注:原发表在Hadoop技术论坛 BSS(Block Started by Symbol)用来存储未初始化的全局变量,值为0的通常会被编译器认为未初始化,属于静态内存分配区,不会占用程序文件空间DATA用来存储已经初始化的全局变量...
隐患 1.忽略返回状态 第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。
发送状态机比接收状态机相对要简单 send_machine.h 点击(此处)折叠或打开 #ifndef MOOON_AGENT_SEND_MACHINE_H #define MOOON_AGENT_SEND_MACHINE_H #include agent/config.
recv_machine.h 点击(此处)折叠或打开 #ifndef MOOON_AGENT_RECV_MACHINE_H #define MOOON_AGENT_RECV_MACHINE_H #include agent/message.
mooon-agent以简约的设计为主,力求各对象之间保持简单的关系,尽量避免过度的传递,因此CAgentThread成了核心。除此之外,还有几个关键的设计点:1、采用了可Epollable的队列,以保证消息的实时上报 2、使用了状态机,分别为发送消息的CSendMachine和接收...
调度器的设计必须满足以下要求: 1、高效,最好不用查找,而是直接的数组下标定位,这就要求设计好分布式对象的ID 2、支持业务独占进程,这是保证高可用性的前提,也是解业务与业务间,和业务和平台间耦合的前提 3、本地间的业务进程间通讯优化,避免走网络 4、简洁的通讯消息结构 ...
代码:http://code.google.com/p/mooon/source/browse/#svn%2Ftrunk%2Fcommon_component%2Fsrc%2Fagent 说明:以下类图只画出了基础的核心类和主要关系,弱的依赖关系没有画出来。
图1 在写程序时,我们会经常遇到如上图所示的一种情形——深层调用,ClassD1和ClassD2需要调用ClassA关联的ClassX、ClassY和ClassZ等,对于这种情况,经常见到通过构造函数一层层往下传递做法。
set nu set ro set shiftwidth=4 set tabstop=4 set softtabstop=4 syntax on if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm ...
PPT下载:http://img1.51cto.com/attachment/201205/1246491_1337385297.ppt 提纲 春秋 - 项橐 战国 - 甘罗 东汉 - 曹冲 东汉 - 周不疑 东汉 - 孔融 西晋 - 王戎 唐初 - 骆宾王 唐初 - 王勃...
第一次接触VC大概是在1998年底,当时好象是5.0版本,然后不久就转到了6.0,正式常用大概是2001年,当时拼命学VC和Delphi,学COM等。在02年底转向Unix/Linux开发,依然使用VC6.0作为编辑器,中间VC出了很多个新版本,但基本没有使用过,直接2010年,开始使用VC2010。
实现下载: inttypes.txt 处理网络程序的字节序,是件非常简单的事,但每次使用时,都显示调用ntohl之类的转换,仍是一件麻烦的事。怎样做更简单了? 只需要定义出各种网络字节序的类型即可,而这些类型和主机字节序兼容。
对于网络编程,为适应异构环境,通常会做主机字节序到网络字节序的转换,消息一多,是有一定CPU浪费的,这一般不是个好主意,于是有些做法在消息头用一个bit来指示消息的字节序,可以不必要的转换。
原文:http://www.cnblogs.com/itfriend/archive/2011/12/14/2287160.html 最近遇到两起Linux的内存问题,其一是触发了oom-killer导致系统挂 1.
全文下载: hadoop开发者第三期.pdf 目录 Hadoop中的数据库访问 MapReduce中多文件输出的使用 ZooKeeper使用与分析 浅析一种分类数据模型 Sector框架分析 RunonHadoop ...
全文下载:http://ishare.iask.sina.com.cn/f/14487230.html 目录 mooon 1 海量数据处理平台架构演变 4 计算不均衡问题在Hive中的解决办法 15 Join算子在Hadoop中的实现 20 配置Hive元数据DB为Postg...
全文下载:http://ishare.iask.sina.com.cn/f/7401946.html 目录 1、Hadoop 业界资讯.......................
全文下载:http://ishare.iask.sina.com.cn/f/6740538.html 目录 1 Hadoop介绍 2 Hadoop在国内应用情况 3 Hadoop源代码eclipse编译教程 7 在Windows上安装Hadoop教程 13 在Linux上安装H...
全文下载: Hadoop源代码eclipse编译指南.pdf 目录 1. 下载Hadoop源代码 1 2. 准备编译环境 2 2.1. Hadoop代码版本 2 2.2. 联网 2 2.
原文:http://blog.sina.com.cn/s/blog_601331150100gjmk.html 1 、配置文件的位置 在目录 /etc/ 下面,有个名为vimrc 的文件,这是系统中公共的vim配置文件,对所有用户都有效。
全文下载: RPC的实现.pdf 目录 1. 前言 2 2. 基本概念 3 2.1.
原文:http://blog.liuw.name/1024 内核执行的任务在很多情况下是不加锁的,只是poll某个公有变量去保证同步。再深一步,即使是使用锁,本质上也是一个poll某个公有变量的过程。
在现实生活中,我们会经常发生非常相似的东西,我揣摩是因为后者参考了前者,而偏离了需求驱动这基本原则。这涉及到我们究竟应当如何去设计一个东西。我的做法是按需而动,而不是按参照物去做,参照物只是帮助整理需求工作。
深入多线程编程.pdf 线程库 多线程编程定式 无锁编程(Lock Free) 阻塞型同步(Blocking Synchronization) 非阻塞型同步(Non-blockin...