存档

2009年1月 的存档

今年经济不好,时不时传出某某公司裁员,减薪,甚至破产的消息,让我们每个人感觉到了冬天的寒冷。年底了,除了买车票回家,加薪和奖金也是大家最关注的话题,辛苦一年了,谁都希望有个好收成,不过今年的经济形势让我对此并不报很高的期望。
前两天早上,每个人的邮箱里都受到一封老马的邮件,这封邮件让大家很感动。
尽管经济大环境面临空前困难,公司仍然作了2009加薪和2008年丰厚的年终奖计划,根据2-7-1原则,绝大部分员工将会获得加薪和不错的年终奖金.这不仅是因为我们现金充足,更因为勤奋工作并取得出色成绩的阿里人值得褒奖。
此次调薪惟有一点不同往年,包括副总裁在内的所有高层管理人员全部不加薪。我们认为,越是困难时期,公司资源越应该向普通员工倾斜,紧迫感和危机感首先要来自公司高层管理者。
辛苦一年了.请带上你的家人去花钱!!去消费!!!去享受我们一年的辛苦成果!!!!!
2009年还在等着我们去面对.成千上万的用户在期待着我们的努力….
好好过年吧!!!!
千万记得替我向父母,孩子和家人朋友们问好!没有他们的付出就不会有今天的阿里巴巴! Edison dvd
不管外界怎么评论,我作为一个基层的员工,公司能这样对待我们,还是挺厚道的。实在看不惯网上那些不负责任的评论,你们根本就不了解我们,不了解alibaba。
事实证明,今年的收成在当前的经济环境下,还是相当不错了。唯一让我不太满意的是,个人所得税实在是太重了,要是能减少点,我也可以去消费爱国了。
如果哪位大侠想说:Jacky肯定发了特别多的奖金,我怎么才发了这么一点。如果你想给我说这个,我劝你就不要回帖了。还是那句话:心存感激,知足常乐!
祝大家2009年身体健康,心想事成,2009,牛!牛!牛!
–EOF–

1 24th, 2009 | Filed under 一地鸡毛
标签:

现在山寨很流行,从山寨手机,山寨笔记本,到山寨汽车,山寨春晚,甚至银行都有山寨版的。为了紧跟时代潮流,我们也打算自己搞一个山寨版的存储,我们起了一个好听的名字叫“高性能廉价存储”。
为什么要搞山寨存储,其实是被逼无奈的选择。目前存储基本上被国外厂商垄断,尤其是高端的存储,基本都是EMC,HDS,IBM,HP的天下。国内我知道华三有一些低端的IP SAN的产品,现在华赛也有一些中低端的存储设备,但是尚不足以与国外巨头抗衡。由于国内尚没有厂商与之竞争,所以这些存储价格很高。而且这些高端的设备不光初次购买的价格昂贵,而且维护费用很高,比如我们的使用的小型机和存储,当你使用了一段时间后想升级的时候,你会发现升级和维护的费用和再买一台新的设备差不多,而且厂家往往还会告诉你,原来的型号已经不生产了,建议你买新的型号。比如我们的小型机想升级内存,厂家说现在新生产的内存和以前不兼容,如果要升级,以前的内存必须要全部废掉,我们没办法,只好又新买了一套设备。还有设备使用了一段时间想要续保的时候,我们发现购买服务的价格和再买一套新设备差不多。这个时候,我们发现自己被厂家绑架了。
我们曾经测试过用8台PC Server+SAS本地磁盘+greenplum数据库搭建了一个山寨版的数据仓库系统,发现效果比小型机+高端存储+Oracle RAC的效果还要好(具体可以看我以前写的blog),这个测试给我们很大的启发,我们是不是也可以用廉价的PC server堆叠出一个存储系统呢。
我们之所以能够自己搞山寨存储,基于以下几点:第一点,SAS盘的性能已经足够好,而且比FC盘要便宜很多。第二点,我们可以和PC服务器厂商合作,定制一种服务器,用来作存储的节点,比如浪潮提供给我们的一款机器可以挂16个SAS盘,价格很低廉。第三点,利用iSCSI,通过iSCSI我们可以将多台PC server整合为一个大的存储系统。
我们的山寨存储由存储节点和控制节点组成,存储节点的作用主要是提供存储能力,所以要求能够挂比较多的磁盘,但不需要太强的处理能力,内存可以为控制节点提供Cache(就好象存储的Cache一样),存储节点通过iSCSI输出给控制节点。控制节点的作用是整合所有存储节点输出的磁盘,有点类似存储的控制器一样,RAID在控制节点上实现,并跨在每个存储节点上,防止存储节点的单点故障,这里的RAID实际上是软件RAID,而不是硬件RAID。控制节点需要一定的处理能力,内存同样可以为上层节点提供cache的功能。所有的LUN通过控制节点整合后,就可以输出给外部主机了,根据应用的不同,可以支持三种方式:FC,iSCSI和NFS,其中NFS可以用来作备份,iSCS可以输出给对性能要求比较高的应用,比如数据库,如果原来已经有SAN的环境,还可以选择FC方式的方式输出,这样对主机来说,就和一个存储完全没有区别了。在主机端还可以用LVM,或者用Oracle ASM再次对输出的LUN进行整合后使用。这套山寨存储就好像是套积木,你可以用他来搭建出各种各样的房子。由于目前还处在“研究”阶段,所以太细节的东西现在还不便透露。

