3,084 research outputs found

    Overlay Protection Against Link Failures Using Network Coding

    Get PDF
    This paper introduces a network coding-based protection scheme against single and multiple link failures. The proposed strategy ensures that in a connection, each node receives two copies of the same data unit: one copy on the working circuit, and a second copy that can be extracted from linear combinations of data units transmitted on a shared protection path. This guarantees instantaneous recovery of data units upon the failure of a working circuit. The strategy can be implemented at an overlay layer, which makes its deployment simple and scalable. While the proposed strategy is similar in spirit to the work of Kamal '07 & '10, there are significant differences. In particular, it provides protection against multiple link failures. The new scheme is simpler, less expensive, and does not require the synchronization required by the original scheme. The sharing of the protection circuit by a number of connections is the key to the reduction of the cost of protection. The paper also conducts a comparison of the cost of the proposed scheme to the 1+1 and shared backup path protection (SBPP) strategies, and establishes the benefits of our strategy.Comment: 14 pages, 10 figures, accepted by IEEE/ACM Transactions on Networkin

    Implementation of linear network coding over a flexible emulator

    Get PDF
    This dissertation has the main objective of study and implement network coding (NC) techniques in a flexible emulator, programmed in a language that allows the coexistence of entities running parallel code, in order to emulate each node independently. The dissertation starts with the study of NC’s concept and with the characterization of the different type of coding methods, with a focus on linear network coding (LNC). . A flexible Java emulator (named Net Genius) was developed, which not only allows numerous topologies of networks, but also different types of coding. In addition, the emulator allows to emulate the networks in two different modes: with a distributed network or with a centralized network. In order to present the differences between the LNC approach and the traditional approach used in packet networks (based in routing tables), the emulator allows the user to choose between these two types of approach, assessing the impact of having network coding over user-defined networks. When implementing LNC, the concept of generations of packets was introduced in order to avoid combining packets from different sources. Leveraging on this, the transfer matrix at each node is calculated based on the coded packets and not based on the information stored in each node. In addition to this, a mechanism to code packets at the source was implemented, as well as a mechanism to introduce errors in the connection links. This allowed to emulate networks with different link error probabilities, in order to assess the resilience of the different approaches to the presence of failures.Esta dissertação visa estudar e a implementar técnicas de network coding (NC) num emulador flexível, programado numa linguagem que permita a coexistência de entidades a correr código em paralelo por forma a simular cada nó de forma independente. Este trabalho começa com estudo do conceito de NC e da caracterização dos diferentes tipos de métodos de codificação, focando-nos essencialmente no linear network coding (LNC). Optou-se por criar um emulador flexível em Java (designado por Net Genius), que não só permite várias topologias de redes, mas também vários tipos de codificação. Além disso, o emulador permite emular as redes em dois modos diferentes, um modo com uma rede distribuída e outro com uma rede centralizada. De modo a evidenciar as diferenças entre a abordagem LNC e a abordagem tradicional (sem codificação), o emulador permite escolher o tipo de abordagem em cada emulação, o que permite estudar o impacto do NC em redes definidas por utilizadores. Procedeu-se à implementação de técnicas LNC e introduziu-se um conceito de gerações de pacotes, de modo a evitar a codificação de pacotes de diferentes fontes. A par disto, a matriz de codificação é calculada com base nos pacotes codificados e não com base na informação guardada em cada nó. Por último, implementou-se um mecanismo para codificação de pacotes na fonte e um mecanismo de introdução de erros nos links, permitindo emular a rede com diferentes probabilidades de erro, sendo possível ver como as abordagens resistem à existência de falhas nas ligações

    Homomorphic Self-repairing Codes for Agile Maintenance of Distributed Storage Systems

    Full text link
    Distributed data storage systems are essential to deal with the need to store massive volumes of data. In order to make such a system fault-tolerant, some form of redundancy becomes crucial, incurring various overheads - most prominently in terms of storage space and maintenance bandwidth requirements. Erasure codes, originally designed for communication over lossy channels, provide a storage efficient alternative to replication based redundancy, however entailing high communication overhead for maintenance, when some of the encoded fragments need to be replenished in news ones after failure of some storage devices. We propose as an alternative a new family of erasure codes called self-repairing codes (SRC) taking into account the peculiarities of distributed storage systems, specifically the maintenance process. SRC has the following salient features: (a) encoded fragments can be repaired directly from other subsets of encoded fragments by downloading less data than the size of the complete object, ensuring that (b) a fragment is repaired from a fixed number of encoded fragments, the number depending only on how many encoded blocks are missing and independent of which specific blocks are missing. This paper lays the foundations by defining the novel self-repairing codes, elaborating why the defined characteristics are desirable for distributed storage systems. Then homomorphic self-repairing codes (HSRC) are proposed as a concrete instance, whose various aspects and properties are studied and compared - quantitatively or qualitatively with respect to other codes including traditional erasure codes as well as other recent codes designed specifically for storage applications.Comment: arXiv admin note: significant text overlap with arXiv:1008.006

    Network Coding for WDM All-Optical Multicast

    Get PDF
    Network coding has become a useful means for achieving efficient multicast, and the optical community has started to examine its application to optical networks. However, a number of challenges, including limited processing capability and coarse bandwidth granularity, need to be overcome before network coding can be effectively used in optical networks. In this paper, we address some of these problems. We consider the problem of finding efficient routes to use with coding, and we study the effectiveness of using network coding for optical-layer dedicated protection of multicast traffic. We also propose architectures for all-optical circuits capable of performing the processing required for network coding. Our experiments show that network coding provides a moderate improvement in bandwidth efficiency for unprotected multicast while significantly outperforming existing approaches for dedicated multicast protection

    Founsure 1.0: An erasure code library with efficient repair and update features

    Get PDF
    Founsure is an open-source software library that implements a multi-dimensional graph-based erasure coding entirely based on fast exclusive OR (XOR) logic. Its implementation utilizes compiler optimizations and multi-threading to generate the right assembly code for the given multi-core CPU architecture with vector processing capabilities. Founsure possesses important features that shall find various applications in modern data storage, communication, and networked computer systems, in which the data needs protection against device, hardware, and node failures. As data size reached unprecedented levels, these systems have become hungry for network bandwidth, computational resources, and average consumed power. To address that, the proposed library provides a three-dimensional design space that trades off the computational complexity, coding overhead, and data/node repair bandwidth to meet different requirements of modern distributed data storage and processing systems. Founsure library enables efficient encoding, decoding, repairs/rebuilds, and updates while all the required data storage and computations are distributed across the network nodes.Turkiye Bilimsel ve Teknolojik Arastirma Kurumu (TUBITAK) Grant Number : 115C111 - 119E235WOS:000656825700019Scopus - Affiliation ID: 60105072Science Citation Index ExpandedQ3ArticleUluslararası işbirliği ile yapılmayan - HAYIRJanuary2021YÖK - 2020-2

    SDN Enabled Network Efficient Data Regeneration for Distributed Storage Systems

    Get PDF
    Distributed Storage Systems (DSSs) have seen increasing levels of deployment in data centers and in cloud storage networks. DSS provides efficient and cost-effective ways to store large amount of data. To ensure reliability and resilience to failures, DSS employ mirroring and coding schemes at the block and file level. While mirroring techniques provide an efficient way to recover lost data, they do not utilize disk space efficiently, resulting in large overheads in terms of data storage. Coding techniques on the other hand provide a better way to recover data as they reduce the amount of storage space required for data recovery purposes. However, the current recovery process for coded data is not efficient due to the need to transfer large amounts of data to regenerate the data lost as a result of a failure. This results in significant delays and excessive network traffic resulting in a major performance bottleneck. In this thesis, we propose a new architecture for efficient data regeneration in distribution storage systems. A key idea of our architecture is to enable network switches to perform network coding operations, i.e., combine packets they receive over incoming links and forward the resulting packet towards the destination and do this in a principled manner. Another key element of our framework is a transport-layer reverse multicast protocol that takes advantage of network coding to minimize the rebuild time required to transmit the data by allowing more efficient utilization of network bandwidth. The new architecture is supported using the principles of Software Defined Networking (SDN) and making extensions where required in a principled manner. To enable the switches to perform network coding operations, we propose an extension of packet processing pipeline in the dataplane of a software switch. Our testbed experiments show that the proposed architecture results in modest performance gains
    corecore