文档章节

事务与锁

o
 ovirtKg
发布于 2017/03/24 13:59
字数 402
阅读 12
收藏 0

事务无非就是事务中的很多操作,保证其是原子的操作,要么全部成功,要么全部失败。事务的特性ACID。

 

对于原子性,一致性和持久性 一般是通过日志来完成

而对于事务之前的关系,也就是并发访问下事务的隔离性。是通过锁来实现的。

 

1、单机事务

而锁又可以分为

x锁(排他锁) 读写锁  行锁 表锁  

在并发访问下要保证安全性但同时也要保证性能。 因此在不同场景下适用于不同的锁

读写锁    读多写少,只有读读可并行,其它不可并行

还有一种方案  mvcc  解决  读写,写读、读读的并发。

 

2、分布式事务

而对于分布式事务的解决方案中

a) 共享磁盘  写性能(同步写时的缓存)扩展,(同步开销大) 

b) 2pc +  mvcc , 

      2pc 性能低,且在最后提交阶段 ,失败时,业务有相应的重传以及消费端的幂等性(可通过主记录日志实现)

       mvcc最关键的在于 时间戳,不同机子时间同步问题

                 postgresql   一台机器分配时间戳(单点,性能 )

                google 的truetimeapi   原子钟+gps)

 

c)还有就是不保证强一致的解决方案 

非事务消息, 消息队列,最终强一致

1)本地事务开始前发送一个perpared 消息到MQ

2)本地事务commit后,发送commit消息,若未收到,询问当前状态。如此保证最终一致。

© 著作权归作者所有

共有 人打赏支持
下一篇: copyOnWrite
o
粉丝 3
博文 57
码字总数 48798
作品 0
景德镇
私信 提问

暂无文章

单元测试

右键方法 Go To --> Test,简便快速生成测试方法。 相关注解 @RunWith(SpringRunner.class) 表示要在测试环境中跑,底层实现是 jUnit测试工具。 @SpringBootTest 表示启动整个 Spring工程 @A...

imbiao
昨天
0
0
欧拉公式

欧拉公式表达式 欧拉公式的几何意 cosθ + j sinθ 是个复数,实数部分也就是实部为 cosθ ,虚数部分也就是虚部为 j sinθ ,对应复平面单位圆上的一个点。 根据欧拉公式和这个点可以用 复指...

sharelocked
昨天
2
0
burpsuite无法抓取https数据包

1.将浏览器和burpsuite的代理都设置好 2.在浏览器地址栏输入: http://burp 3.下载下面的证书,并将证书导入浏览器 cacert.der

Frost729
昨天
2
0
JeeSite4.x 消息管理、消息推送、消息提醒

实现统一的消息推送接口,包含PC消息、短信消息、邮件消息、微信消息等,无需让所有开发者了解消息是怎么发送出去的,只需了解消息发送接口即可。 所有推送消息均通过 MsgPushUtils 工具类发...

ThinkGem
昨天
8
0
OpenML

https://www.openml.org/search?type=data

shengjuntu
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部