摘要:在 work log 2020.4.28中,我们使用jdk动态代理处理方法的事务增强 图1 问题的引出 根本原因:动态代理和cglib,会丢掉被代理类成员变量和方法上的注解 起先,我们禁止被增强的类里面使用注解注入依赖,代码会自动审核这种情况 private static final class T
阅读全文
摘要:本质就是利用无限循环run的thread➕BlockingQueue手写阻塞队列 2020.12.6 补充 务必注意线程池的有效shutdown机制,这关系到线程池被有效回收,具体可见:匿名野线程池导致oom 2021.3.9 本例子中,当没有任务时,并没有用BlockingQueue.take阻塞
阅读全文
摘要:结合对象头 https://mp.weixin.qq.com/s/KFgAY3g4tfuaKumVswID4A
阅读全文
摘要:https://blog.csdn.net/csd753111111/article/details/100428512 脚本: #cat mysql_qps.sh #!/bin/bash MYSQL_CON="/usr/local/mysql/bin/mysql" TIME="$1" OLD_QU
阅读全文
摘要:在只读事务与普通读 work log 中假设了一种死锁,非mysql死锁,而是jvm死锁 CREATE TABLE `mytest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`
阅读全文
摘要:0 原则 0.1 前端(浏览器时间)-json序列化-jdbcurl(服务器内存,db时区相对于服务器及jvm时区)-db(db时间) 0.2 时间戳在地球的每一个角落都是相同的,但是在相同的时间点会有不同的表达方式,所以有了另外一个时间概念,叫时区。 结论: 时间戳代表绝对时间 mysql db
阅读全文
摘要:https://www.zhihu.com/question/51513268/answer/648362223 设想一下,假如没有这道“关卡”检查表锁被是否被占有, 而是直接去获取行锁,会是什么结果? 可以看到, 即使表X锁已经被事务A持有,事务B仍然可以获得行锁,这显然是错误的. 没有意图锁以后
阅读全文
摘要:1 https://www.cnblogs.com/gimin/p/5466247.html 尽量避免事务,缩小事务范围(避免gap锁)(个人认为) 按表顺序,记录id顺序依次访问 直接申请足够级别的锁,即排他锁,而不应先申请共享锁,更新时再申请排他锁,因为当用户申请排他锁时,其他事务可能又已经获得
阅读全文
摘要:https://www.jianshu.com/p/b3c4dd85901e 回调函数比较通用的解释是,它是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事
阅读全文
摘要:import java.util.concurrent.ExecutionException; abstract public class MyFuture { private volatile Object returnVal; private volatile Boolean isExcepti
阅读全文
摘要:有一个需求,要在内存里缓存当前用户信息,我们不被允许直接访问session,原有框架只暴露了一个App对象,我们想把用户信息挂靠该对象,我们需要确定: 1 该对象是否用户相关,还是用户无关;如果是用户无关,哪个用户进来,框架暴露同一个app对象,那么自然无法使用2 用户下线后,该对象是否会回收,否则
阅读全文
摘要:只读事务为了扩大事务的范围(single sql -》 java function),解决多次select不相等(即不可重复读)的问题;相当于在外面盖了一个整体的rr的隔离级别 注意隔离级别不是只读事务的目标,因为即使autocommit true,也有事务隔离级别可单独设定,只不过是对于singl
阅读全文
摘要:1 设 d个地区,每个地区c个集群,每个集群b个库,每个库a个表 index=hash % (a*b*c*d) 地区所在:index/(a*b*c) index=index % (a*b*c) 集群所在:index/(a*b) index=index % (a*b) 库所在:index/(a) in
阅读全文
摘要:1 mac安装mat --data 可写路径 2 /** * https://www.cnblogs.com/silyvin/p/12640045.html */ public class MAT { // -Xmx100m -XX:+PrintGCDetails -XX:+HeapDumpOnOu
阅读全文