2013年11月16日中华架构师大会演讲嘉宾和演讲主题等信息

自2009年于上海举办技术会议以来,一直坚持公益性且技术干货为主的特点,在2009年至2011年底之间的三年期间一直是IT168坚持真诚奉献,后因公司被收购等因素不得不放弃华东地区的免费技术活动,自接手技术会议以来,得到很多朋友和企业的支持,使我们华东地区的技术会议得以继续举办,并且一届比一届更好。 鉴于会议经费和组织者的时间关系,中华数据库技术大会和中华运维大会每2年举办一届。2013年11月16日,我们将在上海举办2013中华架构师大会,精彩内容请勿错过。

Continue reading

MySQL数据库InnoDB存储引擎在线加字段实现原理详解

腾讯互娱内部维护了一个MySQL分支,基于官方5.5.24,实现了类似于Oracle 11g的快速加字段功能,这个分支我们内部称为TMySQL。该功能通过扩展存储格式来实现,原理类似于Oracle 11g,以下介绍下其实现原理。
1. GCS行格式

需要在innodb中实现类似oracle的快速加字段功能,仅仅基于原来的行格式是不行的,必须对其进行扩展。为了保证原MySQL和innodb的兼容性,不改变原存储格式的行为,在线加字段功能是通过新增一种innodb行格式GCS(Game Cloud Storage)来实现,从而避免对其他格式造成影响。

mysqlops-innodb-one

MySQL数据库的例外处理测试

针对存储过程 、触发器或函数内部语句可能发生的错误或警告信息,需要进行相关异常或称 例外的捕捉,然后作出相应的处理,简单地做了相关的测试,详细信息如下:

 

USE TEST;

CREATE TABLE `eugene` (
`ID` int(11) NOT NULL,
PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

delimiter $$
DROP PROCEDURE IF EXISTS `test`.`handlerdemo`$$
CREATE PROCEDURE handlerdemo ()
BEGIN
DECLARE X2 INT;
DECLARE CONTINUE HANDLER FOR SQLWARNING       SET X2= 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND             SET X2 = 2;
DECLARE CONTINUE HANDLER FOR SQLSTATE ’23000′    SET X2= 3;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION     SET X2 = 4;

动员令:诚邀MySQL数据库爱好者为翻译MySQL手册而战

动员令:为翻译MySQL手册而战

*:first-child {
margin-top: 0 !important;
}

body>*:last-child {
margin-bottom: 0 !important;
}

/* BLOCKS
=============================================================================*/

p, blockquote, ul, ol, dl, table, pre {
margin: 15px 0;
}

/* HEADERS
=============================================================================*/

h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
}

h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code {
font-size: inherit;
}

h1 {
font-size: 28px;
color: #000;
}

h2 {
font-size: 24px;
border-bottom: 1px solid #ccc;
color: #000;
}

h3 {
font-size: 18px;
}

h4 {
font-size: 16px;
}

h5 {
font-size: 14px;
}

h6 {
color: #777;
font-size: 14px;
}

body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child {
margin-top: 0;
padding-top: 0;
}

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0;
}

h1+p, h2+p, h3+p, h4+p, h5+p, h6+p {
margin-top: 10px;
}

/* LINKS
=============================================================================*/

a {
color: #4183C4;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

/* LISTS
=============================================================================*/

ul, ol {
padding-left: 30px;
}

ul li > :first-child,
ol li > :first-child,
ul li ul:first-of-type,
ol li ol:first-of-type,
ul li ol:first-of-type,
ol li ul:first-of-type {
margin-top: 0px;
}

ul ul, ul ol, ol ol, ol ul {
margin-bottom: 0;
}

dl {
padding: 0;
}

dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px;
}

dl dt:first-child {
padding: 0;
}

dl dt>:first-child {
margin-top: 0px;
}

dl dt>:last-child {
margin-bottom: 0px;
}

