在测试Cobar的过程中发现了一个问题,就是当一个session执行了lock table xxx write后,其他session包括该session都查询不了其他表了,直到有一个session执行了unlock tables;简例如下:

session1:

mysql> create table t (id int primary key)engine=innodb;

Query OK, 0 rows affected (0.08 sec)

session2:

lock table t write;

session1:

mysql> select * from sbtest limit 1;

ERROR 1100 (HY000): Table 'sbtest' was not locked with LOCK TABLES

session2:

unlock tables or quit;

session1:

can select other tables;

但是不同的session却可以保证事务的隔离性,这是为什么呢?其实答案就在这句话里;

默认情况下MySQL的autocommit=1,并且使用Cobar默认情况是初始化一个共享后端连接;

当一个session执行lock table write返回后,这个后端连接会被释放到连接池里(MySQLChannel)等待被重用,这时如果再有其他session执行查询的话拿到的连接其实是lock tablewrite的状态,所以才有上面的那个现象;

要work around也很简单,就是在执行lock tablewrite之前执行setautocommit=0,这样这个连接不会释放回去直到提交;

转载于:https://blog.51cto.com/boylook/1298646

一个关于Cobar 的释疑相关推荐

  1. 记一次使用Cobar踩到的坑

    起因 起因是因为日志里经常报出锁等待超时的错误,并且这个是环环相扣的,一个锁等待会直接引发另外的锁等待,所以危害非常严重,影响非常深远.寻找原因发现是C3P0报出了DEADLOCK,如下图所示: 分析 ...

  2. Cobar的使用与心得(持续更新)

    关于淘宝Cobar中间件使用中一些问题总结,会在使用中不断完善该文档 1.LOAD DATA LOCAL FILE ...不支持 mysql> load data local infile &q ...

  3. Scala在挖财的应用实践

    编者按:本文是根据ArchSummit大会上挖财资深架构师王宏江的演讲<Scala在挖财的应用实践>整理而成. \\\\ 这次分享有三个方面,一是介绍一下挖财当前的开发情况和后端的架构, ...

  4. 淘宝网架构分享总结[转]

    http://www.cnblogs.com/zhwl/p/3640883.html 上周六参加了一场由淘宝的架构师,曾宪杰先生主讲的淘宝网架构分享.然后马上就出差了,一直没来得及总结,今晚比较有空, ...

  5. java---解惑--

    Java谜题1--表达式谜题 谜题1:奇数性 下面的方法意图确定它那唯一的参数是否是一个奇数.这个方法能够正确运转吗? public static boolean isOdd(int i){  ret ...

  6. [日常] 面试知识点总结(持续更新)

    数据结构和算法:物理结构和逻辑结构1.逻辑结构(集合结构,线性结构,树形结构,图形结构)2.物理结构一般是讲内存,顺序存储结构,链式存储结构浅谈算法中,高斯算法从1加到100,循环的话是100次,高斯 ...

  7. 堆栈计算机的原理和实现

    堆栈计算机的原理和实现 原书< Stack Computers: the new wave > (原书封面) 原作者 Philip J. Koopman, Jr. 编译者 赵宇 张文翠 这 ...

  8. Python3 OpenCV4 计算机视觉学习手册:6~11

    原文:Learning OpenCV 4 Computer Vision with Python 3 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 计算机视觉 译文集] ...

  9. 【题库】计算机二级选择题

    一.公共基础知识 考10分 二.计算机基础 考4分 三.Office操作 考6分 一.公共基础知识 考10分 1.下列叙述中正确的是 A)所谓算法就是计算方法 B)程序可以作为算法的一种描述方法 C) ...

最新文章

  1. 用 Scikit-Learn 和 Pandas 学习线性回归
  2. iOS之深入解析CFRunloop的多线程隐患
  3. python官网网址是什么意思_大家都是怎么部署python网站的?
  4. mp3播放程序c语言,Go语言音乐播放器
  5. 不会装系统?有这篇就够了!
  6. postman-SSL证书问题-支持HTTPS请求
  7. vue提交mutation_为什么Vuex中必须要通过commit提交mutation?
  8. Jzoj3883 线段树
  9. 三角形外接圆圆心公式
  10. mdf文件修复工具 专业修复sql server数据库
  11. IPv6实验5:IPv4到IPv6的过渡
  12. 个税计算器python代码_用python写一个北京市的个税计算器
  13. eclipse将安卓项目commit至github本地仓库后,项目bin文件夹下不生成apk且运行报错
  14. KBEngine warring项目源码阅读(三) 实体文件与Account处理
  15. 惠民工程(2013中南大学研究生复试[最小生成树])
  16. select语句的逻辑执行顺序,你知道吗?
  17. 对php的感受100字_团建活动后的感想50字-100字《5篇》
  18. sae 本地 php,如何在 SAE 下操作本地IO
  19. 二极管的钳位和限幅比较
  20. 乘法逆元 +数论分块 +平方和公式

热门文章

  1. msyql开启慢查询以及分析慢查询
  2. A3D8的水–WaterMaterial for Alternativa3D 8
  3. 给大家展示一下最近在Yeslab安全实验室测试的设备!
  4. golang-context
  5. 常见的垃圾回收器算法有哪些,各有什么优劣?
  6. 基于日志的交换机故障预测
  7. RabbitMq(二) Connection、Channels、Exchanges、Queues 等基本概念介绍
  8. jsch上传下载文件名称中文乱码
  9. 集合练习。学生信息包括学号、姓名、出生日期、性别。把N个学生的信息放入一个集合中。可以根据学号,对学生信息进行检索。并可以根据生日进行排序输出。
  10. 一文看尽 JVM GC 调优