本站推荐: 繁华,不过是一掬细沙
Today | 01/27 | 01/26 | 01/25 | 01/24 | 01/23 | 01/22 | 01/21 | 01/20 | 01/19 | 01/18
 123
 123

  2010-01-28 Thu

20:16 谈谈历史遗留问题 (5753 Bytes) » AnySQL.net

    首先要承认有历史遗留问题是好事, 因为这一般是在事物新生期被忽略的细节上的问题, 而且往往是因为事物起始时高度关注与追求高速发展, 与解决细节问题之间的时间和资源上的冲突, 就IT系统来讲, 历史遗留问题越多, 表明当初发展的速度越快, 因为一开始资源上也显不足. 先要在心里承认历史遗留问题的正常性, 不出问题时大家都容易理解, 但要是出了问题, 心中不一定能容忍历史遗留问题的客观性.

    除了时间和资源外, 在当时的条件下, 解决新生期的细节上的问题是入不付出的, 并且事物不会因为这个细节上的问题, 而导致当时的失败, 甚至可能什么都表现不出来, 相当长的一段时间内都会隐藏得很好, 除了当时事物的制造者可能知道外, 不是所有的细节上的问题在形成之初就是已知的, 都认为这是一个十分完美的事物.

    虽然不是所有的细节上的问题在形成之初就是已知的, 但有很多应当是已知的, 只是这个细节上的问题, 在传承上出了问题, 事物可能前后经由多个人进行修改与完善, 前面已经感觉到的问题, 如果没有有效地交托给下一个, 就隐藏了, 没被隐藏的一般都是比较大的问题, 不会成为历史遗留问题.

    历史遗留问题的发现一般都是由于事故, 量变引起质变, 在量没有到达之前, 不会形成事故, 不会有让人感觉到难过的严重危害. 拿IT系统来说, 用户数的增长, 业务的增长, 数据量的极速增长, 到一定的量后, 才会发现当初被忽略的细节现在都成了头痛的问题, 成了历史遗留问题, 不满意的用户绝对数量在增加. 在用户的心目中, 事物应当变得越来越完善, 但当发现没有变化时, 变得越来越失望, 为什么当初没造成用户体验问题, 现在却造成了用户体验问题, 当时用得好好的, 什么也没有变, 就变成了问题很多的事物了. 看来对既有事物的完善速度必须要超过社会发展的速度, 才不会引起用户体验问题.

    一个历史遗留问题的爆发, 往往会引出更多的历史遗留问题, 站在今天的时间点回首看去, 会发现一个一个的黑洞, 从而引生出放弃旧事物, 开发新事物的想法, 并且很容易取得一致的共识, 大量的历史遗留问题是很难解决的, 重新做一个要比改造来得更快更好. 另外此时彼时物虽是人已非, 每个人都不想去修复历史遗留问题, 因为长期的积累, 这些问题已经变得很难处理, 处理好了只是个小功劳, 处理不好就是大问题.

    有部份的历史遗留问题一定是通过创建新事物来解决的, 也有一些必须通过修复来解决的, 当你偏向于某一方时, 就会在一定的时间段内引起一定的问题, 问题在于你能否支撑过这段青黄不接的时期.

Relative Posts:

15:01 问过鸟,韩三平没被双规 (36 Bytes) » 我呸
谢谢
偶接着觉觉去...
09:04 威斯汀的聚会 (2271 Bytes) » Julia----瞬间与记忆在此过渡。。。。。。
 
因为上周的聚会没去成,Judy约了我这周一晚餐,在一家意大利餐馆Senses
 
代表处解散以后,基本上每个两月我, Judy和boss都会见上一面
 
从CBD到金融街,从复兴门走到Westin,这一路很熟悉但也觉得很遥远,还好Eygle陪我一起
 
