Conference PaperPDF Available

Chord: A scalable peer-to-peer lookup service for internet applications

Authors:
A preview of the PDF is not available
... A possible way to extend the MPut operation of Listing 1 is shown in Listing 4. We iterate through every space in S (lines [6][7][8][9][10][11][12][13][14] to store a replica of tuple t into every space in the set of targets S. Differently from Listing 1, for every such space s we check (line 8) if the memory limit is non-zero and s is already full (note the variable ReplLimit that we add to the RepliSpace object to represent the maximum number of tuples that each space can hold, the default value 0 meaning unlimited). If so, we must first remove one of the existing tuples, by calling evictTuple, which selects and removes a tuple from a full space, according to the chosen policy (more details on this functions later on). ...
... Let us now consider a distributed system composed of n computational nodes, each executing a separate program, and interacting through a decentralised data store equipped with m memory locations. Following a similar schema to those used in distributed lookup protocols (e.g., Chord [10]), memory entries are represented as key-value pairs, with a partitioned address space among the nodes. Each node is responsible for storing m/n memory entries. ...
Full-text available
Article
Coordination languages for tuple spaces can offer significant advantages in the specification and implementation of distributed systems, but often do require manual programming effort to ensure consistency. We propose an experimental technique for automated replication of tuple spaces in distributed systems. The system of interest is modelled as a concurrent Go program where different threads represent the behaviour of the separate components, each owning its own local tuple repository. We automatically transform the initial program by combining program transformation and static analysis, so that tuples are replicated depending on the components' read-write access patterns. In this way, we turn the initial system into a replicated one where the replication of tuples is automatically achieved, while avoiding unnecessary replication overhead. Custom static analyses may be plugged in easily in our prototype implementation. We see this as a first step towards developing a fully-fledged framework to support designers to quickly evaluate many classes of replication-based systems under different consistency levels.
... Many peer-to-peer (P2P) systems [30][31][32][33][34] adopt the idea of key-value pairs. Although data in P2P systems are stored in key-value pair format, the goal of P2P is to offer file sharing, which is different from our paper. ...
Full-text available
Article
NoSQL databases are flexible and efficient for many data intensive applications, and the key-value store is one of them. In recent years, a new Ethernet accessed disk drive called the “Kinetic Drive” was developed by Seagate. This new Kinetic Drive is specially designed for key-value stores. Users can directly access data with a Kinetic Drive via its IP address without going through a storage server/layer. With this new innovation, the storage stack and architectures of key-value store systems have been greatly changed. In this paper, we propose a novel global key-value store system based on Kinetic Drives. We explore data management issues including data access, key indexing, data backup, and recovery. We offer scalable solutions with small storage overhead. The performance evaluation shows that our location-aware design and backup approach can reduce the average distance traveled for data access requests.
Article
In mission-critical systems such as session control servers provided by telecommunications carriers, we are researching distributed cluster architectures that enable flexible control of system performance. Data must be maintained even in the event of a disaster. Considering the physical distance between the servers that manage the original and duplicate data respectively, we proposed a data redundancy control method that does not cause data loss even in the event of a large-scale disaster. The proposed method was evaluated by computer simulation. We also proposed an implementation of the data loss avoidance method in Apache Cassandra that defines “Racks” as a “site”. We implemented the method and confirmed that site collision avoidance was achieved without data loss even in the case of a large-scale disaster. We found that the number of servers in each site should be about the same for optimal data storage in terms of decentralization and reliability.
Conference Paper
Information-Centric Network (ICN) architectures, such as Named Data Networking (NDN), can improve content delivery on the Internet by deploying in-network caching techniques. Replacing the entire established Internet with a novel architecture is a non-trivial task, which is why this work develops a layered network architecture consisting of several smaller NDN-based mobile networks (resp., domains), interconnected using a Distributed Hash Table (DHT)-based network running as an overlay on top of existing Internet infrastructures. Using simulations, we model real-world network characteristics to evaluate the proposed architecture’s performance successfully.
Article
MALL (Mobile Assisted Language Learning) has been inextricably linked to education. Mobile learning is becoming increasingly common. As a result, a plethora of apps or smartphone applications has emerged to assist both teachers and students in improving the quality of learning. The introduction of GoAnimate as a new method to facilitate mobile learning in the classroom was explored in the previous report. Using a phenomenological qualitative approach, the current study looks at another program called Anitales. Anitales is a program that allows you to make animated stories. Three university students who used Anitales in their Digital Storytelling Class were interviewed. The data was then analyzed using thematic analysis. The participants in the study had optimistic attitudes toward the use of Anitales. Anitales offered a variety of appealing features, which influenced students' emotions and motivation. Anitales worked with students to help them develop their imagination, writing, and speaking abilities. Keywords : Anitales, DigitalStory Telling, Mall, Students’ Perception.
Full-text available
Conference Paper
http://portal.acm.org/toc.cfm?id=345910&dl=GUIDE&dl=ACM&type=proceeding&idx=SERIES395&part=Proceedings&WantType=Proceedings
Full-text available
Conference Paper
We argue that the core problem facing peer-to-peer Systems is locating documents in a decentralized network and propose Chord, a distributed lookup primitive. Chord provides an efficient method of locating documents while placing few constraints on the applications that use it. As proof that Chord's functionality is useful in the development of peer-to-peer applications, we outline the implementation of a peer-to-peer file sharing system based on Chord.
Full-text available
Conference Paper
We describe a family of caching protocols for distrib-uted networks that can be used to decrease or eliminate the occurrence of hot spots in the network. Our protocols are particularly designed for use with very large networks such as the Internet, where delays caused by hot spots can be severe, and where it is not feasible for every server to have complete information about the current state of the entire network. The protocols are easy to implement using existing network protocols such as TCP/IP, and require very little overhead. The protocols work with local control, make efficient use of existing resources, and scale gracefully as the network grows. Our caching protocols are based on a special kind of hashing that we call consistent hashing. Roughly speaking, a consistent hash function is one which changes minimally as the range of the function changes. Through the development of good consistent hash functions, we are able to develop caching protocols which do not require users to have a current or even consistent view of the network. We believe that consistent hash functions may eventually prove to be useful in other applications such as distributed name servers and/or quorum systems.
Full-text available
Article
We describe the algorithmic design of a worldwide location service for distributed objects. A distributed object can reside at multiple locations at the same time, and offers a set of addresses to allow client processes to contact it. Objects may be highly mobile like, for example, software agents or Web applets. The proposed location service supports regular updates of an object's set of contact addresses, as well as efficient look-up operations. Our design is based on a worldwide distributed search tree in which addresses are stored at different levels, depending on the migration pattern of the object. By exploiting an object's relative stability with respect to a region, combined with the use of pointer caches, look-up operations can be made highly efficient.
Chapter
A randomized algorithm is one that makes random choices during its execution. The behavior of such an algorithm may thus be random even on a fixed input. The design and analysis of a randomized algorithm focus on establishing that it is likely to behave well on every input; the likelihood in such a statement depends only on the probabilistic choices made by the algorithm during execution and not on any assumptions about the input. It is especially important to distinguish a randomized algorithm from the average-case analysis of algorithms, where one analyzes an algorithm assuming that its input is drawn from a fixed probability distribution. With a randomized algorithm, in contrast, no assumption is made about the input.
Conference Paper
Consider a set of shared objects in a distributed network, where several copies of each object may exist at any given time. To ensure both fast access to the objects as well as efficient utilization of network resources, it is desirable that each access request be satisfied by a copy ``close'' to the requesting node. Unfortunately, it is not clear how to achieve this goal efficiently in a dynamic, distributed environment in which large numbers of objects are continuously being created, replicated, and destroyed. In this paper we design a simple randomized algorithm for accessing shared objects that tends to satisfy each access request with a nearby copy. The algorithm is based on a novel mechanism to maintain and distribute information about object locations, and requires only a small amount of additional memory at each node. We analyze our access scheme for a class of cost functions that captures the hierarchical nature of wide-area networks. We show that under the particular cost model considered (i) the expected cost of an individual access is asymptotically optimal, and (ii) if objects are sufficiently large, the memory used for objects dominates the additional memory used by our algorithm with high probability. We also address dynamic changes in both the network and the set of object copies.
Article
Thesis (M.S.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1998. Includes bibliographical references (p. 106-108). by Daniel M. Lewin. M.S.
Article
Hash tables -- which map "keys" onto "values" -- are an essential building block in modern software systems. We believe a similar functionality would be equally valuable to large distributed systems. In this paper, we introduce the concept of a ContentAddressable Network (CAN) as a distributed infrastructure that provides hash table-like functionality on Internet-like scales. The CAN design is scalable, fault-tolerant and completely self-organizing, and we demonstrate its scalability, robustness and low-latency properties through simulation.
Article
The Domain Name System (DNS) provides name service for the DARPA Internet. It is one of the largest name services in operation today, serves a highly diverse community of hosts, users, and networks, and uses a unique combination of hierarchies, caching, and datagram access. This paper examines the ideas behind the initial design of the DNS in 1983, discusses the evolution of these ideas into the current implementations and usages, notes conspicuous surprises, successes and shortcomings, and attempts to predict its future evolution.