本文件为exe格式的.点击下载:http://blog.haohtml.com/wp-content/uploads/2011/10/raid.exe
Monthly Archives: November 2011
magent编译及常见错误解决办法
# 编译magent
cd /home/lnmp/src
mkdir magent
cd magent/
wget http://memagent.googlecode.com/files/magent-0.5.tar.gz
tar zxvf magent-0.5.tar.gz
/sbin/ldconfig && sed -i “s#LIBS = -levent#LIBS = -levent -lm#g” Makefile
make
mkdir -p /usr/local/webserver/magent/bin
cp magent /usr/local/webserver/magent/bin/magent
cd ../
错误1:
gcc -lrt -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c
magent.c: In function ‘writev_list’:
magent.c:729: error: ‘SSIZE_MAX’ undeclared (first use in this function)
magent.c:729: error: (Each undeclared identifier is reported only once
magent.c:729: error: for each function it appears in.)
make: *** [magent.o] Error 1
解决办法:
vim ketama.h
在文件头号部加入
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
然后再make即可.
相关教程:
memcached 集群单点故障解决方案:http://blog.haohtml.com/archives/12145
Memcached代理软件 magent
magent是一款开源的Memcached代理服务器软件。
命令参数:
-h this message -u uid -g gid -p port, default is 11211. (0 to disable tcp support) -s ip:port, set memcached server ip and port -b ip:port, set backup memcached server ip and port -l ip, local bind ip address, default is 0.0.0.0 -n number, set max connections, default is 4096 -D don't go to background -k use ketama key allocation algorithm -f file, unix socket path to listen on. default is off -i number, max keep alive connections for one memcached server, default is 20 -v verbose
使用方法:
magent -s 10.1.2.1 -s 10.1.2.2:11211 -b 10.1.2.3:14000
另外有一个java版的memcache session manager的管理软件.主要用在tomcat的.https://code.google.com/p/memcached-session-manager/
memcached 集群单点故障解决方案
magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/
一、安装步骤:
1、编译安装libevent:
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz tar zxvf libevent-1.4.9-stable.tar.gz cd libevent-1.4.9-stable/ ./configure --prefix=/usr make && make install cd ../
2、编译安装Memcached:
wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz tar zxvf memcached-1.2.6.tar.gz cd memcached-1.2.6/ ./configure --with-libevent=/usr make && make install cd ../
3、编译安装magent: Continue reading
由浅入深理解索引的实现
00 – 背景知识
– B-Tree & B+Tree
http://en.wikipedia.org/wiki/B%2B_tree
http://en.wikipedia.org/wiki/B-tree
– 折半查找(Binary Search)
http://en.wikipedia.org/wiki/Binary_search_algorithm
– 数据库的性能问题
A. 磁盘IO性能非常低,严重的影响数据库系统的性能。
B. 磁盘顺序读写比随机读写的性能高很多。
– 数据的基本存储结构
A. 磁盘空间被划分为许多大小相同的块(Block)或者页(Page).
B. 一个表的这些数据块以链表的方式串联在一起。
C. 数据是以行(Row)为单位一行一行的存放在磁盘上的块中,如图所示.
D. 在访问数据时,一次从磁盘中读出或者写入至少一个完整的Block。 Continue reading
varnish英文手册生词
当客户端请求相同的页面时.varnish只发送一个请求到后端(backend)机器,等后面返回数据信息的时候再copy多份
serve – 服务
plethora – 过多
encounter – 遇到
hopefully – 希望
Guru – 领袖
meditation – 冥想
relevant – 有关
probably – 可能
clue – 线索
ransaction – 交易 Continue reading
浅谈伪分布式数据库架构
浅谈伪分布式数据库架构
如何构建千万用户级别后台数据库架构设计的思路
【导读】
关于如何构建千万级别用户的后台数据库架构话题,在ITPUB及CSDN论坛都有不少网友提问,新型问答网站知乎上也有人提问,并且顺带梳理了下思路,方便更多的技术朋友有章可循,整理一篇抛砖引玉性的文章。
一、技术朋友给出的背景资料:
(1). 网站型应用,主要指:SNS社交网站、新闻门户型网站、邮件系统、SNS Game社交游戏、电子商务网站、即时通信IM等类型系统;
(2). 注册用户为千万级别,也即1KW注册用户以内; Continue reading
图解”How MySQL Replication Works”
在使用MySQL的应用中,如果你的MySQL Server压力逐渐增大,在应用层优化已经到了一定瓶颈时,那么你应该首先考虑MySQL_Replication。本文将利用图示的方式简单的描述出MySQL Replication是如何工作的。
如何同步
- 主库将所有的更新操作,写入二进制日志。
- 从库运行”IO线程”(Slave IO Thread)读取主库的二进制日志。
- 从库运行”SQL线程”(Slave SQL Thread)执行IO线程(Slave IO Thread)读取的日志中的SQL,从而保持和主库的一致。
如何分配请求
- 目前,这部分需要在应用层实现。
- 执行更新SQL(UPDATE,INSERT,DELETE)时,请求主库。
- 执行查询SQL(SELECT)时,请求从库。
所以,当你的应用(Application)SELECT请求所占的比率越大,那么Relication就会越有效。
相关教程:
MySQL传输二进制日志原理:http://blog.haohtml.com/archives/12094
MySQL传输二进制日志原理
摘自:http://www.orczhou.com/index.php/2011/11/how-mysql-send-the-binary-log/
MySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案。MySQL通过向备库传送二进制日志来实现Replication,本文将通过二进制日志相关源代码的主要接口来解释:“MySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?”。
在MySQL Replication结构中,备库端初次通过CHANGE MASTER TO完成Replication配置,再使用start slave命令开始复制。更细致的,备库通过IO Thread向主库发起读取binlog的请求(COM_BINLOG_DUMP命令),主库收到COM_BINLOG_DUMP请求后,使用单独线程(dump thread)不断向备库IO Thread发送Binlog。示意图: Continue reading