推荐阅读--20110825

1. Redo By Jonathan Lewis

http://jonathanlewis.wordpress.com/2011/08/19/redo-2/

Jonathan Lewis根据来自Tony Hasler的一篇帖子中遇到的问题, 进一步测试,,发现Oracle的Redo机制在ACID设计上的缺陷所做的深入的讨论..

问题的根本点是..
Oracle在进行提交的时候,需要处理3件事情.
1. 将提交的信息持久化到磁盘
2. 通知其它进程此事务已经提交,后续的查询可以查看最新的记录.
3. 通知处理当前事务的进程,此事务已经提交.

Oracle该如何平衡这三个选项..

目前的实现是, 在当前应用发出commit指令并等待log file sync时,,lgwr会接手进行日志的持久化(也即满足ACID的D),,其它会话会看到当前会话已经提交的数据(此处为ACID中的I所指代的READ Committed 隔离级别), 也就是其它会话已经看到此事务为已经提交,,而只有当前会话认为事务还未提交完成,,在正常情况下,,其它会话认为已经提交与当前会话认为已经提交之间的时间间隔会比较小(一般就一次log file parallel write的时间,在0.1-10ms之间), 而当LGWR由于某些原因没有办法正常写日志时(如此blog中的描述,lgwr suspend,或没有可用的在线日志),,这个时间差就可能造成比较大的影响,,主要影响是如果有其它DB会依赖于此DB中的一致性的状态, 并且在当前主机crash的情况下,,会出现违反ACID中的D或I的情况,,如果所有的状态都是依赖于当前数据库,,则不会造成影响,,因为后续的会话依赖的状态以及依赖此状态所做的变更,,必须要等LGWR的下次持久化才会变成持久的变更.

2. 推荐一组关于JBOSS连接池的研究的帖子(来自我们支付宝DBA团队的兄弟).
JBOSS连接池1-PreparedStatementCache参数的作用及设置
JBOSS连接池1-PreparedStatementCache参数的作用及设置

JBOSS连接池研究的后续内容请大家关注dbafree的后续内容.

设计可扩展的Oracle应用.

今天上午在Oracle Tech Day上的演讲稿子,,最近工作比较忙,,这个PPT的内容准备的有点匆忙,,希望大家见谅..

PPT中的图片大都来自真实的测试,,测试的脚本/方法基本上都在PPT的注释中..

Percona Live 2011上两个比较值得一看的PPT

Measuring Scalability and Performance With TCP
Slides下载
by Baron Schwartz

作者为《MySQL High Performance》一书的主要作者,Aspersa,以及Mk-Digest工具的开发人员,这个ppt中的主要内容来自作者做Capacity Planning的相关实践,以及作者这两年学些Cary Millsap的《Optimizing Oracle Performance》以及Neil Gunther的《Guerrilla Capacity Planning》的实践与心得.. 通过此ppt可以更多的了解一下Capacity Planning以及Performance Forecasting的技术..当然还需要多家练习才能好好的使用此技术.

MySQL DBA Tools and Tricks
slides 下载
By Gennady Gurov (The Ladders)

本文其实主要是一系列管理MySQL以及主机上的脚本组合,,尤其是ssh的使用方法,,以及循环处理集群主机的一段,,我觉得写的很好,有比较大的借鉴作用,,希望诸位读者也会有此发现.

一篇很不错的介绍MongoDB优化的ppt

前面如何优化/监控MongoDB的部分介绍很实用..

这是针对MongoDB本身设计来做的优化,,主要是Json格式内置的弊端,,如何取长补短.

MySQL Conf 2011 slides recommendation

  • 1. Linux and H/W optimizations for MySQL
  • 对SSD (Intel X-25E) ,PCI-E SSD(FusionIO) 以及他们与MySQL,Linux,CPU(Intel Nehalem)之间的交互,以及SSD本身的内部机制都有深入的介绍.
    a. SSD的读写机制如何
    b. 不同配比的Reserve Space对读写性能的影响.
    c. 不同的CPU对处理性能的影响.
    d. Raid 对于SSD的性能影响.
    e. 这些不同硬件的各自适用场景都如何.
    本文中还有部分对不同文件系统,IO调度算法等的深入介绍.

  • 2. Automated master failover
  • 与上文是同一个作者的PPT,,介绍DeNA在提高MySQL的高可用以及Replication方面的设计与想法..

  • 3.Bottom-up Database Benchmarking
  • 2ndQuadrant 公司(一个知名的PostgreSQL咨询公司)介绍的数据库Benchmarking.作者是的作者.

    slides下载链接

  • 4. Forecasting MySQL Scalability
  • Baron Schwartz 根据Neil Gunther的Universal Scalability Rule应用到MySQL领域的一个介绍,,希望做容量规划或者预估的同学可以学习下.. 进一步的内容请参考: Guerrilla capacity planning

    slides 下载链接

  • 5.Innodb and XtraDB Architecture and Performance Optimization
  • Percona 的CTO Peter Zaitsev介绍的InnoDB以及XtraDB的架构,,关于这一点,,好像已经很难找到比他更加权威的人了,,
    Innodb and XtraDB Architecture and Performance Optimization Presentation

  • 6.The Aspersa System Administrator’s Toolkit
  • 介绍Aspersa的监控工具,,一套很不错的脚本..建议大家都去了解下.

    The Aspersa System Administrator’s Toolkit

  • 7.The Checkpoint Blues
  • MySQL的checkpoint机制介绍