MVCC如何理解
https://blog.csdn.net/DaiZZZZZ/article/details/89291046
- MVCC使得数据库读不会对数据加锁,select不会加锁,提高了数据库的并发处理能力;
- 借助MVCC,数据库可以实现RC,RR等隔离级别
不可重读 的mvcc(rr级别下特有)
session 1 | session 2 |
---|---|
select a from test; return a = 10 | |
start transaction; | |
update test set a = 20; | |
start transaction; | |
select a from test; return ? | |
commit; | |
select a from test; return ? |
-
隔离级别为 READ-UNCOMMITTED 情况下:
session 1 commit前后 session 2 去查看都会看到的是修改后的结果 a = 20 -
隔离级别为 READ-COMMITTED 情况下:
session 1 commit 前查看到的还是 a =10 , commit之后看到的是 a = 20 -
隔离级别为 REPEATABLE-READ, SERIALIZABLE 情况下:
session 1 commit前后 session 2 去查看都会看到的是修改后的结果 a = 10
为什么是三次握手
如果两次,那么B无法确定B的信息A是否能收到,所以如果B先说话,可能后面的A都收不到,会出现问题 。
如果四次,那么就造成了浪费,因为在三次结束之后,就已经可以保证A可以给B发信息,A可以收到B的信息; B可以给A发信息,B可以收到A的信息。
hashmap扩容rehash
2倍扩容
因此,我们在扩充HashMap的时候,不需要像JDK1.7的实现那样重新计算hash,只需要看看原来的hash值新增的那个bit是1还是0就好了,是0的话索引没变,是1的话索引变成“原索引+oldCap”,
spingmvc处理流程
Treemap如何使用
实现Comparator接口
阻塞非阻塞、同步异步
netty 与 同步、异步、阻塞、非阻塞
ConcurrentHashMap 1.7 1.8
1.7 分段锁segment +数组链表
1.8 cas+数组链表红黑树
https://www.cnblogs.com/huangjuncong/p/9478505.html
隔离级别spring如何添加
事务隔离级别 脏读 spring 测试
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
链表有环
https://www.cnblogs.com/kaituorensheng/p/3395347.html
redis集群有哪几种
数据库设计步骤
1)表结构、关联健确定
2)索引
3)数据量评估-分表分库
ArrayList & LinkedList
NIO如何理解
冒泡排序
用过什么设计模式 yet
HashMap和ConcurrentHashMap