性能:由于每个节点都提供cache的功能,即利用了PC server上的内存,又大大提升了性能,经过我们的初步测试,IOPS和throughput还是比较理想的,符合我们的期望,我们也没指望拿它和DMX去比,一些对性能要求不高的应用场景是可以使用的。
性价比:有人说你这样搞说不定比买存储要贵,至少比那种没有控制节点的磁盘柜要贵,人家那种只有磁盘,我们这个是拿PC Server堆叠的,而且PC Server的处理能力是不是就完全浪费了。其实这些问题我们都有考虑,现在PC Server价格很低,而且我们可以和厂商合作定制服务器,比如存储节点我们可以定制带很多盘的PC Server,但是不太需要很强的处理能力,内存基本上都可以用来提供cache,所以并没有浪费,而且我们可以选浪潮,华为等国产设备,避免被国外厂商绑架。
好处:可堆叠,这是最大的好处,随时都可以添加存储节点来实现扩容的目的,这样旧的设备就不需要被替换掉,可以最大限度的节省硬件投资。比如在一些对性能要求不高的场景,比如图片存储,文件服务器等,完全可以用PC Server堆叠出容量很大的一个存储。
待改善:现在的系统是纯山寨,基本上都是拿来主义,还需要不断的测试和完善。稳定性和可靠性还需要进一步加强,比如某块盘坏掉或者某个节点坏掉对整个系统的影响。这个东西还没有经过实践的检验,还需要通过各种应用来检测,比如我们的Oracle数据库的应用。
有人说让专业的厂商做专业的事情,这不是我们应该做的事情,因为我们不专业。但是你知道吗?Google最早的服务器就是自己做的,比我们的还山寨呢。山寨这个词并不一定是贬义词,它更深次的含义是:用廉价的设备堆叠出一个处理能力很强的庞大系统,这个思路是我们以后发展的方向。也许某天,我们的山寨存储经过包装,也可以作为一个产品来销售,那时候它就不再是山寨货了。
–EOF–

1 23rd, 2009 | Filed under 大话技术
标签: ,

