twitter mysql_twitter-mysql改进点

目前最新的twitter-mysql版本基于mysql5.5.22,以下总结了一些比较明显的改进点,大部分已经亲自证实,其他一些诸如修复的比较次要的问题(例如编译问题)这里暂不列出,可以详细参阅https://github.com/twitter/mysql/wiki/Change-History

修复的bug

1.bug#60682

某些场景下,同时执行select/drop table/rename table/show innodb status时,可能会导致死锁

使用buglist上提供的testcase在5.1.48上能重现,5518尚未重现。

2.bug#61575

当无法初始化本地native aio时(io_setup()失败)会crash innodb

3.bug#64556

中断在innodb层的查询可能会导致不相关的warning

4.Bug#65030:

5.Bug#65061

6. Potential security issue with Oracle MySQL

If, for whatever reason, the memcmp() call in check_scramble() returns a value with the 8 rightmost bits set to zero (e.g. 256), an invalid password could be accepted during authentication.

新特性

1.增加选项innodb_flush_dirty_pages_age,该参数的目的是为了减少频繁的去刷新磁盘,尤其是对于命短的Ssd盘比较有用。

在磁盘比较空闲的时候,它会限制每次只刷前innodb_flush_dirty_pages_age秒的脏页。

2.可以动态配置--replicate-*参数

用户可以在线动态修改过滤规则而无需重启服务器

3.增加新的选项max_statement_time参数

该参数为session级别,其目的是在服务器端限制一条语句的执行时间,单位为ms,当查询超过该值时,会被中断。

例如:

SELECT MAX_STATEMENT_TIME=10 * FROM t1;

超过10ms则中断查询

还可以给每个账户限制时间

GRANT ... TO 'user'@'host' WITH MAX_STATEMENT_TIME 10

4.集成新的information_schema表,如下:

INNODB_BUFFER_PAGE

INNODB_BUFFER_PAGE_LRU

INNODB_BUFFER_POOL_STATS

这些表显示了比较详细的buffer pool信息,关于这些i_s表可以参阅MySQL5.6的文档

5.prefetch_pages命令,允许你手动的将相应的数据或者索引页加载到buffer pool中,例如

root@test 09:44:18>select engine_control(innodb, prefetch_pages, 2,1) as pages;

+-------+

| pages |

+-------+

|     1 |

+-------+

1 row in set (0.00 sec)

通过engine_control函数来实现,其中:

第一个参数表示引擎的类别

第二个参数表示存储引擎命令,目前为prefetch_pages

第三个参数表示space id

第四个参数(后面可选的增加更多pageno)表示页号

6.super-only选项,将禁止非超级用户执行任何语句(read_only只能阻止更新语句)

7.新的协议类型protocol_mode

xxx@test 09:54:45>show variables like '%protocol_mode%';

+---------------+---------------------------------------------+

| Variable_name | Value                                       |

+---------------+---------------------------------------------+

| protocol_mode | MINIMAL_OBJECT_NAMES_IN_RESULT_SET_METADATA |

+---------------+---------------------------------------------+

这个选项只有一个值,默认为NULL,该选项可以简化传递给客户端的元数据,当设置该选项后,传递给客户端的库名,表名和列名都是空字符串(尚未证实)原文的changelog解释如下:

This change introduces a new protocol mode that instructs MySQL to empty certain object names that are part of the result set metadata. Only the absolutely minimal (or essential) set of names is preserved. If the minimal option is set, the database, table (both original and aliased) and column names in the result set metadata will be empty strings. Only the column alias name is preserved.

8.增加了一些新的status变量

Innodb_files_open

Innodb_files_opened

Innodb_files_closed

Innodb_tablespace_files_open

Innodb_tablespace_files_opened

Innodb_tablespace_files_closed

9.为mysqld_safe增加了新的选项:

Format

Option File

Description

--flush-caches

flush-caches

Flush and purge buffers/caches (vm.drop_caches=3)

--numa-interleave

numa-interleave

Run mysqld with its memory interleaved on all CPUs

这部分大意是在启动Mysqld前sync and drop cache??

Added mysqld_safe options to flush (sync and drop) caches before starting mysqld and to set the NUMA memory allocation policy to interleave

有DBA同学能够去分析下么,看看能否将这些特性移植过来?

