2010年8月22日 谭俊青 没有评论

因为初学Python, 花费了几个礼拜的周末休息时间, DMB的雏形已经出来, 并提供下载使用(适合新手和偷懒的人高手跳过),有Bug和建议请及时发聩给我。

因为是初学,在编写DMB的时候,当中遇到一些问题,花费了不少时间来解决,这里总结下,也许能给后进者节约些宝贵的时间。

  • 涉及GUI多线程编程的时候,使用wx.CallAfter(), 如:wx.CallAfter(self.AfterRun);
  • 调用 subprocess.popen, 当子进程已经推出之后 stdin.close()调用会报错, 这时候可以用 try: process.stdin.close()  exception 来屏蔽错误;
  • gzip.GzipFile 对数据流压缩很方便,可以避免临时文件的产生,解压读取方便,效率也不错;
  • 获取硬件指纹 wmi 是个好东东;
  • 加密解密可以用 pyDES, M2Crypto;
  • 用py2exe生成.exe可执行文件的时候的icon可以用过 img2py 生成,然后在程序中设置,可以避免调用win32api,避免在 vista/win7下出错;
  • wx.wizard.Wizard的 finish按钮也可以通过 wizard.FindWindowById(wx.ID_FORWARD).Disable() 来屏蔽,这个浪费了我很长时间。

这次使用wxpython,算是对桌面程序的尝试,不过趋势还是采用B/S,也方便维护和管理人员远程监控和操作管理。如果有必要,会将DMB改造成B/S构架,准备用cherrypy提供web服务,跟系统进行交互。

【阅读全文·MySQL实验室】

分类: MySQL, news / tools, python 标签: , , ,
2010年8月3日 谭俊青 3 条评论

在这里给好耶参加MySQL性能调优培训的朋友们致歉。继上上周培训课程结束之后,因个人原因,未能继续给大家上课,还让大家在周六等了那么长时间,向大家说声:“对不起”。

PS1: 陆续有朋友问及MySQL高可用方案,这里提下:当前MySQL高可用方案自动化程度和靠谱的算是DRBD和Semi-sync-replication。在此基础上扩展slave做负载均衡(比如lvs)需要注意,另外需要monitor监控Slave状态,及时将失效节点从pool中剔除。

PS2: 这次有个项目,因为开发过程中经历了大量的需求变更,开发人员为了方便,采用了大量试图,导致后续出现严重问题(SQL查询时间过长),而在此基础之上做SQL调优能发挥的地方有限,所以开发的同志们注意了,在涉及到web开发,特别是对页面响应时间要求很高的时候,避免复杂join操作,适当添加冗余字段。救急办法:将涉及到的中间试图换成base表,在原始表上添加触发器。

PS3:前几天又有朋友问到session管理,我给的方案还是用 MySQL Cluster NDB 管理,其中我还发布过一个PHP 实现的 DbSession类,为了提高性能可以不记录任何日志信息(重启之后数据消失),”SET GLOBAL ndb_table_no_logging = 1;”。

PS4:据说这个是史上最牛的MySQL补丁,非堵塞是的网络IO,可以让32核心的机器跑上18万QPS。

2010年7月14日 谭俊青 没有评论

因为MySQL Cluster的分布式构架,考虑到整个MySQL Cluster的启动和恢复效率问题,MySQL Cluster的日志跟传统的事务数据库(比如InnoDB)有很大的差别。

MySQL ClusterRedo log不再是直接记录更改的page内容,而采用记录操作日志,以用于全局恢复数据用。整个用于Revocery的日志采用 LCP+GCP协作完成。当中LCP只针对当前数据节点,在一定数据量(数据量大小)被更改之后,同步一次内存(DataMemory)和磁盘内容,每个节点保留3份(新版保留2份);而GCP是全局日志,默认是2秒(时间)中将Redo Log Buffer的内容同步到所有的数据节点的磁盘上,用于突发事件恢复使用。 … 【阅读全文·MySQL实验室】

2010年7月9日 谭俊青 没有评论

作者:谭俊青@MySQL实验室,转载请注明链接和出处。

要理解TCP keep-alive/persistent connection, 得从TCP协议说起。

TCP flow:

    _____                                                     _____
   |     |                                                   |     |
   |  A  |                                                   |  B  |
   |_____|                                                   |_____|
      ^                                                         ^
      |--->--->--->-------------- SYN -------------->--->--->---|
      |---<---<---<------------ SYN/ACK ------------<---<---<---|
      |--->--->--->-------------- ACK -------------->--->--->---|
      |--->--->--->-------------- ... -------------->--->--->---|
      |---<---<---<-------------- ... --------------<---<---M---|

建立TCP链接需要经过3步,SYN、SYN/ACK、ACK,关闭则需要4步

约定:

当用户通过浏览器打开一个页面的时候,最小情况下,只需要2个packet,一次是请求(http get request),一次是回应(response from server)。但是这里没有计入TCP链接的建立(3 packets)和关闭(4packets),当然每个packet都需要ACK,但是ACK信息一般直接包含在回应的packet里,为了量化方便,这里忽略掉。 … 【阅读全文·MySQL实验室】

2010年7月2日 谭俊青 没有评论

各浏览器并发下载数列表:

Browser HTTP/1.1 HTTP/1.0
IE 6,7 2 4
IE 8 6 6
Firefox 2 2 8
Firefox 3 6 6
Safari 3,4 4 4
Chrome 1,2 6 ?
Chrome 3 4 4
Opera 9.63,10.00alpha 4 4

随着宽带的普及,为充分利用用户的带宽,提升用户体验,可设置多个子域名。

Javascript和css尽可能从页面中分离出去,作为独立的文件。