转眼来杭州已经四年了,2004年底,当时我刚从西门子辞职,在朋友的小公司里混日子,本来想和朋友们一起做点事,但是事情并不象我想象的那样顺利,工作一直不如意,心情也很低落。突然某天下午,Oliver给我打了一个电话,问我想不想来杭州工作。Oliver之前是金山的CTO,因为我有一个朋友和他是中学同学,曾经介绍我去金山工作,后来因为种种原因最终没能成行。后来他来了杭州。我真是没想到,仅仅是一面之缘他还记得我,而且还给了我这样一个宝贵的机会,我真的很感谢他,虽然我们在公司的级别实在太过悬殊,一直没机会向他表示感谢,但我不会忘记的。这个工作机会,对当时的我而言实在太重要了,就好象黑暗中的一丝光明,我一定要抓住。
随后,就怀着惴惴不安的心情来杭州面试,当时面试我的人是rudolf,biti,piner和七公,面试之后我觉得糟透了,因为自从毕业后拿到OCP,后来一直都在做开发,Oracle基本上荒废了。离开杭州的时候,我觉得肯定是没戏了,在机场给Oliver发了一条短信,说面试的不理想,有些对不起他,感谢他给我这次机会。
回到珠海,郁闷了好一阵子,因为太想得到这次机会,反而让我感觉很失落。但是没想到之后的某天晚上竟然接到了HR的电话,当时脑袋一片空白,至于薪水什么的,我都完全没考虑,就好象《当幸福来敲门》的男主角一样,机会终于向我招手了。不过后来我仔细想想,应该是Oliver帮了忙,否则我不可能得到这次机会。换句话说,我是走后门才得到的这个工作。
听说我要去杭州了,爸爸妈妈有些不舍,我自从毕业后,就一直漂来漂去,好不容易在珠海安定下来,而且当时刚结婚不久,如果去了杭州,意味着一切都要重新开始。只有LP支持我,因为她知道这个机会对我很重要,感谢她给我的支持,让我有勇气和信心证明自己。
2005年1月17日,我一个人来到杭州,开始了新的生活,当时虽然条件很艰苦,但是每天都过得很充实很开心,在杭州我认识了新的朋友,学习到了新的东西,那时候每一天都是一种享受,白天上班,下班在公司学习讨论,有空和朋友骑车去西湖看美女,周末去爬山,晚上回到住处和几个哥们来根鸭脖两瓶啤酒,没事和LP在网上聊天(真是相见不如怀念啊)。那段时光真是太美好了,也许再也无法复制了。在我的工作经历中,有三段时光让我非常怀念:第一段是北漂的日子,第二段是拍拖的日子,第三段就是在杭州奋斗的日子。也有几段时光让我不堪回首,以后有空再写。
过了一年,LP也辞职跟随我来到杭州,我们手牵手去西湖看风景,骑自行车去滨江看房子,我们一起憧憬着幸福的生活。后来我们买了房,买了自己的第一辆车,我和LP也为人父母,承担了更多的责任。虽然生活中总是有这样那样的烦恼,但是只要你用心感受,其实我幸福就在我们的身边。
在杭州的四年里,所有的经历都是我人生中最宝贵的财富,他让我变得更加成熟。我要感谢我的父母,他们一直默默的支持我,不求任何回报。感谢我的LP,不论多么大的困难,我们都一起走过。还有我的朋友们,他们给了我很大的帮助。有了他们,让我在这个陌生的城市里感觉到一丝温暖。
Oliver当时脑子里闪现的一个念头,改变了我的生活。其实,人生就象是蝴蝶效应,你永远不知道下一秒要发生什么,我们的每个念头,每个行为,都在改变我们自己和其他人的生活。
–EOF–

1 19th, 2009 | Filed under 一地鸡毛
标签:

我们都知道truncate操作会做什么:移动HWM,释放extent,重新生成data_object_id。truncate之所以比比delete快,是因为它根本不需要删除数据。但是在实际中我们经常碰到truncate很慢的情况,实际上它比我们想象的要复杂。
1.在truncate之前,CKPT必须搜索整个buffer cache,把这个object的dirty buffer全部写回磁盘(这个操作在10g有了改进,我们后面再说)。在这个过程中,系统很可能会出现DBWR的等待事件,如果dirty buffer对应的redo还没有被写入,也有可能会出现LGWR的等待事件,比如log file sync。有人说truncate之前要做一次checkpoint,并不是特别确切。
When a truncate is issued, the checkpoint process does a complete scan (till 9204) of the buffer cache.  All of the dirty buffers of the object in the buffer cache are written down to disk.  All of the clean buffers are are invalidated.
2.是否使用了reuse storage,因为需要释放空间,尤其对于字典管理的表空间。很可能会出现Waits on ST enqueue的等待事件。
3.Waits on “RO enqueue” [...]

