- 2
- 0
- 约4.56千字
- 约 25页
- 2017-08-25 发布于广东
- 举报
Transaction 使用事务的动机1-原子操作 try{ //从帐号1取钱 }catch(Exception e){ return; } try{ //存入账号2 catch(Exception e){ //将钱存回账号1 return; } 动机2-网络故障 例如银行帐号分布在多层部署环境,当网络或及其异常时,仅仅会抛出异常,但从异常中不能得到更深入的信息。可能在取款操作前出现问题,也可能取款后才出现问题。客户不知道账号到底有多少钱。 数据库同样可以出现问题。 异常不知出现在网络还是数据库? 异常处理机制远远不够。 动机3-多用户共享数据 多个服务器维护单个数据库的大量持久化数据,可能同时修改同一数据库的数据。 事务模型 平面事务 由一系列操作构成,形成原子行为。事务结束时,提交或回滚事务。All-or-nothing 嵌入式事务 旅行商问题 购买火车票boston –new york 购买飞机票new york -london 购买热气球票london-paris paris没有外出航班 嵌入式事务允许将子事务嵌入到其它事务中,一个顶级事务由若干子事务组成。子事务可以独立会滚。 分布式平面事务 同一事务涉及到多个服务器 完成对多个RDBMS更新 2PC Two-phase commit protocal 阶段1。Before commit消息
原创力文档

文档评论(0)