10.buffer pool内存预分配

增加选项

xxx@test 10:23:11>show variables like '%innodb_buffer_pool_populate%';

+-----------------------------+-------+

| Variable_name               | Value |

+-----------------------------+-------+

| innodb_buffer_pool_populate | OFF   |

+-----------------------------+-------+

为buffer pool预先分配好需要的物理内存

11.表.ibd文件预分配

增加了新的表选项min_pages,可以在create/alter table时,指定page的大小,从而达到预分配.ibd文件的目的,对于插入很猛的应用,可以表空间扩展引起的避免抖动

例如:

root@test 10:38:44>Create table t1 (a int ,b int ) min_pages = 100;

Query OK, 0 rows affected (0.12 sec)

$ls -lh t1.ibd

-rw-rw---- 1 root root 7.0M Apr 18 10:38 t1.ibd

24号发布的新的基于mysql5.5.22的版本,还没来得及看,先贴过来吧 :)

MYSQL-62: Replication info not available from crash recovery?

Restored code that stores the master binary log position of a slave in InnoDB's data file. Like in earlier MySQL versions, if a slave crashes, the name and position of the slave in relation to the master binary log file is printed after crash recovery.

Backport innodb_flush_neighbors from MySQL 5.6

Backported from MySQL 5.6 the innodb_flush_neighbors option that controls whether flushing a page from the InnoDB buffer pool also flushes other dirty pages in the same extent.

Add ability to disable anticipatory flushing

Introduced the innodb_anticipatory_flushing option that controls whether the master thread will flush dirty pages from the buffer pool if there is I/O bandwidth available for background tasks.

Add InnoDB flush-related status variables

Introduced status variables that provide counters for the various flushing-related tasks performed by InnoDB. For example, these counters provide information about the number of pages scanned and flushed from the flush and LRU lists. Also, there are counters for the number of pages flushed by the background thread.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爱因斯坦去世不到7个小时,大脑就被人偷走!还被切成240块,供变态医生把玩了几十年.........

全世界只有3.14 % 的人关注了爆炸吧知识你的智商说不定比爱因斯坦还高俗话说,人怕出名猪怕壮。作为世界闻名的大科学家,世人却更愿意把爱因斯坦的成就归功于“天赋异禀的脑子”,顺带着爱因斯坦其他的“身体零件”也都成了大家好奇的对象。爱因…

字符串池化,减少了三分之一的内存占用

字符串池化,减少重复实例,内存降低,一切就是这样的轻松愉快。开篇摘要 本文通过一个简单的业务场景,来描述如何通过字符串池化来减少内存中的重复字符串实例,从而减少内存的占用。在业务中,我们假设如下&am…

启动zookeeper_Giraph源码分析(一)—启动ZooKeeper服务

作者 | 白松Giraph介绍:Apache Giraph is an iterative graph processing system built for high scalability. For example, it is currently used at Facebook to analyze the social graph formed by users and their connections. Giraph originated as the ope…

【MFC】MFC中调用系统软键盘的几种方法

