自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (6)
  • 收藏
  • 关注

原创 apache mod_dav框架的dav_hooks_propdb结构真的烂透了

apache的mod dav框架,其他说来还行,但是对于dead properties的dav_hooks_propdb结构真的烂透了。摘取做更新、删除操作的几个hook函数:dav_error * remove(...)dav_error * store(...)dav_error * get_rollback(...)dav_error * apply_rollback

2011-12-02 17:38:23 2366

原创 一个C语言的惨痛教训

一个c语言动态库开发的惨痛教训,作为警示,希望大家不要碰到这类问题。背景交代下背景,最近的一个项目,apache module开发,使用的是c语言。这个其实比较无奈,apache mod_dav.h中声明的dav_error结构体,其中一个字段就是const char *namespace,这不是鄙视C++吗?虽然有方法可以绕过,搞成C++的,最后还是决定用c语言开发。悲剧

2011-11-30 09:58:42 5304 2

原创 设计系统一定要透明

透明性对于系统的重要性会超过大多数人的想象!特别对于大规模分布式系统,缺乏了透明性,基本上就是一个不可维护的系统。透明性就是,随时能够知晓系统的运行状态,运行历史,关键参数指示当前运行是否正常;用户的详细操作历史、创建了什么文件,删除,又恢复...,发起过什么请求,都是应该可查的

2011-07-08 16:28:33 2678

原创 一句话架构

这段时间的工作感想,关于系统架构,最重要和核心的东西就是数据流的路径。数据流路径清晰可循的架构就是良好的架构,否则就是混乱的架构。再则就是分层的原则,分层原则可以说是“单一清晰”的延伸。分层清晰,则职责清晰。职责清晰,才能够各部分运转有序,各司其责。 剩下的,比如模式的应用,数据库的选择,存储的选择,类设计,接口等等内容,不能说不重要,但

2011-06-21 13:18:00 3723 6

转载 【转】Zeroc ICE的示例(转载)

<br />看个简单例子,作者写的很用心<br />-------------------------------------------------------<br />Zeroc ICE中间件号称标准统一,开源,跨平台,跨语言,分布式,安全,服务透明,负载均衡,面向对象,性能优越,防火期穿透,通讯屏蔽。因此相比Corba,DCOM,SOAP,J2EE等的中间件技术,自然是集众多优点于一身,而却没有他们的缺点。<br />在Windows平台试用了一下Zeroc ICE。运行简单客户端服务器的测试程序,

2011-04-06 16:54:00 10411 3

转载 【转】ice介绍网上搜集整理

ICE是个很好用的网络库,准备看看用法,转个介绍性的文章过来。-------------------------------------------------------关于ICE的介绍,网上的资料有很多,但是从应用的角度上去评述的并不多,在技术革新的今天我们可能更多的是去关注应用领域而非研究领域,因此根据 我个人的使用经验,想对ICE技术做一些总结和介绍。什么是ICE(Internet Communications Engine)呢,它是由Zeroc公司开 发的一套开源中间件系统,与DCOM,CORBA

2011-04-06 16:08:00 3915

原创 memcache的分布式缓存问题

<br />有关使用memcache做分布式缓存的方案,简单写下来,仅供参考。<br /> <br />memcache是优异的缓存解决方案,很多项目都有使用。<br />memcache服务本身并不具备分布式缓存的能力,它提供的就是对{key, value}对的访问能力,分布式的能力则完全来自于客户端。基于consistent hashing算法的分布式缓存<br />现在有不少memcache的客户端lib采用consistent hashing作为分布式算法,采用consistent hashin

2010-10-18 09:36:00 6125 1

转载 转个不错的云计算blog

<br /> <br />这两天回过头来再翻了翻这几篇Google的经典论文,发现网上有个不错的翻译版本,并且很完整,贴出来分享一下:<br />http://blademaster.ixiezi.com/category/google%E8%AE%BA%E6%96%87/<br /> <br />还有一个云计算的blog:http://peopleyun.com/<br />也值得一看。<br /> 

