发明名称 |
通过拆分过程执行自动重试事务 |
摘要 |
相对于在事务失败时允许该事务被自动重试的数据库运行该事务,从而使得该事务被自动重试的某些事务失败对接收作为执行该事务的结果的数据的实体不可见。通过标识将引起数据库状态的改变的语句来标识事务的第一语句集合。标识导致要向实体发送的数据被生成的第二语句集合。该方法进一步包括执行第一语句集合以改变数据库。该方法进一步包括与第一语句集合分开地运行第二语句集合,以生成要向实体发送的数据。 |
申请公布号 |
CN106030533A |
申请公布日期 |
2016.10.12 |
申请号 |
CN201580010207.X |
申请日期 |
2015.02.20 |
申请人 |
微软技术许可有限责任公司 |
发明人 |
C·S·弗里德曼;M·J·兹威林;E·伊斯梅尔 |
分类号 |
G06F9/46(2006.01)I;G06F17/30(2006.01)I |
主分类号 |
G06F9/46(2006.01)I |
代理机构 |
上海专利商标事务所有限公司 31100 |
代理人 |
罗婷婷 |
主权项 |
对于一个或多个事务,所述一个或多个事务各自由定义必须在原子上全部成功或全部失败的函数的语句集合定义,一种计算机实现的方法,包括将每一事务的执行划分成两个不同的阶段,其中在数据库服务器用一个或多个处理器执行的第一阶段期间,所述计算机实现的方法包括:通过标识不需要与客户端计算系统的交互并且在事务失败的情况下可被自动重试而无需客户端计算系统知晓所述失败的语句来标识所述事务的第一语句集合;通过标识在被执行时将导致要向所述客户端计算系统发送的数据被生成的语句来标识所述事务的第二语句集合;尝试一个或多个事务的所述第一语句集合的执行,并且在尝试所述第一语句集合的所述执行时,排除所述第二语句集合的执行;通过重新执行失败的事务的所述第一语句集合中的一个或多个语句来自动重试任何失败的事务,而无需使得所述客户端计算机系统知晓该失败的事务;在需要时使用失败的事务的自动重新执行来成功地执行一个或多个事务的所述第一语句集合,一个或多个事务的所述第一语句集合的成功执行在所述数据库服务器处改变所述数据库状态;以及在所述数据库服务器及其一个或多个处理器执行的第二阶段中,所述计算机实现的方法包括:对于其第一语句集合被成功执行的每一事务,分开地执行所述第二语句集合以生成要向所述客户端计算系统发送的数据,由此失败的并且已经被重试的事务对接收所生成的数据的所述客户端计算系统不可见。 |
地址 |
美国华盛顿州 |