求助:数据库并发访问问题

06-07-14 hakusen
目前负责的项目出现了一个比较大的性能问题,请高手指点一二。

1 目的:服务利用可否认证

2 处理概要:在一定时间间隔内,对是否可以提供服务进行认证。

例:服务A 每小时可以提供3次服务,当用户通过web申请服务A的时候,根据1小时内的服务A的履历来判断可否向用户提供A服务。

3 原实现方法: 出于并发的考虑,在查询履历前判断履历表是否在锁状态。如果不在则将表读锁定然后判断-〉写履历-〉解锁。如果在锁状态则等待-〉重试、、 直到许可或TimeOut

4 问题:最近随着对应服务的增多,用户人数的增加,TimeOut发生的频率暴增。1个履历表对应近千种服务,一种服务申请中,其他服务的请求都要等待。。。

请问如何解决这个问题,行锁的话发生死锁的可能性?还是有其他好办法?

系统环境:J2EE + MySql

猜你喜欢