代码改变世界

阅读排行榜

memcached客户端(分布算法)

2013-07-20 17:03 by java20130722, 476 阅读, 收藏,
摘要: 一、背景资料 memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、根据hash(key)的结果,模连接数的余数决定存储到哪个节点,也就是hash(key)%sessions.size(),这个算法简单快速,表现良好。然而这个算法有个缺点,就是在memcached节点增加或者删除的时候,原有的缓存数据将大规模失效,命中率大受影响,如果节点数多,缓存数据多,重建缓存的代价太高,因此有了第二个算法。2、Consistent Hashing,一致性哈希算法,他的查找节点过程如下: 首先求出memcached服务器(节点)的哈希值 阅读全文

paxos 实现

2013-07-22 01:06 by java20130722, 474 阅读, 收藏,
摘要: 本文主要介绍zookeeper中zookeeper Server leader的选举,zookeeper在选举leader的时候采用了paxos算法(主要是fast paxos),这里主要介绍其中两种:LeaderElection 和FastLeaderElection.我们先要清楚以下几点一个Server是如何知道其它的Server在zookeeper中,一个zookeeper集群有多少个Server是固定,每个Server用于选举的IP和PORT都在配置文件中除了IP和PORT能标识一个Server外,还有没有别的方法每一个Server都有一个数字编号,而且是唯一的,我们根据配置文件中的配 阅读全文

C++ 定时器使用

2013-01-26 19:45 by java20130722, 473 阅读, 收藏,
摘要: 用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型UINT_PTR SetTimer( HWND hWnd, // 窗口句柄 UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器 UINT uElapse, // 时间间隔,单位为毫秒 TIMERPROC lpTimerFunc // 回调函数 ); 例如SetTimer(m_hWnd,1,1000,NULL); //一个1秒触发一次的定时器在MFC程序中SetTimer被封装在CWnd类中,调用就不用指定窗口句柄了,例如:UIN... 阅读全文

DataView使用

2012-03-07 09:38 by java20130722, 473 阅读, 收藏,
摘要: using System; using System.Data; using System.Data.SqlClient; //DataView的MSDN参考网站:http://msdn.microsoft.com/en-us/library/8sd1cd0a.aspx namespace Chapter13 { class DataViews { static void Main(string[] args) { // connection string string connString = ... 阅读全文

Connection listeners: accepting TCP connections 翻译

2013-03-15 22:35 by java20130722, 468 阅读, 收藏,
摘要: 连接监听器:接收TCP连接evconnlistener机制给我们提供一种监听和接收TCP连接的方法。在本节中所有的函数和类型都声明在头文件里。除非其他地方提到,否则这些在libevent-2.02-alpha首次给出。创建和释放 一个evconnlistener接口struct evconnlistener *evconnlistener_new(struct event_base *base, evconnlistener_cb cb, void *ptr, unsigned flags, int backlog, evutil_socket_t fd); struct ev... 阅读全文
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 115 下一页