2010-09-27 10:51:00 119

翻译 Paxos Made Simple【翻译】

<br />Paxos一致性算法——分布式系统中的经典算法,论文本身也有一段有趣的故事。一致性问题是分布式系统的根本问题之一,在论文中,作者一步步的加强最初一致性问题(2.1节提出的问题)的约束条件,最终导出了一个可实现的一致性模型。当前Paxos算法的研究越来越多,相关实现也不少,而原论文依然是最不可少的资料。论文通篇没有一个数学公式,这是大牛的坚持!<br />【】中的是我个人的注释。<br />先解释文中几个关键词的翻译:<br />Proposal译为“议案”,由proposer提出,被

2010-07-16 22:46:00 27691 11

翻译 A Digital Signature Based on a Conventional Encryption Function【翻译】

<br />翻译A Digital Signature Based on a Conventional Encryption Function,在本文中,Merkle提出了著名的Merkle hash树,它在其它方面也有不少应用,值得一读。基于常规加密函数的数字签名<br />By Ralph C.Merkle<br />Elxsi<br />2334 Lundy Place<br />San Jose, CA 95131摘要<br />本文描述了一种新的基于常规加密函数(比如DES)的数字签名

2010-07-04 23:27:00 3024

翻译 Chord:一个用于网络应用的可扩展的P2P查询服务(下)

5 并发操作和失效<br />在实际应用中Chord需要处理节点同时加入系统,以及节点实效或者自行离开的情况。本节描述了对第四节基本Chord算法的修改,以处理这些情况。5.1 稳定性<br />第四节描述的加入算法在网络进化时主动积极的维护所有节点的finger table。因为在大规模网络中,面对节点的并发加入的情况,这些不变性是很难维护的,我们要区分对待正确性和性能的目标。一个基本的“稳定化”(stabilization)协议,可以保持节点的后继指针始终是最新的,这对于保证查询的正确性是足够的。这些后

2010-06-20 16:06:00 6722 11

翻译 Chord:一个用于网络应用的可扩展的P2P查询服务(上)

Chord:一个用于网络应用的可扩展的P2P查询服务<br />Ion Stoica*, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan <br />MIT Laboratory for Computer Science [email protected]<br />http://pdos.lcs.mit.edu/chord/摘要<br />P2P(peer-to-peer)系统面临的一个根本问题就是如何有效的定位到

2010-06-19 13:12:00 12175 4

原创 CRC32算法详细推导(2)

<br />CRC算法详解(2)<br />初见Table-Driven<br /> <br />变换到上面的方法后,我们离table-driven的方法只有一步之遥了,我们知道一个字节能表示的正整数范围是0~255,步骤1中的计算就是针对reg的高Byte位进行的,于是可以被提取出来,预先计算并存储到一个有256项的表中,于是下面的算法就出炉了,这个和上面的算法本质上并没有什么区别。<br />#define POLY 0x04C11DB7L // CRC32生成多项式static unsigned

2010-06-15 11:13:00 6922 5

原创 CRC32算法详细推导(3)

CRC32算法详细推导(3)<br />郁闷的位逆转<br />看起来我们已经得到CRC-32算法的最终形式了,可是、可是在实际的应用中,数据传输时是低位先行的;对于一个字节Byte来讲,传输将是按照b1,b2,...,b8的顺序。而我们上面的算法是按照高位在前的约定,不管是reg还是G(x),g32,g31,...,g1;b8,b7,...,b1;r32,r31,...,r1。<br />先来看看前面从bit转换到Byte一节中for循环的逻辑:<br /> sum_poly

2010-06-15 00:28:00 9179 3

原创 CRC32算法详细推导(1)

<br />CRC算法详解(1)<br />作为blog再次发出来,详细描述一下CRC32算法的推导过程。CRC算法的数学基础<br />CRC算法的数学基础就不再多啰嗦了,到处都是,简单提一下。它是以GF(2)多项式算术为数学基础的,GF(2)多项式中只有一个变量x,其系数也只有0和1,比如:<br />    1*x^6 + 0*x^5 + 1*x^4 + 0*x^3 + 0*x^2 +1*x^1 + 1*x^0<br />       =x^6 + x^4 + x + 1<br />加