dl dd {
margin: 0 0 15px;
padding: 0 15px;
}

dl dd>:first-child {
margin-top: 0px;
}

dl dd>:last-child {
margin-bottom: 0px;
}

/* CODE
=============================================================================*/

pre, code, tt {
font-size: 12px;
font-family: Consolas, “Liberation Mono”, Courier, monospace;
}

code, tt {
margin: 0 0px;
padding: 0px 0px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px;
}

pre>code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent;
}

pre {
background-color: #f8f8f8;
border: 1px solid #ccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px;
}

pre code, pre tt {
background-color: transparent;
border: none;
}

/* QUOTES
=============================================================================*/

blockquote {
border-left: 4px solid #DDD;
padding: 0 15px;
color: #777;
}

blockquote>:first-child {
margin-top: 0px;
}

blockquote>:last-child {
margin-bottom: 0px;
}

/* HORIZONTAL RULES
=============================================================================*/

hr {
clear: both;
margin: 15px 0;
height: 0px;
overflow: hidden;
border: none;
background: transparent;
border-bottom: 4px solid #ddd;
padding: 0;
}

/* TABLES
=============================================================================*/

table th {
font-weight: bold;
}

table th, table td {
border: 1px solid #ccc;
padding: 6px 13px;
}

table tr {
border-top: 1px solid #ccc;
background-color: #fff;
}

table tr:nth-child(2n) {
background-color: #f8f8f8;
}

/* IMAGES
=============================================================================*/

img {
max-width: 100%
}
–> 

动员令:为翻译MySQL手册而战

动员令

您有没有因小小的MySQL支撑互联网80%以上的业务而惊奇?您有没有觉得MySQL是多么神秘而美丽?您有没有为开源贡献一份力量的热心?您有没有意识到翻译一份中文版本的MySQL文档的重要性?帮助更多的人学习和提高,从手册开始。

 

请加入我们!将 MySQL5.6 的手册 翻译成我们的母语中文,让全世界五分之一的人口不再因为MySQL文档是英文的而蛋疼!(考虑到性别因素,可能是十分之一,:))让全世界五分之一的人口可以使用自己的母语阅读MySQL手册!

 

       我们的目标是翻译 MySQL 5.6 的手册。我们的核心是以译促学,提高自身MySQL技能。既可以为开源社区做贡献,又可以提高自身技术水平。一举多得,何乐而不为?

 

初步计划

 

道之所存,虽千万人吾往矣!我们计划翻译全部的 MySQL 5.6 的手册。鉴于MySQL手册内容较多,初步计划定为“五步走战略”。具体介绍如下:

 

  1. 翻译 MySQL 5.6版中新增的内容,提交审核;
  2. 第一步完成后,参考 MySQL 5.1 的中文版,把剩余的文档也全部翻译整理出来,提交审核;
  3. 全部的审核完成后,开源出来,接受所有热心人士的审核和修订;
  4. 开源的同时,发布出来一个完整版,方便查阅;
  5. 根据文档库的修订情况,不定时发布修改后的版本。

RAID卡MTRR的RAID模式write-combining

现代CPU采用了大量的技术来抵消内存访问带来的延迟。读写内存数据期间,CPU能执行成百上千条指令。

多级SRAM缓存是减小这种延迟带来的影响的主要手段。此外,SMP系统采用消息传递协议来实现缓存之间的一致性。遗憾的是,现代的CPU实在是太快了,即使是使用了缓存,有时也无法跟上CPU的速度。因此,为了进一步减小延迟的影响,一些鲜为人知的缓冲区派上了用场。

本文将探讨“合并写存储缓冲区(write combining store buffers)”,以及如何写出有效利用它们的代码。

CPU缓存是一种高效的非链式结构的hash map,每个桶(bucket)通常是64个字节。这就是一个“缓存行(cache line)”。缓存行是内存交换的实际单位。例如,主存中地址A会映射到一个给定的缓存行C。