我叮嘱Eygle,如果Judy亲你的脸,你也要亲回她 (上次Judy亲Eygle,Eygle跟Judy握手Embarrassed
 
没想到Olin也来了,太兴奋了,他紧紧地拥抱着我,我们相互吻了脸颊,Eygle茫然之际,Olin跟Eygle握手Open-mouthed 
 
man to man可能要不一样 Thinking 
 
Olin瘦了很多,帅气了,很精神。他说:“Less food, more sport.” 但我说, but you are not as cute as before...他大笑  
 
我们聊了很久,西藏之旅,尼克松... Olin说,他第一次来中国是在1978年,我问他是不是跟尼克松一起来的,Olin笑说:“No...I was too young...” 每次看见他和Judy我都会觉得很亲切愉快,他们对我特别的耐心。
 
海鲜自助餐,基本上我都不知道吃了什么,也没吃饱,一直聊到晚上10点才结束。
 
因为这天身体状况特别不好,怕像上次一样晕车,我们坐地铁然后走路回家,虽然很累,但牵着手也就很开心,我们又见到一只大咪,好胖喔,我喵一声它也喵一声,一直喵来喵去...回到家三更半夜了 Smile
 
 
 

  2010-01-27 Wed

18:14 The logical database layer and physical database layer (5052 Bytes) » DBA Tools

Author: AnySQL, published on dbatools.net, Oracle Data Recovery, Tools, WebChart Report, etc.

    Usually our application are bound to one physical database, for example, we always read our data from specific Oracle database or MySQL database, or write business data to specific Oracle database or MySQL database. The physical database is not transparent to the application, many application developers know which physical database the data stores. But that's not so good, we'd better introduce a logical database layer between application and the pnysical database.

    We create some logical database name, and in the application code, we just use the logical database name, then we can intoduce a relation map between the logical database name and physical database, while the appliction doesn't care about the physical database location.

LOGICAL.logical database name=relation type|data source list

    In the WebChart utility, I intorudced 5 types of logical relation between the application and physical database, we may call it logical relation. The first type is equal (FIRST), always choose the first data source.

LOGICAL.WRITEDB=FIRST|masterdb

    The second type is random (RANDOM), choose one data source from the data source list randomly.

LOGICAL.SLAVEDB=RANDOM|slavedb1, slavedb2, slavedb3

    The third type is sequential (FAILOVER), if the first is unavailable (markdown), then get the next data source. We want our application read data from slave first, if no slave available then read data from master database.

LOGICAL.READDB=FAILOVER|slavedb, writedb

    The forth type is get data source by position value, the application will get the data source by a specific hash value, and we get the data source by mod it with available data source count. If we provide a hash value 5, then we will get the get the slavedfb3 connection (5%3=2).

LOGICAL.SLAVEDB=POSITION|slavedb1, slavedb2, slavedb3

    The last type is get data source by a range value, the application will get the data source by a value range. If we provide a range value 150, we will get slavedb2 connection.

LOGICAL.SLAVEDB=RANGE|slavedb1, slavedb2, slavedb3
LOGICAL.SLAVEDB.VALUES=100,200,300

    I found it may be valuable to make the application transparent to the physical databases. How do you think about it?

Related Posts

Twitter Me? | Leave New Comment(Current: 1)

Link: http://www.dbatools.net/experience/logical-database-access-layer.html

13:21 Fixed AUL license is available now for you (3839 Bytes) » DBA Tools

Author: AnySQL, published on dbatools.net, Oracle Data Recovery, Tools, WebChart Report, etc.

    It has been 5 years since I released the first version of AUL utility, and I have helped lots of customers to get their data back from corrupted database, such as lost system tablespace, table dropped or truncated. But every time AUL started, you were required to input a new license code, which I called it "dynamic license model", it becomes obsolete now.

    On windows platform, AUL will not change the register code unless you restall the windows, or move it to another host. So you can buy one real AUL license to recover your data at any time, for any Oracle databased. The fixed license model is comming for you.

    For example, every time I start the AUL utility, it will generate the same register code.

Register Code: DETO-NODT-JETT-DNMX-DDCN
AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g/11g, release 5.1.1

(C) Copyright Lou Fangxin 2005-2010 (AnySQL.net), all rights reserved.

AUL>

    AUL does not bind it to a physical host, it may change the register code after you reinstall or upgrade the windows version, or replace the disks etc. The newer fixed license mode will give more benifit to AUL customers.

    After all, now you can get a real AUL license, not just a service.

Related Posts

Twitter Me? | Leave New Comment(Current: 0)

Link: http://www.dbatools.net/mydul/fixed-aul-license-is-available.html

11:47 狗肉问题 (4106 Bytes) » 木木:木有书读

因为我们国家正在酝酿出台《反虐待动物法》,一条关于违法食用或销售猫狗肉者最高可被罚款五千元并被拘留15天的专家建议在社会上引发巨大反响。我对这样的新闻和争议,通常都不会作任何评论,原因很简单,它仅仅只是一些人的看法,尚未成为法律,也没有成为一种“事件”,而且根据我的法律知识,这个规定压根就不可能成为法律条文,其次是,媒体在报道这些东西的时候,都有炒作夸大的成分,譬如说所谓的“专家建议”,在吃狗肉的问题上,我们国家哪有什么专家呢?有,也应该是那些厨师啊。我今天之所以想说几句,实在是因为我非常喜欢吃狗肉,无论是江苏的沛县狗肉,还是湖南的烟熏腊狗肉,都是我的至爱。而在我们国家,也确实有人因为喜欢狗,时常做出一些让人觉得非常过分的事情。譬如,有一次,在电视里看到一个新闻,说一帮爱狗分子埋伏在公路边,硬是把一辆私人卡车拦了下来,车上装有很多狗,车主准备运往广东的某些饭店。爱狗分子仗着人多势众,不顾车主的极力反抗,打开车门,把车上的狗全给放了跑了,没有给人家分文补偿。可怜的车主急得只好边哭边跺脚,仿佛遇到了一帮神经病。

习俗,或说习惯,是法律的一个重要渊源。中国人历来是有吃狗肉的习惯的,否则也就不会有名扬四海的沛县狗肉。因为有这样的历史和习惯,所以,历代中国都没有禁止吃狗肉的法律,相反,还把狗肉当作美食的一种。那么,为什么现在有人要禁止吃狗肉呢?收集一下网络上的意见,大致有这么几点:一,外国人不吃;二,狗是人类的好朋友;三,杀狗特别残忍;四,现在有很多人把狗当作宠物在养,他们对狗的感情很深。然而,细究起来,这些理由都是靠不住的,都不足以用立法来予以解决。外国人不吃,中国人就吃不得?外国人不但不吃狗,据说还不大喜欢吃动物内脏,比如鸡肝,猪肝,甚至连猪头都不大吃,莫非我们也要禁止一下呢?狗是人类的朋友,猪、牛、鸡,难道就不是?杀狗残忍,杀猪就不残忍?

外国人,主要是西方人,之所以不大喜欢吃狗肉,一个重要的原因是,西方民族是游牧民族,狗和马一样,可以用来打猎,是生产工具。打猎,打的当然也是动物,如果没有狗,他们就吃不到其他动物。而在我们中国,特别是汉族,是农耕民族,狗的作用不大,相反,却很看重牛的作用,所以,我们中国人,汉人,是不大会杀牛吃牛肉的,一条牛死了,都很痛苦。因为不大吃牛肉,所以,汉人烹饪牛肉的水平也就一直不高,没有外国人那么会吃。外国人不一样,他们的牛是不需要劳动的,养大了,就是用来杀掉吃的。所以,好多事情都是有原由的,一个民族吃什么,不吃什么,自有他的道理。

而在道理之外,惟一可以理解的,就是有人因为喜欢狗,把狗当宠物养,对狗有着很深的感情,所以,他们看不得别人吃狗。但是,这就像有人同样看不得他人养狗一样,纯粹属于个人爱好,而不是众意。没有众意的支持,如何去立法呢?

更何况,在当下中国,那些把狗当宠物养的爱狗分子,大多都是比较有钱的,我们不要忘了,还有很多人,像我,连饭都吃不饱,更不要说养狗了。在这寒冷的冬季,出于本能,他们只会哆嗦着去想,如果现在能有一碗热腾腾的狗肉煲,那该多好啊。

 

09:08 十月围城,李敖的北京大学演讲 (1099 Bytes) » Julia----瞬间与记忆在此过渡。。。。。。
 
昨晚看了十月围城,到电影的结束,我的眼睛都肿了。太惨了!
其实,如果在那个年代,能死得光荣,也就此生无悔啊;对电影本身,我跟盖老咪说,吴君如一定很为陈可辛骄傲。
 
临睡前看了Eygle给我下载的李敖演讲,很精彩,我们一致认为李敖真的很牛,年轻的时候因为说真话而坐牢,现在年纪大了也不改当年。牛人就有这种魄力和精神。我说,真担心,如果一天他走了......Eygle说,还有人的,韩寒不也被大家看好么?嗯!韩寒加油!如果,如果周老师能把韩寒介绍给我们就好了。。。真期待有那一天,不过,如果真有那一天,我到底要不要跟他合照和要签名呢,不知道他会不会回头嘲笑我......
 
这两晚卧谈,从国际汇率到辛亥革命,我突然发觉后来以为学来无用的东西,原来在睡觉前都能派上用场,一直聊到夜深,咳着咳着睡着了。
 
 
08:52 错过的聚会,团购的棉衣 (1568 Bytes) » Julia----瞬间与记忆在此过渡。。。。。。
 
AIG上周和昨天的聚会我都没去,昨天的咳嗽让我大伤元气,很想念几个旧同事,忙了一整天,身体和精神都颓败。
 
还好回到家,盖老咪已经做好饭,盖小菊回来有给我熬了冰糖萝卜水,她从网上下载了些咳嗽偏方,又枞碎冰糖掺些黑芝麻让我早上起来冲水喝,很感动。
 
而1月23日那天是好朋友晖晖和生仔的喜日,也是猫的生日,当然,在广州有一个大聚会,几乎所有情同手足的朋友都会出席,早就在电话跟晖晖说,你结婚那天不回来了,人不到礼到,她很谅解。猫记说,我们其他人结婚你也没回来,如果这次你敢回来就一定群殴你!Sick
 
呵呵,看见她们的真幸福,我都感到高兴,还有可喜可贺的事,Yolanda和阿杜都怀孕了,而对阿杜来说,这真是来之不易,得到消息那刻,热泪盈眶。
 
*********************************************************

 

昨天Michelle给我团的棉衣也到货了,买给家人的,真是辛苦刘大人了,给她肯定是很多麻烦了。Red rose 感谢感谢! 

 

 
 

  2010-01-26 Tue

20:11 逻辑连接层与物理连接层(2) (4829 Bytes) » AnySQL.net

    上一次只想到了逻辑逻辑层和物理连接层之间的三种关系, 等价(FIRST), 随机(RANDOM), 顺序(FAILOVER). 其实后面一直在思考, 阅读了一些相关文章, 糊思乱想了一通后, 又增加了两种访问方式.

    按位置(POSITION)访问, 指程序提供一个标识位置的数, 然后与逻辑连接层的连接源数目进行取余操作, 根据余数来获取指定位置的数据源. 继续上一次中的四个MySQL的例子, 我们创建如下逻辑连接, 在访问时如果提供的值是5, 则最后取到的是5余4的位置, 即SLAVE1.

LOGICAL.DEFAULT=POSITION|MASTER,SLAVE1,SLAVE2,SLAVE3

    按范围(RANGE)访问, 指程序提供一个标识位置的数, 然后与逻辑连接层的连接数据源进行比较操作, 按顺序找到指定位置的数据源. 继续上一次中的四个MySQL的例子, 我们创建如下逻辑连接, 在访问时如果提供的值是250, 则最后取到的是小于300的位置, 即SLAVE2. 同前面的按位置相比, 这个可以在增减数据源时, 将影响控制得更好.

LOGICAL.DEFAULT=POSITION|MASTER,SLAVE1,SLAVE2,SLAVE3
LOGICAL.DEFAULT.VALUES=100,200,300,400

    在程序中, 可以根据业务特色提供这个标识位置的数, 然后在JDBC的访问URL中提供这个值, 访问代码如下所示.

try {
  Connection db = DriverManager.getConnection("jdbc:anysql:default/250", null);
  ......
  db.close();
}
catch (SQLException sqle)
{
  ......
}

    接下来当然还会思考有没有新的方式了, 有了这些访问方式, 进一步抽像一下, 可以看看能不能将数据库当成一个磁盘(Database as Disk)来看, 写一个弱弱的DatabaseRaid类在实验室玩玩数据冗余.

Relative Posts:

19:07 代理切换插件 Proxy Switchy! Chrome Extension (334 Bytes) » 车东[Blog^2]
Switchy! is a proxy manager for Google Chrome, it allows users to manage and switch between multiple proxy profiles quickly and easily. You can create and modify proxy profiles using a very simple interface, and changes the current proxy configuration of Chrome and Internet Explorer in the same time in one click. 很好很强大;
19:05 太阳升起 太阳落下 » DBA notes
09:01 终于看了3D《阿凡达》 » Julia----瞬间与记忆在此过渡。。。。。。

  2010-01-25 Mon