2010-06-14 23:55:00 59875 7

原创 字符串分割函数

<br />最近与字符串打交道相对多些,C++最痛苦的地方就是对字符串的操作太麻烦了,繁琐。<br /> <br />很多时候都会需要一个字符串分割函数,还可能是把诸如 “key1=value1 & key2=value2”形式的字符串分割称key/value对。<br />一直没找到合适的函数,干脆自己造一个。<br /> <br />函数如下,功能就是将“key1=value1 & key2=value2”形式的字符串分割称key/value对,<br />比如字符串“key1=value1 & key

2010-06-07 23:43:00 4960 5

原创 设计模式之策略模式

设计模式之策略模式<br /> 策略模式的定义<br />先来看看什么是策略模式:<br />定义和封装一个算法家族,并使这个家族种的各个算法可以相互替换,以使得算法可以独立于使用它的客户端而演变。UML如下所示。<br />这里的算法属于同一个算法家族,比如都是一组寻路算法,但是策略各有不同,有A-star,有简单寻路等等。<br />需求实例及初步设计<br />现在有一组需求,设计和展现坦克、榴弹炮、自行火炮等武器。它们都是装甲车辆,具有很多相同点,很自然我们会设计一个装甲车基类,并让

2010-06-06 20:39:00 2530

原创 面试时的那点事

面试时的那点事      算来毕业也将近两年了,从刚回写程序开始,面试过的公司是屈指可数,难说算坏算好啊。主席老人家说过要在战斗中壮大自己,看来我历练的还远远不够,不过在有限的斗争中,也总结了些许,与大家共勉之。      说来有些问题太过于tricky,如果过分沉浸在这些奇巧淫技里,反倒害了自己,不如把精力投入到更有效的地方。偏偏还能碰到有些人就喜欢追究这类问题,就像孔乙己一样因为知道回字的

2010-05-12 22:15:00 5062 6

转载 豆瓣网CTO洪强宁讲述网站架构变迁

豆瓣网CTO洪强宁讲述网站架构变迁主要内容是,随着访问量的增加,豆瓣遇到的问题和其解决之道,不错。图片太多了,直接给出链接:http://www.cnblogs.com/Mainz/archive/2009/06/28/CTO_Douban_Xiaonei_Renren_Website.html 网站的发展阶段及技术方案: 校内网CTO黄晶讲述网站架构变迁每

2010-04-21 12:23:00 2900

转载 豆瓣的架构~

转载几篇关于豆瓣等SNS网站和Social Game的架构设计文章;第一篇:豆瓣的架构其中提到了不少开发Web2.0网站的经验,值得分享;豆瓣的架构~2009-03-24 21:13:27关键字包括:nginx,lighttpd,quixote,Memcached,mogile FS,Mako,Gentoo Linux,Xapian,spreadps:窃以为第一

2010-04-21 11:28:00 3126

原创 进程间传递描述符三

进程间传递描述符三--Windows上发送接收套接字(Socket)Windows平台上内核对象都是HANDLE,如果要在进程间传递内核对象,Windows提供了DuplicateHandle函数。复制的HANDLE和原HANDLE实际上指向的是内核中的同一个对象。对于Socket而言,则需要使用WSADuplicateSocket来传递Socket,这个操作不像Duplica

2010-04-20 10:09:00 6114

原创 进程间传递描述符二

Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

2010-04-15 19:48:00 8468 1