MySQL数据库慢日志分析工具mysqlsla

mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等。
一、使用
mysqlsla -lt slow mysql-slow.log
或者
mysqlsla -lt slow mysql-slow.log -sf “+SELECT” -db dbName -top 10 -sort t_sum

参数意义
lt:表示日志类型,有slow, general, binary, msl, udl。
sf:[+-][TYPE],[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如”+SELECT,INSERT”,不出现的默认是-,即不包括。

10亿美金教训之51.COM:明星创业团队的分崩离析

51com

51的创始人庞升东很多时候被自然和不自然被拿来与史玉柱相提并论,这不仅仅是因为史玉柱本身也是庞升东的投资人,更重要的是,庞升东和史玉柱都通 晓人性,都如出一辙的利用人性所特有的偷窥和贪婪等诸多欲望来壮大自己,前者抓住泡与被泡,成就网上交友第一社区,后者让人民币玩家大行其道,有钱出钱, 有力出力。都属于不和谐但不违规挣着争议钱的人。

互联网DBA需要做那些事

很早前就想写篇文章介绍一下互联网DBA需要干的一些事情,但苦于没有时间,忙于平台建设,最近,各个模块都初具规模,故有时间静下心来,介绍一下。

众所周知,互联网DBA与传统行业DBA有很大的不同,那就是管理的机器多,新技术更新快,面对的开发多、网络环境复杂、要求7*24待机;这样就 导致互联网DBA的工作在传统DBA工作之上,增加了更多的复杂性,我们必须考虑如何大批量部署,如何集中化监控、如何解决单点故障而保障7*24,而为 了做到这些,不是靠堆人力,我们必须有一个完整的平台作为支撑,那么数据库平台到底要建成什么样子呢?

1、强有力的监控系统(监+控):

监控是我们的眼睛,我们不可能7*24个小时盯着我们的DB,所以,我们需要监控系统来帮我们盯着,一旦异常,监控不仅仅通知我们,而必须要有控 制,例如:MySQL 从库宕机了我们通过监控自动让其下线;从库同步状态失效了,可以自动修复同步等;并且,随着机器的增加、实例daemon的增加,我们会发现我们的手机报 警会急剧增加,为了我们自己晚上能睡一个安稳觉,我们怎么去降低我们的报警,例如:哪些该短信,哪些该邮件;所有机器的磁盘空间报警是否可以整合后在报 呢?这就是我们监控系统必须考虑的,

MySQL数据库实时同步数据到Hadoop分布式文件系统的工具Applier

通过Map/Reduce进行批处理递送到Apache Hadoop仍然是中枢环节。,但随着要从“超思维速度“分析方面获取竞争优势的压力递增,因此Hadoop(分布式文件系统)自身经历重大的发展。科技的发展允许实时查询,如Apache Drill, Cloudera ImpalaStinger Initiative正脱颖而出,新一代的资源管理Apache YARN 支持这些。

为了支持这种日渐强调实时性操作,我们正发布一个新MySQL Applier for Hadoop(用于Hadoop的MySQL Applier)组件。它能够把MySQL中变化的事务复制到Hadoop / Hive / HDFS。Applier 组件补充现有基于批处理Apache Sqoop的连接性。

这个组件(MySQL Applier for Hadoop)的复制是通过连接MySQL主服务,一旦二进制日志被提交,就读取二进制日志事务,并且把它们写到HDFS.

mysql-applier-hdfs-hadoop-one

联想集团上海公司大客户部年薪20万招聘企业级产品售前技术专家

职位名称:联想集团大客户部企业级产品售前技术专家

工作地点:上海

负责区域:上海区域互联网和运营商行业客户

入职时间要求:5月1日前

薪资待遇:12-20万/年

职位类型:直接发送给部门负责人

 

知识要求:

1、大学本科及以上学历;

2、精通PC服务器相关软硬件技术;