广域系统中的复制调用

A. Bakker, M. Steen, A. Tanenbaum
{"title":"广域系统中的复制调用","authors":"A. Bakker, M. Steen, A. Tanenbaum","doi":"10.1145/319195.319215","DOIUrl":null,"url":null,"abstract":"In many object-oriented distributed systems a client invokes a method of a distributed object through a call on a local proxy of that object. If a client is replicated, such a call may possibly be done by several of its replicas. Consequently, what is conceptually a single method invocation may result in several identical calls on the same object. Such an invocation is said to be replicated, the individual calls are referred to as the copies of the invocation. The problems associated with replicated invocations are well known [3][4]. However, existing solutions depend on global coordination, or, for example, assume group communication is fast and efficient, so that they can be applied only in local-area networks. In this paper we present the problems associated with replicated invocations in the context of wide-area systems and present a new solution to these problems. Our solution allows massively and widely replicated objects to efficiently call other massively and widely replicated objects using replicated invocations. Our solution is scalable in the sense that it uses local communication whenever possible, requires no complete knowledge of group memberships and puts only a small load on replicas of the called object. For the moment we limit ourselves to a single replicated object making replicated invocations on a single replicated object. We assume that both calling and called object use active replication [6]. Nodes in the system are assumed to be fail-stop. Only state-modifying operations (write methods) are carried out by all replicas. Read methods are sent to a single (nearby) replica. For this purpose each proxy is (implicitly) connected to the nearest replica of the object it represents. Write methods modify only the (volatile) state variables of the object; we assume they have no other side effects. Write methods are guaranteed to be carried out by each replica in the same global order. The remainder of the paper is organized as follows. Section 2 describes the problems introduces by replicated invocations in a wide-area context. Section 3 gives an overview of our solution as it would operate in the absence of node failures. Section 4 describes the fault tolerance of the solution. Section 5 discusses related work and we finish by presenting conclusions and future work.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":"{\"title\":\"Replicated invocations in wide-area systems\",\"authors\":\"A. Bakker, M. Steen, A. Tanenbaum\",\"doi\":\"10.1145/319195.319215\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In many object-oriented distributed systems a client invokes a method of a distributed object through a call on a local proxy of that object. If a client is replicated, such a call may possibly be done by several of its replicas. Consequently, what is conceptually a single method invocation may result in several identical calls on the same object. Such an invocation is said to be replicated, the individual calls are referred to as the copies of the invocation. The problems associated with replicated invocations are well known [3][4]. However, existing solutions depend on global coordination, or, for example, assume group communication is fast and efficient, so that they can be applied only in local-area networks. In this paper we present the problems associated with replicated invocations in the context of wide-area systems and present a new solution to these problems. Our solution allows massively and widely replicated objects to efficiently call other massively and widely replicated objects using replicated invocations. Our solution is scalable in the sense that it uses local communication whenever possible, requires no complete knowledge of group memberships and puts only a small load on replicas of the called object. For the moment we limit ourselves to a single replicated object making replicated invocations on a single replicated object. We assume that both calling and called object use active replication [6]. Nodes in the system are assumed to be fail-stop. Only state-modifying operations (write methods) are carried out by all replicas. Read methods are sent to a single (nearby) replica. For this purpose each proxy is (implicitly) connected to the nearest replica of the object it represents. Write methods modify only the (volatile) state variables of the object; we assume they have no other side effects. Write methods are guaranteed to be carried out by each replica in the same global order. The remainder of the paper is organized as follows. Section 2 describes the problems introduces by replicated invocations in a wide-area context. Section 3 gives an overview of our solution as it would operate in the absence of node failures. Section 4 describes the fault tolerance of the solution. Section 5 discusses related work and we finish by presenting conclusions and future work.\",\"PeriodicalId\":335784,\"journal\":{\"name\":\"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications\",\"volume\":\"14 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1998-09-07\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"4\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/319195.319215\",\"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 8th ACM SIGOPS European workshop on Support for composing distributed applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/319195.319215","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4

摘要

在许多面向对象的分布式系统中,客户机通过调用分布式对象的本地代理来调用该对象的方法。如果一个客户端被复制,这样的调用可能由它的几个副本完成。因此,概念上的单一方法调用可能会导致对同一对象的几个相同调用。这样的调用被称为复制,单个调用被称为调用的副本。与复制调用相关的问题是众所周知的。然而,现有的解决方案依赖于全球协调,或者,例如,假设群体通信快速有效,因此它们只能应用于局域网。本文提出了广域系统中与重复调用相关的问题,并提出了一种新的解决方法。我们的解决方案允许大规模和广泛复制的对象使用复制调用有效地调用其他大规模和广泛复制的对象。我们的解决方案是可伸缩的,因为它尽可能使用本地通信,不需要完全了解组成员关系,并且只在被调用对象的副本上放置少量负载。目前,我们将自己限制为在单个复制对象上进行复制调用的单个复制对象。我们假设调用对象和被调用对象都使用活动复制[6]。假设系统中的节点是故障停止的。只有状态修改操作(写方法)由所有副本执行。Read方法被发送到一个(附近的)副本。为此,每个代理都(隐式地)连接到它所代表的对象的最近副本。写方法只修改对象的(volatile)状态变量;我们假设它们没有其他副作用。保证每个副本以相同的全局顺序执行写方法。本文的其余部分组织如下。第2节描述了广域上下文中复制调用所带来的问题。第3节概述了我们的解决方案,因为它将在没有节点故障的情况下运行。第4节描述了解决方案的容错性。第5节讨论了相关工作,最后提出了结论和未来的工作。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Replicated invocations in wide-area systems
In many object-oriented distributed systems a client invokes a method of a distributed object through a call on a local proxy of that object. If a client is replicated, such a call may possibly be done by several of its replicas. Consequently, what is conceptually a single method invocation may result in several identical calls on the same object. Such an invocation is said to be replicated, the individual calls are referred to as the copies of the invocation. The problems associated with replicated invocations are well known [3][4]. However, existing solutions depend on global coordination, or, for example, assume group communication is fast and efficient, so that they can be applied only in local-area networks. In this paper we present the problems associated with replicated invocations in the context of wide-area systems and present a new solution to these problems. Our solution allows massively and widely replicated objects to efficiently call other massively and widely replicated objects using replicated invocations. Our solution is scalable in the sense that it uses local communication whenever possible, requires no complete knowledge of group memberships and puts only a small load on replicas of the called object. For the moment we limit ourselves to a single replicated object making replicated invocations on a single replicated object. We assume that both calling and called object use active replication [6]. Nodes in the system are assumed to be fail-stop. Only state-modifying operations (write methods) are carried out by all replicas. Read methods are sent to a single (nearby) replica. For this purpose each proxy is (implicitly) connected to the nearest replica of the object it represents. Write methods modify only the (volatile) state variables of the object; we assume they have no other side effects. Write methods are guaranteed to be carried out by each replica in the same global order. The remainder of the paper is organized as follows. Section 2 describes the problems introduces by replicated invocations in a wide-area context. Section 3 gives an overview of our solution as it would operate in the absence of node failures. Section 4 describes the fault tolerance of the solution. Section 5 discusses related work and we finish by presenting conclusions and future work.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术官方微信