# Towards a Highly Available Model for Processing Service Requests Based on Distributed Hash Tables
## 1 Introduction  
The concept of high availability represents a key feature for today's online services. It has been addressed in numerous ways, but this work aims to obtain high availability in the most transparent manner possible, by using the scalable, balanced and fault-tolerant peer-to-peer based distributed hash tables. The idea of aggregating data resources and of high availability through DHTs is not new, since they are a fundamental building block of large-scale distributed filesystem, such as [1], but more recently also of blockchains [2; 3] and a detailed comparison with other works is provided in Section 5. The novelty of this work's approach resides in the fact that it aims to use the high availability for data, which DHTs traditionally provide, in order to obtain a means for highly available processing. Moreover, it seems that today's trend to go from cloud computing to sky computing [4] encompasses multiple abstractization layers, data aggregation [5] and some peer-to-peer techniques, aspects the current work addresses too, in its specific novel manner oriented towards high availability through DHTs, as is described in what follows. Nowadays, it is very important for any widely spread application service to be always able to answer and process correctly as many clients and client requests as it is needed, without having downtime. In what follows, both the long name for the request processing service is used, but also the short name: service. _High availability_ is an important aspect concerning software applications, which is synonymous with the combination of: fault tolerance, scalability and load balancing among the system's internal components, together with data coherence and data persistence. Since most of these identified characteristics,to influence a system's high availability, are very much related to not losing the data the system needs to process, and always obtaining the correct version of the data, this paper argues and stresses the fact that, a very good and _highly available database_ to store the service's data is _a must_ for obtaining a _highly available service_. Such a database must implicitly use good data replication mechanisms [6; 7; 8], for fault tolerance, which translates into decentralization, too, and in the need to use a large-scale distributed architecture for the physical infrastructure on which the data are stored. The most representative model for _decentralization_ is the peer-to-peer model [9; 10; 11; 12], which has evolved in recent years and is currently also applied for name lookup [3; 13] and for in-fashion Blockchain solutions [2; 3; 14], but peer-to-peer networks are also used in highly decentralized and unstructured overlay networks, such as in [15]. The peer-to-peer architecture is decentralized and offers a higher flexibility and a better tolerance to individual components and node failures. The reason for this is that decentralization automatically implies lack of dependencies and also the decoupling of the main components of the system. This paper considers _extending_ these types of capabilities to any type of distributed request processing service that could be offered. The outcome of the present work is a decentralization solution, based on DHT peer-to-peer networks, for a request processing service, whose purpose is to _improve substantially_ its _availability_ towards the service's clients. For this reason, this work addresses the following aspects that can influence availability:  
1. The system's tolerance to individual failures of any of its components, which can be usually obtained by the DHT stabilization mechanisms and by data replication;
2. The system's scalability, such that it is still functional if it is exposed to high external stress;
3. Load balancing, in order to generate as seldom as possible overloading, which in turn could lead to individual node failure.