1 14th, 2009 | Filed under 大话技术
标签:

我们一般认为oracle的归档行为是:按照LOG_ARCHIVE_DEST_n的设置,先归档第一个路径(local destination),然后再归档另一个路径(remote destination)。 The Devil’s Own movie download
实际上并不是这样,Oracle 9iR2及其以前的版本中,Oracle总是一次得到所有的归档路径列表,然后依次从online redo中读取1M数据,依次发送到各归档目标路径。这样,整个归档的时间就取决于最慢的路径,比如远程的standby。如果当网络发生问题时,很可能出现归档进程hang住,导致日志无法切换。
The ARCH process sits in a very tight loop waiting for an update to the controlfile that states an online log needs to be archived.  Once the update occurs the ARCH process builds a list of archive destinations that need to be serviced.  Once this [...]

1 14th, 2009 | Filed under 大话技术
标签:

每天早上到公司,上厕所,泡茶,开电脑,看新浪体育,网易新闻,然后就在我的Google Reader上看朋友的Blog,就象网易说“无更贴,不新闻”,大师说“无灌水,不网络“一样,对我而言,每天看朋友的blog也是生活的一件乐事。
DBA notes(dbanotes.net):冯大辉的blog,在圈里很有名气,我也是他的忠实粉丝,主要内容是讲新技术,架构和思路。虽然是技术类的blog,但是文笔犀利,图文并茂,这哥们还喜欢摇滚,偶尔也愤两句。不管你是不是挨踢人士,这里的内容都值得一读。
Alibaba DBA
Diamond Dogs video
(alidba.net):俺们部门的blog,有兴趣可以去看看。
Taobao DBA(taobaodba.com):Taobao DBA的官方blog。
人生就是如此:biti_rainy的blog,搞Oracle的人应该都知道,Oracle ACE,Alibaba首席DBA,经常在ITPUB灌水。他现在已经少写技术方面的内容了,主要都是八卦和小道消息。
Oracle & Starcraft:(orawh.com):汪海(七公)的blog,个人觉得他对Oracle internal的东西非常有研究,但是做人很低调,很随和。前不久他获得了Oracle 的 “IT Manager of the Year” 奖。
DBA Story(ixdba.com):piner的blog,他对主机存储数据库OS都有广泛的研究,前不久写了一本书《Oracle高可用环境》,我觉得写得很不错,几乎涵盖了数据库的各个方面。
Eygle(eygle.com):关于他我就不多说了,他的每本书我基本都读过,虽然只有一面之缘,但他给我的感觉很好。这么多年他对Oracle一直报有极大的热情,始终不一的研究Oracle的技术,非常的努力和勤奋。读他的blog,也是对自己的一种鞭策。
blue_prince:他在网络上的头像是巴乔,我们都叫他巴乔。女DBA杀手,摄影达人,忽悠高手。在他的忽悠下,我买了单反相机,在他的忽悠下,我又买了一个镜头。他现在负责数据仓库方面的应用,所以blog中比较多的介绍了这方面的内容。
ningoo(ningoo.net):ningoo的blog,精通各种主机,存储和数据库,写的文章都很有深度,反正都是我没干过的事。如果把人分为菜鸟,菜人,人,牛人,不是人这五个级别的话,我估计他应该在第四级别。
OracleDBA(oracledba.com.cn):DavidGuo的blog,资深DBA,OCM,哥们属于“不是人”这个级别。虽然并未见过面,但是仰慕他很久了。blog主要是写DBA心情和Oracle技术,代表作《这年头,要不是家里有点困难,谁愿意做DBA呀》。
朝阳的天空(jianzhaoyang.com):mysql数据库高手,正在写一本有关mysql的书,想学mysql的朋友这里不能错过。
BOBO(free2way.net):原来在珠海时很要好的朋友,Oracle和DB2都很厉害,但是人低调的厉害,现在在北京混,虽然少有联系,但是通过blog我们还可以相互了解对方的近况。
喜马拉雅(myhimalayas.blog.sohu.com):高中大学同学,很开朗的女生,喜欢旅游摄影,可以算是红颜知己吧,很喜欢她拍的照片,现在人在上海。
稻泥(flickr.com/photos/grassbell):原来有名的grassbell,现在迷上了摄影,准备从DBA向专业摄影师方向转型。
苏老邪的桃花岛:简称So,也算是俺的老乡,摄影达人。他的blog以生活和摄影为主,写得幽默有趣。
Neo(neowang.com):同事,驴友,摄影爱好者。
南瓜@虾米(livehouse.cn):我以前的同事,摇滚青年,音乐达人,辞职创办了虾米网(高品质音乐互动社区,网站很不错,推荐大家去看看)。我觉得IT人和音乐人不可能融合在一起,在他身上是个特例。
谭理想(hi.baidu.com/redthink123):未曾见面的网友,也是通过blog认识的,年纪轻轻就是某公司的技术总监了,是我的blog的忠实读者之一。
知道分子(hutuworm.blogspot.com):冯大忽悠的blog,架构师,他的blog我基本上看不懂。BTW:发现我身边姓冯的人都很能忽悠。
爱枣报:新闻还不错,年终特刊-2008大盘点《撼动中国》,写的挺逗。

