Google Reader 订阅 | FriendFeed | 给我留言|GuestBook | Twitter (Follow me)
Ad. Ceramic bearing | Generator | 外贸英才网 | Vinyl fence | 鲜果招 PHPer | InfoQ(cn)

小道消息|我的废话

    广而告之: 7月26日QClub杭州站-- 支付宝首席架构师程立与您分享"当SOA遭遇现实"的心得

    今天看到 Brad Fitzpatrick (就是大名鼎鼎的 Memcached 的作者,现在效力 Google) 在网志中说道,正在利用 Google 著名的 20% 的业余时间为 Google App Engine 增加对 Perl 的支持。

    GAE_arch.png[来源]

    还记得时不时的会从中文 Perl 邮件列表里看到有人散布 Perl 过时的言论,其实一个语言过时与否都不重要,关键的是是否有人依赖该语言打造出比较激动人心的应用。如果 GAE 能够支持 Perl ,或许就是 Perl 焕发第二春的时候。从这个角度来说, Erlang 不也是如此么?

    --EOF--

    | | Comments (0) |

    广而告之: 7月26日QClub杭州站-- 支付宝首席架构师程立与您分享"当SOA遭遇现实"的心得

    再说存储引擎

    继续上一篇的讨论,记录针对 MySQL 在大企业级商用上我的一些零星想法。网络上到处都有关于各个引擎之间的对比。这里要提醒一点是,注意各个引擎的锁的粒度。InnoDB 是行锁,锁的实现是依赖于索引的,MyISAM 只是表锁。锁粒度是衡量存储引擎的一个重要指标,其能力很大程度上决定并发能力。

    至于 TRANSACTION ISOLATION LEVEL,则是另外一个需要衡量的指标。

    老生常谈的,某某引擎适合什么类型的应用,归根结底还是由于其实现的机制决定了引擎的特性。

    存储层的解决方案

    相信没有人愿意在 MySQL 上用 RAW 设备,很多人几乎就是直接把数据文件放在文件系统上(个人认为,对于数据库这样的应用来说,文件系统可靠性还有所欠缺)。我还没发现 MySQL 上类似 Oracle ASM 的解决方案。如果用文件系统,单节点的数据存储能力肯定要受到制约--没有人喜欢把几个 T 的数据扔到一个 MySQL DB 上吧? 一旦某个文件系统故障,麻烦就来了。从这个角度考虑,或许 LVM2 是一个可选的方式。

    当然,如果把数据文件扔到 SAN 上也还不错。一方面问题是,现在存储厂商对于 MySQL 的重视长度还远不如 Oracle、DB2 等老牌商业数据库。另一方面,很多 MySQL 用户没有 SAN 环境的,数据都是在本地磁盘上。

    固态硬盘与 MySQL

    前两天有朋友在上一篇分析留言,提及应注重闪存的应用。其实还不如布署固态硬盘 (SSD) 对 MySQL 可能的影响问题。 相信现在有很多企业需要在 DB 的 IOPS 上寻求突破,SSD 是个可能的突破口,但从目前我收集到的数据来看,还没有足够的数据说明启用了 SSD 的 MySQL 能有预期的数量级上的 IOPS 提升。

    商业支持

    现在 MySQL 的背后有 Sun ,但是,如果不购买服务的话,到哪里去找比较正规的商业支持(我是说软件集成商)? 即使购买了服务,如果问题出在存储引擎上,MySQL 能给即时、有效的技术响应么? 这也是 MySQL 没有自有存储引擎的一个弱点,因为衔接的环节多,一旦有商务上的问题,很容易陷入扯皮阶段。

    --思路中断,这是这个系列不成熟的第二篇。如果有第三篇,我倒是想写几点关于 MySQL 的设想。

    --EOF--

    | | Comments (1) |

    连续看到几个和 Oracle 优化器隐含参数 _sort_elimination_cost_ratio 相关的优化案例(Refer Refer )。

    如果用 _SORT_ELIMINATION_COST_RATIO 作为关键字在 Metalink 上查询,会发现很多和该参数有关的 Bug ,执行计划的出错特征是也走了索引,但是走了索引全扫描(INDEX FULL SCAN),如果做 10053 Trace ,会发现有个烦人的 Recost for ORDER BY 步骤,然后就会引到错误的执行计划上。

    在 9i 升级到 10g 最容易遇到这个问题(原来好好的,到了 10g 发现执行计划有问题了). 出问题的 SQL 一般是走 INDEX RANGE SCAN 然后有个 ORDER BY 会触发,更多的时候优化器模式是 FIRST ROWS -- 这样 Oracle 会尽量消除排序,默认认为排序是开销昂贵的操作。通过控制 _SORT_ELIMINATION_COST_RATIO 隐含参数的值 (默认是0) 能够解决这个问题:

    ALTER SESSION SET "_SORT_ELIMINATION_COST_RATIO"=5 

    其它可能的解决办法:对索引里面的排序保持和 SQL 里的 ORDER by 一致。

    其实说白了,很多 Oracle 隐含参数就是为了解决 Oracle 特定情况下的 Bug 的,因为不具备普遍性,所以在某些版本中作为隐含参数出现。在生产数据库上,个别的时候启用隐含参数倒也不是不行的,只要明白了相应的隐含参数到底是干啥的就成了。

    题外话:_SORT_ELIMINATION_COST_RATIO 相关的 Bug 频繁出现,倒是感觉和 Oracle 内部代码管理有关,本来应该消除掉的,怎么后面的版本又跑了出来?

    目前关于 CBO 最好的书籍应该是Jonathan Lewis 的 Cost-Based Oracle Fundamentals ,有中文译本:《基于成本的Oracle优化法则》。是 DBA 不可错过的一本书。

    --EOF--

    | | Comments (1) |

    广而告之: 7月26日QClub杭州站-- 支付宝首席架构师程立与您分享"当SOA遭遇现实"的心得

    上周五去了一趟淘宝,在淘宝二楼实时展示交易信息的大屏幕前看了一会儿。发现关于商品显示的排序列表是两排,左右排列的。

    1 商品名一 2 商品名二
    3 商品名三 4 商品名四
    5 商品名五 6 商品名六
    ......
    N-1 商品名N-1  N 商品名 N
    ......

    尽管符合从左到右的阅读习惯,看起来感觉怪怪的。前一段时间有不少关于电梯楼层按钮排列问题的帖子(),针对电梯的按钮应该说已经讨论的很好了,但我感觉如果针对 Web 页面上大量列表项的排列显示来说,很有值得商榷的地方。

    我再抛一个另外的反面例子,关于百度 Mp3 歌曲 Top 500 的列表展示:

    baidu_mp3_top500.png(点击图片看大图或者到 Baidu 站点上体验)

    假设 M 行 x N 列的展示,如果 M 很大,而 N 很小,在前面几行过去之后(一般是 N行*N列后),会发现非常难以定位你要找的歌曲。尤其是越到后面效果越差。如果 M 和 N 都很小,那么相差是不大的(不知道这是什么心智模型? 尤其是对该项的描述也符合 M:N 值很小,比如 Flickr 的图片展示)。

    这个其实和电梯楼层按钮排列的问题不太一样:电梯上面只有一个按钮(楼层号),而 MP3 列表排列项后面还有该项的名字或描述(MP3 名字, 艺术家名字)。需要展示的内容性质和信息量已经变化了。

    Flickr_items_arrange.png

    这只是 UE 门外汉的个人看法。供参考。

    --EOF--

    BTW, 注意到火车站和机场的公示牌显示倒是挺符合阅读习惯的。

    | | Comments (8) |


    最近收到的评论

    哪些豆瓣用户在看 DBA notes ?
    联系方式|Contact Me(eMail|Gtalk): Gtalk Profile | 用 GTalk 联系我 | LinkedIn Profile
    文责声明|Author's Responsibility: 本Blog内容仅代表个人观点,与其他任何组织、公司无关。

    收藏到 del.icio.us | 收藏到雅虎收藏+(收藏情况) | SocialMeter | 反向链接 | del.icio.us URL
    4nyth1n9 th4t c4n 90 wr0n9 wi11 9o wr0ng
    W4 ar4 wh4t w4 rep4ated1y d0. Exc41l4nce, th4n, 1s n0t 4n aCt, 6ut a h461t.

    网站链接

    DBA notes 的订阅数量,点击则可进行订阅
    Feed 订阅数量,点击即可订阅最新内容

    个人介绍

    Fenng
    DB Architect / Blogger
    Life@Hangzhou
    Work@支付宝(Alipay)
    更多...

    本站信息

    其他信息

    Creative Commons License
    网志文章均为原创
    本站版权创作共用

    本站模版Fenng 设计

    DreamHost提供空间 [介绍]
    购买折扣代码: FENNG

    文章总数:1130
    评论数量:6665
    Started@2003/12/17