- 浏览: 409508 次
最新评论
-
iunknown:
909601686 写道我理解下来,之所以使用奇数应该不仅仅是 ...
以两军问题为背景来演绎Basic Paxos -
909601686:
我理解下来,之所以使用奇数应该不仅仅是为了判断谁赢。而是这样就 ...
以两军问题为背景来演绎Basic Paxos -
feclipse:
you are my hero! 看了你的图示之后,我的理解 ...
以两军问题为背景来演绎Basic Paxos -
lcc0739:
相当好!通俗易懂,看了好几篇paxos只有你这个最深入浅出!
以两军问题为背景来演绎Basic Paxos -
iunknown:
tangfu 写道hi,问一下,博主提供的库与pb兼容么,比如 ...
一个轻量的 wire format 解释器(google protobuf 的二进制格式)
文章列表
http://www.mail-archive.com/lucene-user@jakarta.apache.org/msg12709.html
A clever way to do this is to take advantage of Lucene's index file structure. Indexes are directories of files. As the index changes through additions and deletions most files in the index stay the same. So you can efficiently ...
http://cn.last.fm/user/RJ/journal/2007/04/10/392555/
libketama - a consistent hashing algo for memcache clients
http://www.isthe.com/chongo/tech/comp/fnv/
Fowler / Noll / Vo (FNV) Hash
http://lists.danga.com/pipermail/memcached/2007-April/003834.html
- 2008-01-16 22:42
- 浏览 2364
- 评论(3)
SPNetKit 主要是一个常见应用层协议的客户端库,使用 C++ 实现,目前实现了 http,smtp,pop3,memcached 。
对于每个客户端都带有一个命令行的示范例子。
http/smtp/pop3 除了 TCP 实现之外,也能支持 SSL (基于 openssl)。
memcached client 支持了最新的 memcached 1.2.4 中新增加的 'append', 'prepend', 'gets', and 'cas' 命令。
除了这些客户端实现之外,还包括一个读取 ini 配置文件的类,base64 编码和解码类。
主页:http://code.google ...
tags
svn copy https://xxxx.googlecode.com/svn/trunk/ https://xxxx.googlecode.com/svn/tags/0.1 -m "0.1 release" --username xxxx
- 2008-01-12 21:45
- 浏览 1361
- 评论(0)
看了 apache 的分析文章之后,觉得里面的图非常好地描述了 apache 的结构。也尝试用 visio 画一下 spprocpool 的结构。
对图中各个部分的说明:
1. MasterServer 通过 Fork 创建 ProcessManager ,ProcessPool 作为 ProcessManager 在 MasterServer 中的存根
2. 在 ProcessPool 和 ProcessManager 存在一个 ManagerPipe 管道
3. 当 MasterServer 需要更多的子进程的时候,MasterServer 通过 ProcessPool 对象向 Proce ...
checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized
在做 configure 的时候,报上述的错误。
解决方案:
把 /usr/share/libtool/config.guess 覆盖到相关软件自带的config.guess
把 /usr/share/libtool/config.sub 覆盖到相关软件自带的config.sub
./configure --enable-shared --enable-sta ...
- 2007-12-19 16:57
- 浏览 6623
- 评论(1)
SPProcPool 是一个 linux/unix 平台上的进程池服务器框架,使用 c++ 实现。主要包含了几种不同类型的进程池的实现:
一个基于 Leader/Follower 模式的服务器端进程池(类似 apache 的 prefork 模型);
一个组合了 Prefork 和线程池的服务器端 ...
http://developers.facebook.com/thrift/
Thrift is a software framework for scalable cross-language services development. It combines a powerful software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, and Ruby. Thrift was deve ...
suse linux 自带了 lkcd 安装包,安装之后,还有些配置项需要修改一下。
默认是使用 网络 方式,改成使用本地文件方式,记录一下
/etc/sysconfig/dump
DUMP_ACTIVE="1"
DUMPDEV="/dev/vmdump"
DUMPDIR="/var/log/dump"
DUMP_LEVEL="2"
DUMP_COMPRESS="2"
DUMP_FLAGS="0x80000000"
DUMP_SAVE="1&quo ...
- 2007-09-27 23:22
- 浏览 2329
- 评论(0)
分析还包括透过表面需求进行深入分析,以便获得一个有关该问题本质内容的智力模型。
但在很多企业里,相关的规律并不易于让人了解,我们必须努力去揭示它们。为此我们创建了概念模型--一种允许我们了解并简化问题的智力模型。
需要特别提醒的是,概念模型是一种人工制品。开发人员用来创建类似于斯诺克台球模拟程序这类事物的运动规律在现实世界中并不存在;它们是有人类创造的,表征了现实世界的某种模型。从工程角度来讲,这些模型非常有效,因为它们是我们能够更深刻地理解现实世界所发生的事情。
不存在正确或者错误的模型,只存在对手头的工作更适用的模型。
- 2007-08-14 06:54
- 浏览 1558
- 评论(0)
在为基于文本命令行协议的服务器(echo,smtp,pop,http一类的)增加 ssl 支持的时候,通常期望能够有一个 stelnet 工具,类似于平时用来测试文本命令行服务器的 telnet 工具,不过就要求 stelnet 能够支持 ssl 协议。一般来说,开发这类服务器,telnet 都是最基本的调试工具。有了这个 stelnet 工具之后,对于开发 ssl 的服务器有很大的帮助。
用 google search 了一下,发现有人准备做这个东西,但在 sf 上只有项目说明,还没有任何代码下载。接着就发现了下面这个链接
http://russell.rucus.net/blog/Geek ...
http://gceclub.sun.com.cn/solaris/819-7051-10.pdf
Fork-One 安全问题和解决方案
除了通常关注的问题(如锁定共享数据)以外,当只有fork() 线程处于运行状态时,还应
根据fork 子进程的操作来处理库。问题在于子进程中的唯一线程可能会尝试获取由未复制
到子进程中的线程持有的锁定。
大多数程序不可能遇到此问题。从fork() 返回后,大多数程序都会调用子进程中的
exec()。但是,如果程序在调用exec() 之前必须在子进程中执行操作,或永远不会调用
exec(),则子进程可能会遇到死锁。每个库编写者都应提供安全的解决方案,尽管提供一 ...
- 2007-07-19 13:02
- 浏览 4281
- 评论(2)
http://blog.csdn.net/marcolu/archive/2004/08/02/59085.aspx
常用的应该就只有3个:worker|prefork|perchild
1. prefork:在功能上就是使用 Apache的运行方式,一个父进程,然后根据设置以及连接情况生成相应的子进程数。这种模式可靠性和健壮性都是最好的。但是在性能上,开销过大。达不到我们这些“吸血鬼”的要求了^_^。如果连接数过多的话,会导致我们无法远程登陆,一定要等到连接数下降后才能连接,这也是最让我头痛的事情。
2. worker:混合线程/进程的MPM。一个父进程,后面是带有线程的子进程 ...
- 2007-06-19 13:28
- 浏览 1890
- 评论(0)
用 c 来封装一个模块,可以参考下面这个连接中的做法。
http://paul.rutgers.edu/~csgates/CS416/proj2/index.html
这里的做法可以说已经到了一种极限,如果把这个 threadpool 编译为一个动态连接库的话,那么对于客户程序来说,即使在编译时使用 A 实现,在运行时改成用 B 实现也完全没问题。只要 B 实现生成的库名和 A 一致。这里关键的一点就是 threadpool 的定义,居然是 typedef 为 void *。客户程序得到的是一个 void * 指针,这样在客户程序中就完全不涉及具体的实现了。也就是常说的“对客户程序透明”(明明 ...
这里有个关于分布式版本控制的介绍
http://sishen.lifegoo.com/?p=27
- 2007-06-10 16:22
- 浏览 1588
- 评论(0)