c-jdbc-方便的实现RAIDb

<!--StartFragment-->



 <!--StartFragment-->cjdbc ( http://c-jdbc.objectweb.org/ ) 是一个open source的数据库集群中间件,任何基于jdbc的应用都可以通过它透明地访问数据库集群,它可以进行各个节点之间的数据复制,并且可以实现各个节点的查询负载均衡。通过这样的软件,偶们可以方便的实现RAIDb - Redundant Array of Inexpensive Database 廉价数据库冗余阵列 (借鉴了RAID的想法,真的很cool) 。

以前偶们的系统是基于hibernate和mysql,虽然hibernate提供了cache, lazy load这些对于提高性能有很大帮助的功能,但是随着用户的增加,数据的增加,数据库server的loading还是会慢慢地上升。现在这个年头,让客户增加硬件的投资远比增加软件投资容易,偶们完全可以利用cjdbc,增加几台廉价的PC做RAIDb.

由于cjdbc是一个jdbc的实现,所以偶们原先的应用不需要做任何的代码改动,只需要更换配置文件即可。

cjdbc有几种RAIDb的机制可以选择(只说3种偶了解的):
1. RAIDb-0
数据库中单个的table只分布在单个节点,没有任何的冗余阵列,但是不同的table可以分散在不同的节点,这样偶们可以把某些需要频繁查询的表分布在比较强劲的,loading比较轻的PC上。这种机制带来了查询性能的稍许提高,但是没有提供容错处理 (fault tolerance)


 

2. RAIDb-1
完全镜像处理机制,每个节点上都有完整的数据库结构,这种方式提供了最好的容错处理,并且通过设置合理的Loading Balance策略,可以带来查询性能相当好的提高。但是由于对于任何的写操作(create/update/delete),需要在各个节点上进行传播复制,写操作就会比原来慢一些了。


 

3. RAIDb-2
对于RAIDb-0和RAIDb-1的一个折中,看一下示意图就明白它了:


 

为了避免cjdbc controller成为容错处理中的single point of failure,cjdbc还提供了controller replication,它利用JGroups ( http://www.jgroups.org/ )做各个cjdbc controller节点的通讯 (这个偶没有试验过,有兴趣的可以试试看)

偶们使用cjdbc的实际项目目前有3个mysql database的节点(都是普通的PC),读/写操作的比例很高,cjdbc非常合适这种项目,随着并发用户人数的增加,用户只需要花个4000RMB左右的钱,购买一台PC加入到集群中,就可以应付了,确实是一个廉价的解决方案,:) <!--EndFragment-->

<!--EndFragment-->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值