这个是我之前在项目组里面,有一个功能模块写了一个很复杂的sql存储过程,每次做业务都调用存储过来处理逻辑。 当多人同时做业务调用这个存储过程的时候,页面没法响应一直卡死在哪里,后面请教过专业的dba排查过问题,是存储过程里面的某部分insert,update操作导致死锁了。 现在讲排查死锁 ...
为什么都说HashMap是线程不安全的呢 它在多线程环境下,又会发生什么情况呢 resize死循环 我们都知道HashMap的初始容量是 ,一般来说,当插入数据时,都会检查容量有没有超过设定的thredhold,如果超过容量,就需要增大Hash表的尺寸,但是这样一来,整个Hash表内的元素都需要被重新计算一次。这叫rehash,成本相当的大。 void resize int newCapacit ...
2018-05-31 07:45 0 816 推荐指数:
这个是我之前在项目组里面,有一个功能模块写了一个很复杂的sql存储过程,每次做业务都调用存储过来处理逻辑。 当多人同时做业务调用这个存储过程的时候,页面没法响应一直卡死在哪里,后面请教过专业的dba排查过问题,是存储过程里面的某部分insert,update操作导致死锁了。 现在讲排查死锁 ...
作为一个社交类的 App ,我们有很多操作都会同时发生,为了确保数据的一致性,会采用数据库的事物。 比如现在我们有一个点赞操作,点赞成功后,需要更改文章的热度。以下是 SQL 语句: INSERT ...
之前写了一篇博客 http://leihuang.org/2015/07/22/concurrence-lock/ 就是如何利用乐观锁来解决并发问题,但是项目推到线上后就报错了,如下 -08-13 15:12:44 [ERROR ...
529907491select sid,serial# from v$locked_objectSELECT bs.username "Blocking User", bs.username " ...
问题描述: 线上一个服务的突然挂了,无法被调用,查看该服务日志发现Dubbo的线程池全满了: 没有多少访问量,但是线程却猛增,猜测可能是哪里出现了死循环或者哪里发生了死锁。 首先,检测一下服务器的CPU使用量,发现在正常范围内,基本上可以排除哪里出现了死循环。 先找出该服务的进程 ...
【前言】 遇到 oracle 异常 和 解决实践 系列文章 整理分享 杂症一、oracle死锁 一、症状: 执行SQL或程序时,程序没有响应或SQL执行一直处于执行状态,没有成功,也没有报错。 二、病理: 当对数据库某个表的某一记录做更新或删除等操作,执行完毕后该条语句不提 ...
1.监控日志 通过监控发现如下异常,尾随其后的还有报错相应的堆栈信息,指出了具体是哪个SQL语句发生了死锁 通过日志查看代码,觉得不大可能是同一个事务并发执行导致的死锁 2.查看隔离级别 业务代码有可能使用默认的隔离级别,默认的级别就是全局的隔离级别;业务也可能设置了当 ...
线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统 ...