nginx loadbalance round robin select logic bug

我们用那个nginx做reverse proxy,一直有一个upstream round robin select logic的bug, 以前在maillist提过http://forum.nginx.org/read.php?2,220415,220440#msg-220440 大神说已经有人提过了,trac在这:http://trac.nginx.org/nginx/ticket/64

总的来说就是,问题发生的场景是n-1台server不可用(n>=3),理论上应该只是影响请求的延迟,而不应该直接返回502或503的(因为有一台backend server是处于正常状态的).

我测试的版本:  1.0.XXX, 1.1.XXX, 1.2.XXX

os platform :  centos 5.X, UBUNTU 11.10 or 12.04

MySQL数据库mysql5.5.19版本BUG重现信息与规避技巧(十二)

前一段时间向大家分享了MySQL5.5.19的部分bug,现在继续发布MySQL数据库相关BUG信息。

前文链接:

MySQL数据库mysql5.5.19版本BUG重现信息与规避技巧(一)

MySQL数据库mysql5.5.19版本BUG重现信息与规避技巧(十一)

 

 

Bug #10573

触发条件:使用带有BOM(Byte Order Mark,0xEFBBBF等,共有数种)的UTF8文件。

影响:造成难以察觉的问题。主要问题还是因为过于难以察觉,容易导致长时间无法解决问题。

测试:

MySQL数据库InnoDB存储引擎 Buffer Pool页面分配详解

 MySQL数据库InnoDB存储引擎  Buffer Pool页面分配(innodb_buffer_pool_size)

当用户需要读取一个在外存中的页面,或者是分配一个新的页面进行插入,就需要调用buf0flu.cc::buf_LRU_get_free_block函数进行页面的分配。一个完整的MySQL数据库InnoDB存储引擎页面分配流程需要包含以下几个步骤:

1.尝试从Buffer Pool的free list中分配新页面,大部分情况下,Buffer Pool的free list都是包含空闲页面的,因此直接分配即可。分配出的页面,需要从free list中删除。

2.若Buffer Pool的free list中不存在空闲页面,同时当前系统正在进行BUF_FLUSH_LRU类型的flush (buf_pool->init_flush[BUF_FLUSH_LRU] == TRUE),则等待flush完成,然后跳转到1重新分配。

MySQL数据库InnoDB存储引擎 innodb_buffer_pool_size的Buffer Pool页面管理

Buffer Pool页面管理

Page to Buffer Pool

在MySQL 5.5及最新的版本中,InnoDB存储引擎支持多Buffer Pool Instance,内存多个buffer pool管理,此时指定一个page,到底是由内存中哪一个buffer pool来管理呢?这个实现很简单,看下面的函数分析:

// 给定一个page的Tablespace id与page no,找到对应的管理buffer pool

buf0buf.ic::buf_pool_get(space_id, page_no)

// 将page_no右移6位,去除低6位。因为目前InnoDB的一个read ahead是64个page

// 因此右移6位能够保证一个read ahead area中的页,都属于同一个buffer pool管理

MySQL数据库InnoDB存储引擎 innodb_buffer_pool_size初始化详解

Buffer Pool导读

InnoDB Buffer Pool,可以说是InnoDB系统内部最重要的模块之一。通过系统参数innodb_buffer_pool_size,用户可以设置几G,几十G,乃至上百G的内存空间。那么,InnoDB存储引擎系统是如何管理这么大一片内存空间的呢?

 

l  Buffer Pool空间如何初始化?

l  Buffer Pool是通过什么数据结构管理的?

MySQL数据库的IO操作

导读:
         淘宝丁奇分享的PPT:MySQL数据库的IO操作,详细分享了四块的内容,并且告诉大家如何调整MySQL数据库IO操作相关的参数,给出了详细的选择策略,现替其整理成文章分享与此。
PPT内容提纲:
1.MySQL的文件及简介
2.数据访问流程
3.文件访问模式
4.影响io行为的一些参数和选择策略

1.MySQL的文件及简介

xen虚拟机的迁移类型

【导读】对于安装使用xen虚拟机大家已是很熟悉的操作了,但有些对于xen migrate的操作有的还不太熟悉。此xen高可用技术可保证guest的不间断服务。
下面介绍几种常用的xen Guest域迁移操作,其中主要介绍动态迁移,如文中有不当之处,欢迎拍砖。
一.冷静态迁移,使用此方法需关闭GUEST域。
xm save domain/id CheckpointFile 保存虚拟机状态检查点,检查点中保存着guest配置当前状态信息。
然后拷贝guest域配置文件、镜像、和检查点文件到目标xen server机器。
xm create –config  xx.xml  启动guest域。
恢复检查点 xm restore  CheckpointFile
 
二.Warm Static (Regular) Migration 温静态迁移或定期迁移
这种迁移只是原宿主机上临时的暂停(suspend)guest域无需关机或重启,然后将其内存和进程在目标宿主机上执行恢复(resume)操作。
如题:

MySQL数据库闪回方案讨论及实现

Oracle有一个闪回(flashback)功能,能够用户恢复误操作的数据。本文讨论MySQL数据库中支持闪回的方案。

1、 闪回的目标

即使为了数据安全,我们搭建了主从。但实时主从备份只能防止硬件问题,比如主库的硬盘损坏。但对于误操作,则无能为力。比如在主库误删一张表,或者一个update语句没有指定where条件,导致全表被更新。当操作被同步到从库上后,则主从都“回天无力”。

线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。

闪回的目的是要让数据库在commit之后,还能恢复到之前的某个状态,整库或指定的表。

Iphone手机引发的阴谋论第八季(注释:纯属娱乐)

 

我:“就是那个炒菜的新东方?”

Vincent:“是的,你想!中国人以什么闻名世界?”

我:“地沟油?”

Vincent:“正面的。就应该是美食了吧,一般中国移民,混的好的,都是在美国开餐厅,混的一般的在餐厅当大厨,再差一点的,就是刷盘子,无论如何,中国人在一般美国民众眼里不是贪官就是厨子,怎么都离不开烹饪。”

我:“这倒也是,却是,中国人在国外开餐厅的比较多,是一个切入点。”

Iphone手机引发的阴谋论第七季(注释:纯属娱乐)

第七季 中国的实力

20分钟后,准时开始

上午和Vincent聊完百度和其他一些IT企业后,我和Vincent相处的时间只有最后一个下午了,所以,我不能再和他聊些不痛不痒,无关紧要的 东西了,我现在也不是很关心iphone究竟还有什么强大的功能,但是,我一定要了解,到底company什么时候会对我们下手呢。

下午,我和Vincent依然坐在后一排。