为了减小header头大小,静态文件尽量用其他不带cookie的域名提供下载(当然还要兼顾到DNS解析时间)。
如:www.mysqlab.net用到

http://s0.mysqlab.net.cdn007.com/css/base.css

http://s1.mysqlab.net.cdn007.com/js/global.js

MySQL连接、memcache连接尽量在echo之前断开连接。

使用DBSession保持用户在线状态,方便负载均衡、统计、定位用户在线情况及跨域访问。

当前绝大部分memcached可以通过MySQLD来存储实现,具有更多的特性,如:安全、高可用等。
(MySQL基于主键查询可实现5000+qps每核心)

浏览器并发下载数参考:

http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/

分类: MySQL, Web前端, php 标签: , , ,
2010年6月22日 谭俊青 11 条评论

相信有不少同仁已经做过过SSD作为存储对IO瓶颈的数据库性能测试,在得到可喜的成绩之余,在用于生产环境之前需要解决一些问题。

InnoDB共享表空间包含:
Data dictonary
Double write buffer
Insert buffer
Rollback segments
UNDO space … 【阅读全文·MySQL实验室】

2010年5月25日 谭俊青 没有评论
分类: news / tools 标签:
2010年5月25日 谭俊青 2 条评论

ivan-mysql-uc-2010

前端时间写过一篇博客:竞争给MySQL带来的压力和动力,现整理下。–谭俊青@ MySQL实验室
【阅读全文·MySQL实验室】

分类: MySQL, news / tools 标签:
2010年4月29日 谭俊青 没有评论

距离Matthew Yonkovit发布Waffle Grid已经有一年多了,最近看到qlks发布了Secondary Buffer Pool in InnoDB,又让我想起来了waffle。waffle做的事情也是InnoDB的二级缓存,但是用的不是SSD,而是Memcached。如果将所有的buffer都用memcached实现,进一步就可以实现内存的分布式共享,进而实现MySQL RAC。需要做的工作会不少,但应该是个可行的办法… … 【阅读全文·MySQL实验室】

2010年4月28日 谭俊青 没有评论

这次2010 MySQL UC上MySQL在MySQL5.5-m3发布没多久之后紧急发布了MySQL5.5-m4及InnoDB Plugin 1.0.7 (GA) 和 InnoDB Plugin 1.1。敏感的人应该发现了这点,其实这背后是因为 Percona给了MySQL官方和InnoDB Team太多的压力。早在InnoDB Plugin 1.0.7 和 1.1发布之前,XtraDB的性能一度超越Built InnoDB及InnoDB plugin高达30%。让我们先看看Percona XtraDB之前都已经具备了哪些些特性:By ivan@mysqlab.net … 【阅读全文·MySQL实验室】

分类: InnoDB Plugin 标签:
2010年4月21日 谭俊青 4 条评论

自从Sun被Oracle收购之后,大家对MySQL的前途抱有或多或少的担忧。下面是我重新整理下MySQL5.5的一些让人激动的新特新,来表明MySQL的活力,希望籍此能让大家对MySQL充满信心。

之前介绍过MySQL5.x的一些特性(MySQL新版5.x及特性, MySQL 5.5 表分区功能增强, MySQL 5.5 Released非GA等),先整理下,让大家对MySQL5.5有个整体的认识。 By Ivan@mysqlab.net, 谭俊青@MySQL实验室 … 【阅读全文·MySQL实验室】

分类: InnoDB Plugin, MySQL 标签:
2010年4月15日 谭俊青 5 条评论

InnoDB Plugin 1.0.7 已经GA了,最让人兴奋的当属crash recovery时间大大的缩短,以后redo log可以顶着4G用了(xtraDB可以超过4G),这样可以很大程度上降低IO需求(为什么?)、从而极大地提高InnoDB的写性能。

另外MySQL5.5+InnoDB plugin 1.1改进的几个地方确实让人兴奋,比如Multiple Rollback Segments(不再有1024并发事务的限制), Split Buffer Pools(这个以后发展下去可以指定某些表常住内存,相当于事务安全的内存表,还没有表锁限制,又是变长字段,相比现在内存表来说优秀太多了),InnoDB Performance Schema,还有Replication durability等,再加行已有的semi-replication, MySQL5.5GA真是让人迫不及待。 … 【阅读全文·MySQL实验室】

分类: MySQL Innodb, news / tools 标签:
2010年4月13日 谭俊青 没有评论

今天MySQL User Conference & Expo 2010 开幕,我还在倒时差,有点不适应。明天我拍几张照片放上来。

分类: news / tools 标签:
2010年4月6日 谭俊青 2 条评论

原文:http://www.sudo-u.com/archives/48

下面是一些shell的常用快捷键,快捷键玩熟悉了在一定程度上是可以提高工作效率滴…
Ctrl + a 切换到命令行开始
Ctrl + e 切换到命令行末尾
Ctrl + l 清除屏幕内容
Ctrl + u 清除剪切光标之前的内容
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 复制剪切板里的内容
Ctrl + h 类似于退格键
Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)
Ctrl + c 终止命令
Ctrl + d 退出shell
Ctrl + z 转入后台运行..
alt键比较少用,因为很多地方与远程登陆工具是有冲突的..
Alt + f 切换光标前的字母
Alt + b 切换光标后的字母

分类: news / tools 标签:
2010年4月6日 谭俊青 3 条评论

前2天去北京参加了2010数据库技术大会, 我演讲的主题是:《MySQL分布式集群高可用设计及应用》,主要是介绍MySQL Cluster,现在把PPT共享出来。

【阅读全文·MySQL实验室】

Pages: Prev 1 2 3 4 5 6 7 Next