许超前的博客 - A longker in the Earth

April 3, 2010

数据库技术大会结束,<<数据访问层开发实践>>演讲PPT下载

Filed under: Daily Life — 许超前 @ 10:13 pm

9 Comments »

  1. DAL的野心太大了。。。
    什么都要支持。。。

    Comment by xLight — April 4, 2010 @ 3:58 am

  2. * 老高说过 :“让主从去死吧”
    * dal2.0的“cache与DAL在同一个进程”、“GC很高效”
    看来都被打破了

    还要支持“分布式事务”

    Comment by xLight — April 4, 2010 @ 5:02 am

  3. PPT写的不错,讲述了DAL发展,变化历程。我比较关心的是你们的DAL Server如何处理负载,失效转移,高可用的,这些才是一个DAL在大型系统上的关键所在?

    Comment by Oscar — April 4, 2010 @ 10:09 am

  4. @xLight
    不是打破不打破的问题。

    一)关于主从问题。
    第一,老高说的话是有语境的。当时是在面对因主从带来的维护成本的增加,以及引入Dal带来的对主从需求的弱化的情况下发表的感慨。而且老高也强调,主从也许只是在备份需求下产生的附作用而已。不管怎么样,降低维护成本,都是大家共同的追求。
    第二,手机之家现在仍然没有采用主从。但是达到一定的量级以后,也许只有分布才是唯一的办法了。Dal必须在这件事情发生之前准备好。
    第三,Dal是一个通用的软件,我们希望用户花最少的代价来引入Dal。如果用户原来采用主从,引入Dal不需要改变系统结构,就可享受Dal带来的好处,何乐而不为?

    二)关于cache和gc问题
    “cache与DAL在同一个进程”不是什么过错,但要考虑缓存的量级,如果量级太大,不管是让JVM管理内存(JVM的GC机制确实已经比较成熟和高效),还是自己管理内存,对一个进程来说,终究都是瓶颈。只有外置才提供了很多可能。但是,我们要明白,外置意味着额外的通讯开销。所以我认为,最终将是一个综合的解决方案,就是引入两级缓存,进程内的缓存只保留最新最热的有限的条目,外置缓存可以尽情地载入尽可能多的条目。

    三)关于分布式事务
    我再强调一次,Dal是个通用的软件,不单单只是针对通常意义上的互联网应用。未来的(移动)互联网应用肯定会是一个细分+整合共存的局面,必定会有实时事务的需求。其实不说以后,就说现在,已经有这样的需求了。
    对于Dal来说,它提供了这样的一种特性,我们可以选择开启或关闭分布式事务。手机之家现在是选择关闭。

    Comment by 许超前 — April 4, 2010 @ 12:00 pm

  5. @Oscar
    不知道您说的是Dal Server本身的可用性问题,还是说Dal Server后端服务的可用性问题。那我就都说一下吧。

    一)Dal Server本身的可用性问题
    Dal2.2.x系列,已经支持Dal Server的分布了。客户端可以采用硬件,也可以采用软件来处理负载均衡、解决失效转移问题。我想您肯定知道memcached是怎么做到分布式的,Dal现在的做法和memcached类似。

    二)Dal Server后端服务的“可用性”问题
    检测后端服务的“可用性”,对Dal Server来说,是一种策略问题。很遗憾地告诉您,Dal Server现在的策略很简单:随机选择(当然每个节点可以配置不同的权重)。后续版本会提供其它的更有用的策略。

    Comment by 许超前 — April 4, 2010 @ 12:06 pm

  6. @许超前
    我也只是感慨一下。
    DAL的演变,颇有:“合久必分,分久必合”的感觉。。

    我还是更倾向于看到一个“能解决一部分问题”的简单的DAL,而不是一个“能解决全部问题”的、复杂的DAL

    Comment by xLight — April 4, 2010 @ 1:05 pm

  7. @xLight
    您说的很在理。任何一种技术都不可能解决所有的问题,都会有它的适用性、局限性。

    所以,软件有一个定位问题。Dal的定位,为访问数据提供一个简单易用的接口,这也是Dal这个项目的使命。单单这一句话,要做的事就太多了。我们不可能完成所有的事,我们只会选择那些对用户最有用的、最有意义的事。到目前为止,我认为Dal的每个特性都是必须的。

    每个人都希望“简单可依赖”,但问题是,应用在增长,数据在增长,我们面对的问题也在增长。原来简单的解决办法慢慢变得不再有效了,手段慢慢变得杂了,维护成本慢慢增加了。很多人都碰到同样的问题,这里面就存在着需求。这就是Dal这个项目的初衷。

    “简单实现“,不是目的;”简单访问“,才是目的。这也是数据访问层存在的根本原因。但简单的接口,往往意味着复杂的实现,所以,我们要有心理准备。

    Comment by 许超前 — April 4, 2010 @ 7:42 pm

  8. 我们曾经寄希望于Tungsten
    花了半年时间调整配置,测试,上线
    然后用了几个月,下线,再也不用了

    Comment by xLight — April 6, 2010 @ 3:05 pm

  9. 谢谢博主,收下了啊!

    Comment by 互动投影 — April 26, 2010 @ 9:40 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress, 京ICP备09047672号