原创 进程间传递描述符一

Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 <!-- /* St

2010-04-14 17:54:00 18047 8

转载 Eventually Consistent(最终一致性)

应该说搞分布式系统必读的文章了,转过来,这是2008年12月Werner revise过的版本,先贴上内容简介:分布式系统的CAP理论CAP理论(data consistency, system availability, and tolerance),也就是数据一致性,系统可用性和网络分区容错性,在一个分布式系统中CAP是不能同时保证的,最多只能同时满足两个。如果一个系统不必

2010-03-31 18:07:00 9774 3

原创 TProactor浅析二

TProactor源码浅析二     为了模拟Proactor,必须要提供异步操作和异步操作结果的表示方法,TProactor对这点的处理相当复杂化,而且对异步操作进行了细分,复杂化了,下面来简要描述一下。异步操作的表示首先是异步操作的表示,这就是TRB_Asynch_Operation基类,TProactor为不同的异步操作类型定义了不同的类,分为:TRB_Asynch_Read

2010-03-31 09:15:00 3502

原创 TProactor源码浅析一

TProactor源码浅析一 开篇      分析TProactor并不是一时心血来潮,而是为了研究它把Reactor分装为Proactor的实现逻辑,在对异步支持不好的平台上实现Proactor封装,便利代码的平台迁移,还是有相当的实用性和意义的。     TProactor是一个开源项目,意在为各种平台Linux/Unix,Windows等提供一个具有统一接口的Proact

2010-03-17 21:22:00 5563 1

转载 人人网UGC海量存储系统Nuclear介绍

转kuqin网上一篇介绍人人网实现海量存储的文章,人人网构建了自己的存储系统Nuclear,先简单列列感想。 又一个使用java构建的分布式的key-value存储系统,在设计思想上严重受到GFS的影响。在存在中心管理节点的情况下,怀疑其提到的“无限扩展性”,夸张了;不过通过一致性hash算法来确定key对应的value会落到哪个存储节点上,使得中心节点对存储节点的信息知晓最少

2010-03-10 14:36:00 3720 2

原创 C/C++语言实现动态数组

C/C++语言实现动态数组C数组的小问题     这里说的动态数组是可以根据需要动态增长占用内存的数组,比如程序初始分配了100个元素,可是运行了一段时间后区区100个空间不能满足了,现在需要400个,怎么办呢;那肯定需要再额外分配300个。     C语言有realloc()函数来解决空间扩充的问题,但是不要忘了realloc可能会迁移内存,很多时候数组中的元素会被其它函数/模块

2010-03-09 12:29:00 15370 22

原创 开源网络框架HPServer0.2.10版发布

HPServer是一个为并发高性能网络服务应用而开发的,轻量级的开源网络框架,以C++作为开发语言。HPServer的一些特性:    采用事件驱动的机制,并且统一支持I/O事件、定时器事件和Signal事件;    支持精度为ms的定时器;    内建支持Acceptor,Connector组件,方便程序设计;    支持多线程(但不是线程安全的);    跨平台,目前H

2010-03-05 18:12:00 7772 15

转载 Inside CRT: Debug Heap Management

转一篇好文,关于VC CRT Debug状态下的Heap管理;你将理解内存地址值为0xCC,0xCD,0xDD,0xFD到底代表着什么,e文的。Inside CRT: Debug Heap ManagementWhen you compile a debug build of your program with Visual Studio and

2010-02-26 20:41:00 2535

转载 DLL导出类的问题

转载一篇讨论有关DLL的导出类的文章转载地址:http://hi.baidu.com/zhuangzi200323/blog/item/7c8982318b359fae5fdf0e6d.htmlDLL导出类的问题DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向

2010-02-26 13:08:00 3359 1

原创 libevent源码深度剖析十三——libevent信号处理注意点

libevent源码深度剖析十三——libevent信号处理注意点前面讲到了libevent实现多线程的方法,然而在多线程的环境中注册信号事件,还是有一些情况需要小心处理,那就是不能在多个libevent实例上注册信号事件。依然冠名追加到libevent系列。 以2个线程为例,做简单的场

2010-02-11 20:00:00 18944 14

原创 KMP算法真的很简单1

spark 11.9999 Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4

2010-02-03 12:49:00 10761 14

转载 Hadoop分布式文件系统:架构和设计要点

转一篇关于Hadoop系统架构设计的文章,作者翻译的不错,其英文原文是理解Hadoop的经典文章。原文出处:http://www.blogjava.net/killme2008/archive/2008/06/05/206043.htmlHadoop分布式文件系统:架构和设计要点 原文:http://hadoop.apache.org/core/docs/current

2010-02-02 09:31:00 5756

原创 一致性hash算法 - consistent hashing

一致性hash算法(consistenthashing)张亮consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称c

2010-02-02 09:19:00 197386 137

转载 Map Reduce – the Free Lunch is not over?

现在已经进入了一个张口就是“今天你云了没?”的时代,应该好好研究研究大规模数据存储和处理了,像google的map reduce技术,开源的hadoop;map reduce的思想来自于函数式编程语言,看来要想进步提高,还得眼界开阔啊!转载一篇孟岩关于map reduce的文章。Map Reduce – the Free Lunch is not over?微软著名的C++大师

2010-01-30 13:04:00 3485 1

原创 对ZZL字符串匹配算法的改 ——ZZL最短匹配定理

对ZZL字符串匹配算法的改进——ZZL最短匹配定理张亮       ZZL算法是一种可做特殊用途的字符串匹配算法,本文将改进ZZL算法,在ZZL算法的基础上,提出了ZZL最短匹配定理,根据模式串的自身特征以进一步减少不必要的匹配次数。字符串匹配     字符串匹配的含义就是:在主串S中,从位置start开始查找是否存在模式串(也称作模式串)T,如在主串S中查找到一个与模式串T相

2010-01-28 13:20:00 6835 2

原创 CRC32算法-从bit到table-driven

   本文的目的就是为了展示CRC是如何从最原始的算法开始,逐步演变成基于校验表的CRC算法的全过程,你将会看到从基于bit的基本CRC算法如何逐步推演==〉扩张到使用CRC校验表的逐Byte计算==〉扩张到如何去掉追加的r个0==〉考虑实际中的位反转;直到最终的CRC32算法;   鉴于CSDN图片上传问题,发个PDF放在资源中,http://sparkliang.dow

2010-01-24 22:52:00 3804 1

原创 libevent源码深度剖析PDF

 最近把libevent源码深度剖析系列文章整合成了一个完整的PDF,方便朋友们阅读,也算是对libevent源码的分析做一个总结。可以到我的资源下载:http://sparkliang.download.csdn.net/ 

2010-01-17 12:02:00 40999 23

原创 图片上传功能关闭?

想发篇文章,暮然发现不能上传图片了,是以作罢,不知什么时候能开啊... 近来惊闻google要退出中国了,为我等默哀啊; 新名词:“非法鲜花”昨天还有同学讲起,google中国大门前有人鲜花了;保安说这些人属于是“非法鲜花”!  

2010-01-14 09:26:00 2680

CRC32算法-从bit到table-driven

你会看到如何从基于bit的基本CRC算法如何逐步推演==〉扩张到使用CRC校验表的逐Byte计算==〉扩张到如何去掉追加的r个0==〉考虑实际中的位反转;直到最终的CRC32算法

2010-01-24

libevent源码深度剖析pdf

为方便阅读,把blog上的libevent源码深度剖析系列文章整合成一个pdf。

2010-01-16

Linux Slab分配器分析文档

Linux下Slab分配器比较详细的分析文档,Slab分配器的思想对程序设计时的内存分配是很有帮组的,3年前写的了,分享给大家,也欢迎指正错误。

2009-12-22

GUI版Tail源码-支持Filter功能

Windows下的图形化Tail工具源代码,方便查看动态增长文件的易用工具; WIN32 API编写; 支持使用简单正则表达式的Filter功能; 支持快速键盘操作;

2009-11-13

J2ME游戏程序三国战纪.rar

别人的J2ME的游戏程序,学习J2ME的好材料,需要者可以下载。

2009-03-22

TreeCtrl Not MFC

一达人写的一个纯WIN32实现的TreeCtrol控件,值得一看哦;传上来共享下。

2009-02-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除