・关于大(巨)量信息并发对数据库操作的解决方案・

我的一个项目需要应对巨量信息并发对数据库操作的问题。

我的想法:

1:写一个类似中间件的后台控件,把“采集点”的大量并发信息写入缓存中,等满足一定时间和数据量的时候再统一批量提交数据库。
2:在这个过程中对于查询的要求先在缓存中查找,如果满足返回客户端,不满足再查询数据库返回客户端同时把信息暂存缓存中。
3:对于“采集点”的大量插入请求,在缓存中对数据库的主要采集表做表映射,并按照数据库对字段的要求做数据限制。在大量数据要求插入数据库的时候,先暂存缓存中。


我的想法是否可行,技术复杂度如何,细节如何实现,请各位高人指点。谢谢!

welcome.yygj@yahoo.com.cn

你的意思主要是将大量并发信息写入缓存中。

有一点需要注意:对内存中数据写操作,需要注意多线程的并发问题,也就是同一个时刻你只能允许一个线程对同一个数据进行修改,因此,你需要对这个数据操作上锁,一旦上锁,又会引起多线程死锁问题,非常棘手。

建议使用CMP或Hibernate之类的框架,再结合数据库的悲观锁设定,再对持久层框架进行相应的配置。

因为Hibernate3的完整事务特性要晚于EJB2 CMP出现,研究CMP事务特性有助于对持久层框架事务特性有一个完整的掌握,而且资料比较多。