1.直接运行微软系统自带的虚拟键盘程序“osk.exe” 在普通MFC项目中可以调用ShellExecute或者WinExec方法来直接运行微软系统自带的虚拟键盘程序“osk.exe”,十分方便一句话就可以搞定。ShellExecute: ShellExecute(GetSafeHwnd(), NULL, _T("osk.e…

委派用户管理Hyper-v

在安装完成Hyper-v以后,默认情况下,只有管理员组的成员才有权限去管理Hyper-v,做一些诸如管理网络,管理虚拟机,管理磁盘等等的操作,普通用户没这个权限,从应用角度来说,如果公司所有…

pb 动态改变DW的WHERE子句

PB心得4-动态改变DW的WHERE子句 在DW的FILTER的使用一文中提到如果检索条件因素不固定的话,可以使用动态改变DW的WHERE子句的方法。 这个方法的实现是这样的,做一个没有参数的DW,在程序中,先通过DW.OBJECT.DATAWINDOW.TABLE.SEL…

这才是真正的蛙泳,还挺能蹦跶......

1 这才是真正的蛙泳▼2 给你们看看我平时藏起来的可爱▼3 沈腾这rap唱的跟闹着玩儿的似的▼4 能不能好好说话?▼5 建议再配套一张肛肠医院代金券▼6 这是我军培养出来的【特工鹅】吗?盯梢技能太强了▼7 钓鱼翻车现场▼你点的每个赞,我…

缓存机制 java_缓存机制:java中缓存的原理

外存:也就是我们经常说的(CDEF盘的大小)外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等,一般的软件都是安装在外存中内存:内存是计算机中重要的部…

docker-compose 一键部署分布式配置中心Apollo

简介说起分布式肯定要想到分布式配置中心、分布式日志、分布式链路追踪等在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等,都需…

python调用gpu进行运算_用python做GPU计算(1)——安装以及配置

实验小白鼠:联想Y470 显卡 GT550M 操作系统 ubuntu12.04 64位 python2.7ubuntu12.04 需要重新安装显卡驱动,不过可以直接安装cuda_5.0.35_linux_64_ubuntu11.10-1.run 程序包,会一并更新显卡驱动这是官方的下载地址https://developer.nvidia.…

Sharepoint Designer 2007 Workflow

参考 http://office.microsoft.com/en-us/sharepoint-designer-help/collect-data-from-a-user-in-a-workflow-HA010209808.aspx 注意 这里的Review Document是一个Task List, 应该在site里面创建一个task list,可以用默认的Tasks.转载于:https://www.cnblogs.com/F…

各种排序算法及其实现总结

排序算法总结 1.插入排序 一般来说,插入排序 都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序&…

uva705--slash maze

/*这道题我原本是将斜线迷宫扩大为原来的两倍,但是在这种情况下对于在斜的方向上的搜索会变的较容易出错,所以参考了别人的思路后将迷宫扩展为原来的3倍,这样就变成一般的迷宫问题了*/ 1 #include"iostream"2 #include"stdio.…

重磅公开!集14位名师教案的《最全高中数学解题思想方法汇编》

全世界只有3.14 % 的人关注了爆炸吧知识解数学题,除了掌握有关的数学知识之外,最好掌握一定的解题技巧甚至知道点解题思想。要知道高考试题的解答过程中蕴含着重要的数学思想方法,如果能有意识地在解题过程中加以运用,势必会取得很…

极域课堂管理系统软件如何取消控制_智慧物流自动化智能仓储管理架构分析

现阶段,智慧物流(ztmapinfo.com.)成为了时事热点,获得物流界广泛关注。许多 物流自动化系统、物流自动化设备都打出了智慧物流的幌子,在刚结束了的CeMAT亚洲物流展上,宣传展现智慧物流技术与商品的公司增加…

控制 Redis stream 的消息数量

控制 Redis stream 的消息数量IntroRedis Stream 是 Redis 5.0 引入的一个新的类型,之前我们介绍过使用 Redis Stream 来实现消息队列,可以参考之前的文章 使用 Redis Stream 实现消息队列,而 Stream 的消息会持久化地内存中,如果…

java oom-killer_与Linux OOM-killer的第一次亲密接触

From1、最近一段时间(更换了预发机器后)我负责的一个应用的预发环境(线上稳定得像个婴儿~)特别不稳定,最先是应用频频的过几天就发现提供的接口不工作了,但容器Jetty还在跑得欢,于是jstack/jmap看,发现没有一个线程在跑我的war包中…

CentOS+lighttpd+php+mysql (fastcgi)环境的搭建(转)

呵呵!觉得有必要把今晚的装lighttpd的经验和过程给记录下来! 第一次写这样的文章,有什么不足的地方请高手们指出并给与修正!下面开始! 第一步:系统的安装! 菜鸟的朋友们,可以先去lin…

vpx8运行待解决问题

一开始运行的时候是因为找不到HAVE_CONFIG_H他的定义,所以编译无法通过,找了好久还是没有找到,所以就先把它给注释掉了,结果运行的时候还是无法通过,运行的结果如下: 希望赶紧找到解决的办法 1>------ B…

led灯具供货合同

美高森美与索尼合作推出首款具3D功能的定时控制器与局部调光LED背光组合解决方案在刚刚结束的第十一届国际集成电路研讨会暨展览会(IIC-China 2011)上,美高森美公司(Microsemi)展示了与索尼合作推出的目前市场上首款具有3D功能的定时控制器与…