MySQL(二十三)-加锁分析
参考文献
解决死锁之路 - 常见 SQL 语句的加锁分析
何登成–管中窥豹——MySQL(InnoDB)死锁分析之道
MySQL · 引擎特性 · InnoDB隐式锁功能解析
Locks Set by Different SQL Statements in InnoDB
MySQL技术内幕 InnoDB存储引擎
27.12.13.1 The data_locks Table
MySQL InnoDB锁介绍及不同SQL语句分别加什么样的锁
一张图彻底搞懂 MySQL 的锁机制
mysql事务和锁 SELECT FOR UPDATE
MySQL 45 讲
MySQL 加锁规则!
加锁的目的
数据库中的锁: 确保并发更新场景下的数据正确性.
ACID中的I(Isolation)
锁要作的就是达到事务隔离的目的,即: 两个并发执行的事务T1和T2,如果T1正在修改某些行,那么,T2要并发 读取/修改/插入 满足T1查询条件的行时,T2就必须被阻塞,这是锁存在的根本原因.
加什么样的锁的判断因素
当前事务的隔离级别
SQL是一致性非锁定读(consistent nonlocking r ...
MySQL(二十二)-死锁分析
参考文献
何登成–管中窥豹——MySQL(InnoDB)死锁分析之道
手把手教你解数据库死锁
Mysql并发时经典常见的死锁原因,Mysql死锁问题分析及解决方法
并发insert死锁验证
死锁和死锁检测
当并发系统在不同现场出现循环资源依赖,涉及的线程都在等待别的线程释放资源时,就会导致这几个线程都进入无限等待状态,称为死锁.
死锁出现的条件
多个并发事务(两个或者两个以上的事务);
每个事务都持有锁(或者是已经在等待锁);
每个事务都需要再继续持有锁(为了完成事务逻辑,还必须更新更多的行);
事务之间产生加锁的循环等待,形成死锁.
若A事务需要B的资源,B事务需要A的资源,这就是典型的AB-BA死锁.
死锁的危害
死锁,即表明有多个事务之间需要互相争夺资源而互相等待。
如果没有死锁检测,那么就会互相卡死,一直耗死
如果有死锁检测机制,那么数据库会自动根据代价来评估出哪些事务可以被回滚掉,用来打破这个僵局
所以说:死锁并没有啥坏处,反而可以保护数据库和应用
那么出现死锁,而且非常频繁,我们应该调整业务逻辑,让其避免产生死锁方为上策
MySQL出现死 ...
MySQL(二十一)-锁分类
参考文献
MySQL锁系列(一)之锁的种类和概念
15.7.1 InnoDB Locking
MySQL · 引擎特性 · InnoDB隐式锁功能解析
MySQL 中锁的各种模式与类型
MySQL技术内幕 InnoDB存储引擎
15.6.1.6 AUTO_INCREMENT Handling in InnoDB
锁的种类
在数据库中,通常使用锁机制来协调多个线程并发访问某一资源.MySQL的锁类型分为表锁和行锁,表示对整张表加锁,主要用在DDL场景中,也可以由用户指定,主要由server层负责管理;
而行锁指的是锁定某一行或几行,或者是行与行之间的间隙,行锁由存储引擎管理,例如最常使用的InnoDB.
表锁占用系统资源小,实现简单,但锁定粒度大,发生锁冲突概率高,并发度比较低.行锁占用系统资源大,锁定粒度小,发生锁冲突概率低,并发度比较高.
InnoDB将锁分为**锁模式(lock_mode)和锁类型(lock_type)**两类.锁模式通常和锁类型结合使用.
锁类型描述了锁的粒度,也就是把锁具体加到什么地方.
锁类型包括表锁和行锁,而行锁还细分为记录锁、间隙锁、插 ...
运维-离线安装nvidia-docker2
离线安装nvidia-docker2
容器中要用GPU资源,就需要安装NVIDIA Container Toolkit,按照官网的步骤很容易安装,但如果不能连外网,就需要离线安装
[ ] 安装好Docker
[ ] 安装好nvidia driver
查看系统版本
123456root@dncloud-suat:/home/dntech/tools# lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 18.04.6 LTSRelease: 18.04Codename: bionic
下载安装包
下载安装包libnvidia-container1_1.9.0-1_amd64.deb
libnvidia-container/stable at gh-pages · NVIDIA/libnvidia-container
下载安装包libnvidia-container-tools_1.9.0-1_amd64.deb
libnvidia-container/sta ...
网络基础(五)-IP协议
参考文献
IP-rfc791
CIDR-rfc4632
趣谈网络协议
IP协议
主要目的是解决寻址和路由问题,以及如何在两点之间传送数据包.
IP协议使用“IP 地址”的概念来定位互联网上的每一台计算机.
不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务.如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端.任何要求的可靠性必须由上层来提供(如TCP).
无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息. 每个数据报的处理是相互独立的.这也说明,IP数据报可以不按发送顺序接收.如果一信源向相同的信宿发送两个连续的数据报(先是 A,然后是B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达.
IP地址
IP地址的规则中,网络号和主机号连起来总共32比特.通过子网掩码来区分网络号和主机号
子网掩码为1的部分为网络号,子网掩码为0的部分表示主机号.
IP地址的主机号: ...
网络基础(四)-UDP协议
参考文献
编程必备基础 大话HTTP协议[慕课]
趣谈网络协议
WireShark数据包分析实战(第三版)
TCP-RFC793
TCP/IP详解 卷1: 协议
图解网络-小林coding
UDP-RFC768
UDP
UDP头部格式
123456789101112130 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | | Length | Checksum | +--------+--------+--------+--------+ | ...
DICOM-dcm4che使用
参考文献
环境说明
依赖以及依赖版本
123456789101112131415161718192021222324252627282930313233343536<properties> <!-- DICOM相关 --> <dcm4che.version>5.23.3</dcm4che.version></properties><dependencyManagement> <dependencies> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-core</artifactId> <version>${dcm4che.version}</version> <exclusions&g ...
运维-禁止UbuntuServer自动休眠
参考文献
How To: Disable Sleep on Ubuntu Server
禁止Ubuntu server 自动休眠
IDC机房机器重启20分钟左右会自动断开连接,网络就直接连接不上
查看系统日志
1234567Mar 7 07:30:54 dn-idc102 NetworkManager[1935]: <info> [1646638254.4260] manager: sleep: sleep requested (sleeping: no enabled: yes)Mar 7 07:30:54 dn-idc102 NetworkManager[1935]: <info> [1646638254.4262] manager: NetworkManager state is now ASLEEPMar 7 07:30:54 dn-idc102 ModemManager[2048]: <info> [sleep-monitor] system is about to suspendMar 7 07:30:54 dn- ...
工具-JMH官方示例(一)
参考文献
Simples
官方样例(1~12)
Hello World
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104/* * Copyright (c) 2014, Oracle America, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code mu ...
工具-JMH官方示例(二)
参考文献
Simples
官方样例(13~end)
RunToRun
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129/* * Copyright (c) 2014, Oracle America, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that ...