–EOF–

1 8th, 2009 | Filed under 一地鸡毛
标签:

最近上了一套11g的应用,发现了几个需要注意的地方:
1.alert文件的位置和以前不同,通过diagnostic_dest参数设置,Oracle现在除了传统的文本形式的alert,还会生成一个xml格式的,我还是习惯旧的文本形式的alert.log
3.11g standby的real time apply很好用,恢复的同时就可以提供read only的功能,不过我们同事发现在某些情况下有bug(频繁truncate表,然后再插入,在standby端读取会出错),Oracle还没给出解释。
4.log_archive_dest_n参数,没有了lgwr和arch的选项,默认都是通过lgwr传输,如果standby端没有standby redo log,那么RFS将直接redo stream写入到archive log文件中(经过测试,发现9i,10g也是如此),这个archive log的大小和redo log一样,当日志切换时,才产生真正的archive log(文件的大小会发生改变)。需要注意的是,如果没有standby redo log将不能实现real time apply.

2.以下参数已经过时,具体请参阅Oracle的文档
BACKGROUND_DUMP_DEST (replaced by DIAGNOSTIC_DEST)
COMMIT_WRITE
CURSOR_SPACE_FOR_TIME
INSTANCE_GROUPS
LOG_ARCHIVE_LOCAL_FIRST
PLSQL_DEBUG (replaced by PLSQL_OPTIMIZE_LEVEL)
PLSQL_V2_COMPATIBILITY
REMOTE_OS_AUTHENT
RESOURCE_MANAGER_CPU_ALLOCATION
STANDBY_ARCHIVE_DEST
TRANSACTION_LAG attribute (of the CQ_NOTIFICATION$_REG_INFO object)
USER_DUMP_DEST (replaced by DIAGNOSTIC_DEST)
BTW:Oracle除了数据库以外,其他的东西做的真难用,比如ERP,还有我们在使用的Peoplesoft,metalink本来就够难用的了,现在出了个新版本,还不如以前。11g的文档也明显不如9i的详细。
–EOF–

1 8th, 2009 | Filed under 大话技术
标签:

今天发现一个奇怪的现象,一个数据库的shared_pool_size设置为50m,但是启动后Variable Size非常大
Total System Global Area 253199856 bytes
Fixed Size 742896 bytes
Variable Size 100663296 bytes
Murder by Decree movies

Database Buffers [...]

1 7th, 2009 | Filed under 大话技术
标签: