最小化回滚代价的算法

V. Hadzilacos
{"title":"最小化回滚代价的算法","authors":"V. Hadzilacos","doi":"10.1145/588111.588128","DOIUrl":null,"url":null,"abstract":"0. Introduction Most automatic crash recovery mechanisms for database systems are based on the concept of transaction commitment. Speaking very informally, when the system designamtes a transaction to be committed, it \"promises\" to install in the database all the updates effected by that transaction. Put another way, should a crash occur after a transaction has become committed, the transaction may not be restarted. If, however, a _ crash occurs before a transaction has become committed, that transaction must be restarted. Several mechanisms that achieve this behavior have been proposed by database system designers (e.g. [R 751, [Lo 771, [G 781, [Li 791). In all these systems, when a transaction is restarted, it is \"rolled back\" all the way to the beginning. One exception to this rule is System-R which allows to roll an uncommitted transaction back to an earlier \"savepoint\", which is not necessarily its beginning [A 761. In this paper we investigate the problem of finding the optimal set of savepoints (one per transaction) to which uncommitted transactions executing concurrently must be rolled back after a crash, so that the recovery cost is minimized. This paper is organized as follows. Section 1 informally motivates the problem. In Section 2 we present a more formal model of transaction execution in terms of which our results are stated and proved. In Section 3 we give an algorithm for the problem under consideration and prove its correctness and optimality. In many environments, cascading restarts are considered intolerable, and sufficiently restrictive schedulers are used Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the ,title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. to prevent them. In such environments the problem dealt with in this paper has a trivial solution. This issue is discussed in Section 4. 1. The Problem-We consider a database system in which transactions operate on the database concurrently. The system periodically takes \"transaction save-points\" for the transactions currently active. A transaction savepoint involves saving the current state of a transaction in non-volatile storage. What exactly constitutes the \"current state\" of a transaction depends on details that we do not care to …","PeriodicalId":126896,"journal":{"name":"Proceedings of the 1st ACM SIGACT-SIGMOD symposium on Principles of database systems","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1982-03-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":"{\"title\":\"An algorithm for minimizing roll back cost\",\"authors\":\"V. Hadzilacos\",\"doi\":\"10.1145/588111.588128\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"0. Introduction Most automatic crash recovery mechanisms for database systems are based on the concept of transaction commitment. Speaking very informally, when the system designamtes a transaction to be committed, it \\\"promises\\\" to install in the database all the updates effected by that transaction. Put another way, should a crash occur after a transaction has become committed, the transaction may not be restarted. If, however, a _ crash occurs before a transaction has become committed, that transaction must be restarted. Several mechanisms that achieve this behavior have been proposed by database system designers (e.g. [R 751, [Lo 771, [G 781, [Li 791). In all these systems, when a transaction is restarted, it is \\\"rolled back\\\" all the way to the beginning. One exception to this rule is System-R which allows to roll an uncommitted transaction back to an earlier \\\"savepoint\\\", which is not necessarily its beginning [A 761. In this paper we investigate the problem of finding the optimal set of savepoints (one per transaction) to which uncommitted transactions executing concurrently must be rolled back after a crash, so that the recovery cost is minimized. This paper is organized as follows. Section 1 informally motivates the problem. In Section 2 we present a more formal model of transaction execution in terms of which our results are stated and proved. In Section 3 we give an algorithm for the problem under consideration and prove its correctness and optimality. In many environments, cascading restarts are considered intolerable, and sufficiently restrictive schedulers are used Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the ,title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. to prevent them. In such environments the problem dealt with in this paper has a trivial solution. This issue is discussed in Section 4. 1. The Problem-We consider a database system in which transactions operate on the database concurrently. The system periodically takes \\\"transaction save-points\\\" for the transactions currently active. A transaction savepoint involves saving the current state of a transaction in non-volatile storage. What exactly constitutes the \\\"current state\\\" of a transaction depends on details that we do not care to …\",\"PeriodicalId\":126896,\"journal\":{\"name\":\"Proceedings of the 1st ACM SIGACT-SIGMOD symposium on Principles of database systems\",\"volume\":\"9 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1982-03-29\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"16\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 1st ACM SIGACT-SIGMOD symposium on Principles of database systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/588111.588128\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 1st ACM SIGACT-SIGMOD symposium on Principles of database systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/588111.588128","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16

摘要

0. 大多数数据库系统的自动崩溃恢复机制都是基于事务提交的概念。非常非正式地说,当系统指定要提交的事务时,它“承诺”在数据库中安装由该事务影响的所有更新。换句话说,如果在事务提交后发生崩溃,则可能不会重新启动事务。但是,如果在事务提交之前发生崩溃,则必须重新启动该事务。数据库系统设计者已经提出了几种实现这种行为的机制(例如[r751, [Lo 771, [G 781, [Li 791])。在所有这些系统中,当事务重新启动时,它会一直“回滚”到开始。此规则的一个例外是System-R,它允许将未提交的事务滚回到较早的“保存点”,这不一定是它的开始[A 761]。在本文中,我们研究了在崩溃后并发执行的未提交事务必须回滚到的最佳保存点集(每个事务一个)的问题,从而使恢复成本最小化。本文组织如下。第1部分非正式地激发了这个问题。在第2节中,我们提出了一个更正式的事务执行模型,根据这个模型我们的结果被陈述和证明。在第三节中,我们给出了一个算法,并证明了它的正确性和最优性。在许多环境中,级联重新启动被认为是不可容忍的,并且使用了足够严格的调度程序,允许免费复制本材料的全部或部分,前提是这些副本不是为了直接的商业利益而制作或分发的,ACM版权声明、出版物标题和出版日期出现,并通知复制是由计算机械协会许可的。以其他方式复制或重新发布需要付费和/或特定许可。为了防止他们。在这样的环境中,本文处理的问题有一个简单的解决方案。这个问题将在第4节中讨论。1. 问题—我们考虑一个数据库系统,其中事务并发地在数据库上操作。系统定期为当前活动的事务获取“事务保存点”。事务保存点涉及将事务的当前状态保存在非易失性存储中。事务的“当前状态”究竟由什么构成,取决于我们不关心的细节……
本文章由计算机程序翻译,如有差异,请以英文原文为准。
An algorithm for minimizing roll back cost
0. Introduction Most automatic crash recovery mechanisms for database systems are based on the concept of transaction commitment. Speaking very informally, when the system designamtes a transaction to be committed, it "promises" to install in the database all the updates effected by that transaction. Put another way, should a crash occur after a transaction has become committed, the transaction may not be restarted. If, however, a _ crash occurs before a transaction has become committed, that transaction must be restarted. Several mechanisms that achieve this behavior have been proposed by database system designers (e.g. [R 751, [Lo 771, [G 781, [Li 791). In all these systems, when a transaction is restarted, it is "rolled back" all the way to the beginning. One exception to this rule is System-R which allows to roll an uncommitted transaction back to an earlier "savepoint", which is not necessarily its beginning [A 761. In this paper we investigate the problem of finding the optimal set of savepoints (one per transaction) to which uncommitted transactions executing concurrently must be rolled back after a crash, so that the recovery cost is minimized. This paper is organized as follows. Section 1 informally motivates the problem. In Section 2 we present a more formal model of transaction execution in terms of which our results are stated and proved. In Section 3 we give an algorithm for the problem under consideration and prove its correctness and optimality. In many environments, cascading restarts are considered intolerable, and sufficiently restrictive schedulers are used Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the ,title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. to prevent them. In such environments the problem dealt with in this paper has a trivial solution. This issue is discussed in Section 4. 1. The Problem-We consider a database system in which transactions operate on the database concurrently. The system periodically takes "transaction save-points" for the transactions currently active. A transaction savepoint involves saving the current state of a transaction in non-volatile storage. What exactly constitutes the "current state" of a transaction depends on details that we do not care to …
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信