<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Increasing reliability and fault tolerance of a secure distributed cloud storage</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nikolay Kucherov</string-name>
          <email>ynkucherov@ncfu.ru</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mikhail Babenko</string-name>
          <email>yymgbabenko@ncfu.ru</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrei Tchernykh</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Viktor Kuchukov</string-name>
          <email>zzviktor-kuchukov@yandex.ru</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Irina Vashchenko</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>The work develops the architecture of a multi-cloud data storage system based on the principles of modular arithmetic. This modi cation of the data storage system allows increasing reliability of data storage and fault tolerance of the cloud system. To increase faulttolerance, adaptive data redistribution between available servers is applied. This is possible thanks to the introduction of additional redundancy. This model allows you to restore stored data in case of failure of one or more cloud servers. It is shown how the proposed scheme will enable you to set up reliability, redundancy, and reduce overhead costs for data storage by adapting the parameters of the residual number system.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1 North-Caucasus Federal University,Stavropol,Russia
2 CICESE Research Center,Ensenada,Mexico</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>
        Currently, cloud services, Google, Amazon, Dropbox, Microsoft OneDrive, providing cloud
storage, and data processing services, are gaining high popularity. The main reason for using
cloud products is the convenience and accessibility of the services o ered. Thanks to the use of
cloud technologies, it is possible to save nancial costs for maintaining and maintaining servers
for storing and securing information. All problems arising during the storage and processing of
data are transferred to the cloud provider [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Distributed infrastructure represents the conditions in which competition for resources
between high-priority computing tasks of data analysis occurs regularly [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Inevitably,
congestion in computing resources causes a deterioration in the functioning of serving services,
and sometimes long breaks in their work. For this and other reasons, a continuous ow of
failures, errors, and malfunctions inevitably occurs in distributed data processing [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>The main task of storage systems is the task of real-time data processing; however, a
contradiction arises between the practical need for real-time processing of signi cant data bits,
the limited hardware resources of modern systems, cost, reliability, and performance. Thus,
it is necessary to increase the speed of arithmetic calculations, reliability, and availability by
developing new mathematical models of data processing in the cloud, the algorithms of which
use methods that reduce their time, and also create new algorithms for processing and storing
data to reduce nancial costs.</p>
      <p>
        When a cloud service provider stores user data, it should be able to return this data to
the user on demand. Given network downtime, user errors, and other circumstances, meeting
this condition in a reliable and deterministic way can be di cult [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Algorithm Information
Dispersal Algorithms (IDA) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], initially developed by Michael Rabin for telecommunication
systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the IDA algorithm allows you to split the data in such a way that in case of loss or
inaccessibility of some data, it is possible to restore the original data [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>To increase the reliability and reliability of data processing and storage, it is advisable to
use distributed data storage schemes based on the principles of modular arithmetic. One of the
promising areas of modular arithmetic is the development of mathematical methods for storing
and processing large-capacity data with high reliability in a cloud environment. The primary
tool for improving reliability is the introduction of controlled redundancy in the system.</p>
      <p>When building a large cloud, on which all the company's business systems work, it is necessary
to ensure high fault tolerance, regularly back up data so that when the server crashes, the
clouds do not turn o at the same time, but immediately switch to another server, or (within a
reasonable time) were restored from backups. All this leads to an increase in the cost of creating
a fault-tolerant architecture. Investments in maintaining and backing up clouds are increasing.</p>
      <p>
        The IDAs proposed in [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ] ensure the availability and distribution of data. Redundant
residue number system (RRNS) has similar properties for the Mignotte data distribution scheme
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]; its arithmetic properties allow controlling the result of data processing. RRNS presents the
original numbers as residuals to the set of modules. Thus, the number is broken up into smaller
numbers that are independent.
      </p>
      <p>Let p1; p2; : : : ; pn be paired with mutually simple numbers used as a set of redundant RNS
n
modules, and n = k +r. Then the range of the redundant RNS will be P = Q pi. The data is an
i=1
integer of X, where Xis 2 [0; P 1). X is de ned in redundant RNS as X ! (x1; x2; : : : ; xn),
where xi = jXjpi represents the remainder of the division of X by pi.</p>
      <p>Parameters (k; r) RRNS can be selected di erently depending on the need to obtain speci c
characteristics. Using data from any k residues from n, we can recover the data. According
to the RRNS property, if the number of control modules is r, the system can detect r and x
the r 1 error. To localize and correct errors, we use projection methods where the number of
calculated projections grows exponentially, depending on the r value.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the authors suggested using RRNS for reliable and scalable cloud storage systems.
Operations can be performed in parallel, which simpli es and speeds up calculations. The
redundancy of the system allows building a system with multiple error detection and correction.
      </p>
      <p>Since the representation of numbers in RRNS can be considered as a data separation scheme,
we can use it for reliable storage of large-dimensional data. In the case of nding a system for one
PC, it is enough to detect and x one error; most systems cope with this task. However, when we
consider data of enormous capacity, it is necessary to have practical algorithms for detecting and
correcting several errors. The RRNS storage scheme provides reliable and scalable storage. It
has the properties of error correction codes and the possibility of distributed storage of signi cant
data bits.</p>
      <p>To create a reliable, fault-tolerant, and safe model for storing data in a distributed cloud
structure, we will use RRNS and error correction codes. The data warehouse will have the
following properties: reliability, fault tolerance, integrity, data distribution, data control, and
error correction.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Overview of cloud storage security approaches</title>
      <p>Big data refers to data processing methods based on non-traditional technologies because of
their sizes, such as the collection, storage, retrieval, dissemination, analysis, and visualization of
large volumes of data. Standard databases and tools can no longer cope with the growing ow
of data. In essence, databases are no longer able to process existing volumes, ETL processes are
too slow and have di culties with a variety of data formats, so traditional BI systems are too
slow and cannot handle large masses e ectively unstructured data.</p>
      <p>Processing large amounts of data often become the most problematic and challenging area in
creating large aggregation services. This led to the creation of quite e ective ways to solve the
problem.</p>
      <p>We will dwell on two of the most common solutions: the MapReduce distributed computing
model and the Percona server, a MySQL assembly originally designed and optimized for working
with big data.</p>
      <p>
        The MapReduce distributed computing model presented by Google is used by the company
in computer clusters for parallel computing over very large, even a few petabytes, data sets [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>The advantage of MapReduce is its ability to distribute preprocessing and convolution
operations in a distributed manner. Preprocessing operations can be performed in parallel
as they work independently of each other. However, the process may be less e cient compared
to more sequential algorithms, since the purpose of the MapReduce algorithm is to apply it to
large amounts of data that can be processed by a large number of servers. However, MapReduce
can be used to sort a massive amount of data, and requires only a few hours, even for volumes
of the order of petabyte of data. Concurrency also provides the ability to recover from partial
failures: if a failure occurs in a work node, then its work can be transferred to another working
node. Thus, although the semantics di er from the prototype, the framework is based on the
functions mar and reduce, which are widely used in functional programming.</p>
      <p>Percona Server is a MySQL build. This build includes the XtraDB storage engine by
default, which is di erent from the MySQL+InnoDB plugin. Key indicators are better
performance/scalability, especially on modern multi-core servers. XtraDB repository is based
on InnoDB-plugin and is fully compatible with it. However, it is characterized by higher
performance due to the integration of patches from Google and Percona.</p>
      <p>In the area of data integration, the main problem is the speed and controllability of structured
data. For le storage and subsequent processing of big data, special le systems are available,
such as HDFS from Hadoop, but also the so-called NoSQL databases. These methods must
be consistent with classical analytical databases that continue to use. Only in this way can
data consistency be maintained, and typical relational operations can be performed without
problems.</p>
      <p>Fast Big Data processing focuses on Google's MapReduce approach. The following algorithm
is behind this: the task is divided into the smallest possible parts, then distributed for parallel
processing on as many computers, and then combined again. Thus, high parallel processing
of poly structure data is possible. Another tool that can process big data in seconds is
inmemory computing, such as SAP HANA, o ered by SAP. Here, computer memory is used as
data storage. Unlike data stored on the hard drive, this can signi cantly increase the speed of
access to data. Some solutions rely on analytic databases. These are mainly column-oriented
databases that break down with the general concept of traditional row-oriented databases. They
lter out unnecessary areas and thus provide exibility and, above all, quick access.</p>
      <p>Traditional systems store data in structured relational database management systems, le
systems, and replication. Intensive and extensive research explores various aspects of cloud
storage. However, mitigating the risks of integrity, availability, and reliability has not been
appropriately addressed in the scienti c literature.</p>
      <p>
        Performance, resiliency, reliability, and scalability are important factors in the big data
processing. The storage infrastructure must provide reliable storage space with a robust access
interface for querying and analysis. Distributed storage can be based on multiple clouds.
Typically, data is divided into several parts that must be stored on di erent clouds to ensure
availability in the event of a failure. However, distributed storage failures can cause inconsistency
between di erent copies of the same data [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. You can use large databases. In this case, for
high performance, data processing and analysis should be performed in parallel.
      </p>
      <p>
        When storing data in the cloud, you should consider reliability, scalability, security, privacy.
These features are also crucial for mobile devices where speci cations and power consumption
are limited. Tchernykh et al., In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], showed that distributed data storage under uncertainty in
cloud computing could use data replication, redundant RNS, erase codes (EC), and regeneration
codes (RC).
      </p>
      <p>
        Table 1 presents the main known methods for organizing distributed data storage in the
clouds. A comparison is made on the following properties: reliability, scalability, availability,
con dentiality, integrity. The most e ective for complexity is the method presented in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
However, its main drawback is that the data is stored in the explicit using replication, which
leads to limited applicability.
      </p>
      <p>An alternative approach to creating a reliable storage system is to use error correction
codes based on redundant RNS, EC codes [18], and RC codes [35]. Table 1 deserves special
attention to the distributed data storage scheme [21, 36], which provides data security, integrity,
reliability, and scalability. The authors proposed two approaches to building systems based
on data distribution schemes in redundant RNS. The user stores redundant RNS modules.
Data processing leads to an exponential increase in network and memory load and makes it
inapplicable in practice [37].</p>
      <p>RRNS represents the original numbers as residuals for the set of modules. Thus, the number
is broken up into smaller numbers that are independent.</p>
      <p>
        In paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the authors suggested using RRNS for reliable and scalable cloud storage
systems. Operations can be performed in parallel, which simpli es and speeds up calculations.
The redundancy of the system allows us to build a network with multiple error detection and
correction.
      </p>
      <p>A common problem for most systems is the detection and correction of one error. When
reliability is provided for one computer, a single error can be detected and corrected. However,
when we consider big data, it is necessary to have e cient algorithms for detecting and correcting
several errors [38]. The RRNS scheme for data storage provides reliable and scalable storage. It
has properties of error correction codes and the possibility of distributed data storage</p>
    </sec>
    <sec id="sec-4">
      <title>3. Methods to improve the reliability and fault tolerance of data storage and processing</title>
      <p>The cloud system is a hardware and software system designed to store, organize access,
manage, and restore data. Accordingly, potential threats of loss, distortion, or inaccessibility of
information may have a physical or software cause.</p>
      <p>Usually, during the operation of the cloud system, it is possible to have emergencies that
must be taken into account at the level of technology of the cloud system, and these solutions
should provide the system with the required level of security and reliability. Consider the most
common situations.</p>
      <p>One or more of the hard drives in the data warehouse has failed; total or partial data loss.
It is necessary to be able to recover data stored on this hard drive.</p>
      <p>The motherboard on the server crashes, the server in which it is installed will become
unavailable, and all recent changes or the results of the current server operation will be lost.
It is necessary to be able to service the incoming load with a given quality, which was initially
intended for this server. In this case, you need to restore data that was changed as a result of
transactions completed on this server.</p>
      <p>Lost communication between the server and the storage loss of all current changes processed
on this server. A virus on the server can lead to failures in access to the server, which will lead
to the loss of recent changes and stop work. The integrity of the data in the repository, archive
logs, the failure of which will exclude the possibility of restoring the lost part of the data, are
also at risk. Since virus behavior is unpredictable, the consequences can also be random.</p>
      <p>Tools to ensure the resiliency of the cloud system and protect data from loss should have the
following properties [39]:
reliability { all information necessary for data recovery should be stored in a safe place on
reliable media and be backed up;</p>
      <p>exibility { backup should be made so that if necessary it was possible to restore all data
in general and speci c data les;
manageability { backup les should be quickly and conveniently managed so that recovery
can be performed as soon as possible;
availability { reservation work should not interfere with the work under any circumstances.</p>
      <p>Also, the restoration work should not be visible to the user.</p>
      <p>To ensure fault tolerance, the following neutral approaches are used.</p>
      <p>O ine reservation. The easiest way to backup data: all incoming load is served by the central
instance, from which recovery points are removed with a speci c frequency by completely copying
the data to the medium.</p>
      <p>If a failure occurs, the last (or later) recovery point is uploaded to the data server (this can
be the main or backup copy of the data), and all incoming load is switched to it.</p>
      <p>In this case, three schemes are possible:
o ine backup is performed on a separate medium of the same server;
o ine backup is performed on the media of a separate server designed to backup company
information over the network (most likely, it cannot be used as a server for storing and
processing data due to limited resources)
o ine backup is performed on a separate server, which is allocated as a backup/standby
server.</p>
      <p>Removing recovery points during cold backups can only be done periodically since this implies
a shutdown of the primary storage server. Periodic removal of recovery points is performed using
database tools or external utilities that copy data les at the operating system level. In the case
of external services, access to databases is temporarily blocked, and the control le, log les,
and archive log les are copied to the storage medium (hard disk). Thus, upon completion of
the described operation, an exact copy of the available data is obtained at the time of stopping
work with them.</p>
      <p>The disadvantage of using this approach is that the frequency of copying data is limited and,
as a rule, coincides with the hours of least load on the cloud server. Backup work has to be done
either at night or on weekends, which, in turn, allows rollbacks only to these points in time with
a possible loss of information for the entire last day or week.</p>
      <p>O ine redundancy nds its application with small capacity data. The data recovery process
takes a long time and is a reverse copy of the available information from the backup medium to
the main one. And if we take into account that the customer strictly normalizes the duration of
the recovery process both operability and normal operation using basic resources, then situations
may arise when such an approach is unacceptable.</p>
      <p>Continuous removal of recovery points. The approach of continuously removing recovery
points is to track the changes that occur with the data in real-time and save the history of
changes to a dedicated drive. It is assumed that in this way, any data can be restored to any
date speci ed by the administrator. However, this approach gives rise to many problems that
manufacturers have to solve.</p>
      <p>For example, with frequent updating of data, the amount of knowledge about changes in the
data may exceed the amount of the source data by several times. The good news is that in the
event of a failure, only the data of incomplete transactions that existed at the time of the crash
are lost. As a compromise, you can use the option of periodically removing data images on a
schedule and maintaining a continuous history of changes for any limited period.</p>
      <p>Online reservation. This is a whole class of data backup methods, the distinguishing feature
of which is that there is no need to stop the working part of the data from performing the backup.
In normal mode, all requests are served by the main part, and changes in it are synchronized
with the backup. The backup database is most often inaccessible for users or read-only [40, 41].</p>
      <p>If a failure occurs in the main part of the data, the entire load switches to the backup
instance. You can set any value for the period of removing recovery points, however, since
removing a recovery point requires copying the changelog, archiving, transferring it to the
backup database and other actions, the performance of the main server decreases noticeably
during this. Therefore, it is necessary to select a period for taking points in such a way as to
achieve the optimum between a drop in performance and a decrease in data loss in the event
of a failure. Often the period of log removal is regulated through the size of the log le, for
example, when it reaches 100 MB, it switches to the next log, and the completed one is sent
to the backup database. The physical diversity of copies of data copies makes it possible to
avoid hardware failure and increases the system's resistance to accidents. This approach can
signi cantly improve the reliability of data storage in the event of failures in one of the data
instances. In the simplest way to organize this approach, 100% redundancy of data storage is
required, which means that the cost of this solution increases signi cantly.</p>
      <p>In modern systems, a load-balancing approach is often used: several data instances are
created, each of which processes part of the requests. When one case fails, the load is distributed
among the others. Load balancing reduces storage redundancy.</p>
      <p>In practice, a method is used, the essence of which is to store complete copies of the stored
information on several system servers. This method guarantees reliability since data can be
restored even if one of the servers is operational. However, this method is costly because z
replicas lead to an expansion of z time. One way to reduce the expansion speed is to use erase
codes to encode messages. The message is encoded as a codeword, which is a character vector,
and each server stores a codeword symbol. A storage server failure is modeled as an error with
deleting stored codeword characters. Random linear codes support distributed encodings, that
is, each character of a codeword is calculated independently. To save a message of sizes of
k blocks, each storage server linearly combines blocks with randomly selected coe cients and
stores the symbol of the codeword and coe cients.</p>
      <p>To receive a message for the stored codeword characters and coe cients, the user requests
the storage servers k and solves the linear systems.</p>
      <p>To increase reliability in the storage and processing of information in the cloud, an IDA-based
approach is used. IDA allows you to share data between several servers (participants) involved
in the processing or storage of information. Any set of servers when storing information contains
a su cient amount of information necessary for its recovery. One of the ways to increase the
speed, reliability, and fault tolerance of computing tools has been the creation of computing
systems based on modular arithmetic, that is, codes in which numbers are represented in RNS.</p>
    </sec>
    <sec id="sec-5">
      <title>4. Using a residue number system to increase fault tolerance</title>
      <p>The considered cloud system is shown in the gure 1, based on the principles of RNS, has pi cloud
servers that are designed to store and process big data on k working and r control bases (parts).
One of the approaches to solving the problem of increasing the reliability of the cloud system
is based on the redistribution of parts of the data in case of failure of part of the working or
control channels [41, 42, 43]. At the same time, by reliability, we mean the ability of the cloud
system to remain operational in case of failure of one or several data processing and storage
servers, while reducing, within acceptable limits, some performance indicators. This feature of
constructing a model for storing and processing big data allows you to build a cloud system with
constant failures of working or control servers operating in the RNS. With continuous failures of
the working and control bases, the cloud system goes into the SV state, which entails the need to
redistribute data between servers and nd the set N = fQV g to distribute big data. If for each
state of the cloud system, a solution is chosen to redistribute the QV data between the cloud
servers, the problem is to nd the best option for redistributing the data between the cloud
servers for each SV inS server. It can be solved as a problem of optimization according to one
of the indicators accepted as an objective function with given restrictions on other indicators.
Consider a statement on the distribution of data between cloud servers operating in an RNS.</p>
      <p>Suppose that during the operation of the cloud system there are failures of cloud servers, and
the servers are independent. Let S(t) be the state of the cloud system at time t:
S(t) = d1; d2; : : : ; dn;
(1)
where n { number of channels of the cloud system.</p>
      <p>di =
0; if i server is operational
1; if i the server is down</p>
      <p>Consider the time interval [t0; tz]. Let S(t0) = 0; 0; : : : ; 0 { initial state of the cloud system,
the initial distribution of the system is equal to</p>
      <p>A0i = fj 1jpi ; j 2jpi ; : : : ; j LV jpn g;
where j ljpi { data corresponding to i-cloud server; i = 1; n; l = 1; L; L { number of tasks.
Multiple P = fp1; p2; : : : ; png is a set of all working and control servers in the cloud system.</p>
      <p>During the operation of the cloud system at a time tk (t0 &lt; tk tz) some servers may fail.
Then the P set can be split into two subsets:</p>
      <sec id="sec-5-1">
        <title>PtOk { a subset of all failed servers in the cloud system.</title>
      </sec>
      <sec id="sec-5-2">
        <title>PtPk { a subset of all working servers in the cloud system.</title>
        <sec id="sec-5-2-1">
          <title>Let SV be the state at tk; then</title>
          <p>AV = fj 1jpi ; j 2jp+i ; : : : ; j LV jp+i g;</p>
          <p>+
where i = 1; np { a lot of all data that provides acceptable limits on the quality of stored data
that can be stored in the cloud system in the state SV , in other words, for processing which the
cloud system has the necessary number of servers, np = n nO { number of cloud servers in the
state SV , nO { number of failed cloud servers.</p>
          <p>Ai = f j j jp+1 p+i ; j j jp+2 p+i ; : : : ; j j jp+n p+i g;
where j = 1; LV ,</p>
          <p>+ +
j jp1 pi 2 AV { a subset of data that a functioning cloud server can store and
process if the cloud system is in the SV state.</p>
          <p>In a cloud system with persistent failures, e cient cloud servers are used for data storage
and processing. If a server failure occurs, the cloud system is recon gured to exclude all failed
cloud servers. In this case, a new redistribution between working cloud servers of data that have
not been sent to the outgoing servers. When a cloud system switches from S(t0) to S(tk) = SV ,
various decisions can be made regarding speci c failed and operational cloud servers, which are
determined by the importance of data and operational servers.</p>
          <p>Let's enter the following designations: AVO { a set of own failed cloud server data for the state
SV ; AVP { a set of all own failed cloud server data for the state SV .</p>
          <p>Let's enter the following designations: AVO { a set of own failed cloud server data for the state
SV ; AVP { a set of all own failed cloud server data for the state SV .</p>
          <p>UOC { all data in the APO set are stored in the cloud if nO l, where l = dm2in { number of
corrected errors (parts), dmin { minimum code distance of redundant RNS code;
UOO all data in the APO set is saved, and the part is discarded if 1 &lt; nO &lt; nO;extr, where
nO;extr is the allowed number of failed cloud servers;</p>
          <p>UOO part of data set APO is saved, and part is discarded if nO = nO;extr.</p>
          <p>Let's consider failed cloud servers dummy and equate their data to zero. Simultaneously with
the data of AVP set, one of the following decisions is made:</p>
        </sec>
      </sec>
      <sec id="sec-5-3">
        <title>UPC { all data of AVP set are saved, and the task continues;</title>
        <p>U C I { all data of AVP set is stored in the cloud system, part of data is stored and processed</p>
        <p>P
on assigned servers, and part is redistributed.</p>
        <p>When the inequality nO &gt; nO;expr is executed, a complete failure of the cloud system occurs.
The set of U of possible solutions that can be made when redistributing data in the state
SV is determined by the set of all possible combinations of solutions for these subset AVP , AVO
considered above:</p>
        <p>U = n(UOC UPO); (UCOUPC I ); (UOOUPC ); (UOOUPC I ); (UOC OUCP ); (UOC OUPC I )o
(2)</p>
        <p>Let's consider refusals on working and control channels which are possible at the transition of
cloud system constructed based on RNS, in a condition SV and change of indicators of quality
of functioning of cloud system at data redistribution in it according to one of the decisions U ,
table 2.</p>
        <p>In case the decision U1 = UOC UPC is made, the working channels process all data of the set,
and the obtained result of the operation with some distortion is restored due to the correcting
properties of the code, i.e., in an algorithmic way.</p>
        <p>Solution U2 = UOC UPC I does not make sense (failure of the whole system) because saving
data of AVO set does not allow to redistribute data of AVP set. Other solutions are used to organize
data redistribution in the cloud system.</p>
        <p>The implementation of any of these solutions involves excluding failed servers from the cloud
system by blocking their inputs and outputs and redistributing data between work servers. In
this case, the cloud system assumes the availability of additional software, hardware, and time
resources [42, 44].</p>
        <p>Let's consider indicators of functional capacity (E) and a time indicator of a separate server
(T ) as indicators of quality of work of cloud system to which certain requirements are made at
the realization of data redistribution.</p>
        <p>Nominal Eh, T h and the maximum allowable Eextr, T extr values of accepted performance
quality indicators determine the area of cloud system performance as a subset of Mp = fy g of
such y states for which</p>
        <p>Eh
1) 0 { index reduction, 1 { index increase, * { retention of this indicator</p>
        <p>Let us formulate the task of ensuring the health of the cloud system in case of failure of some
cloud servers. Let the known structure of the cloud system working based on the RNS with the
speci ed cloud servers perform the algorithm of data storage and processing, presented as a set
of A0i and the initial state for all servers of the system S0. Then, in case of failure of some part
of servers, the task is to nd the strategy of data redistribution between working servers with
ensuring the ful llment of requirements to reliability indicators of the cloud system. There are
two main types of data redistribution organization: statistical and dynamic redistribution.</p>
        <p>The statistical method assumes that before the beginning of the cloud system for a given
subset S = SV , its state in memory is optimal plans for the distribution of cloud servers.</p>
        <p>When a cloud system switches to the state SV 2 S in its cloud servers, processing of the
data corresponding to the distribution GV begins. If a subset of S cannot be speci ed or its
size requires an unacceptably large amount of memory to store all valid programs, dynamic
channel redistribution is applied. The rebuilding time, in this case, may signi cantly exceed the
rebuilding time in static mode.</p>
        <p>A combination of static and dynamic data redistribution methods is possible. Its essence
is that at the rst stage static data redistribution is performed for some predetermined set of
system states S1(t), and at the second stage the most probable transitions S1(t) ! S2(t) are
de ned, a new plan of data redistribution for all possible states is formed. I take into account the
requirements for cloud systems in terms of performance. We will use statistical redistribution
of data from failed servers of the cloud system between working servers.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>5. Comparative assessment of cloud reliability of operating in the residue number system</title>
      <p>At construction of a mathematical model of reliability of a cloud, the following properties of
RNS are considered:
independence of data parts, which allows you to process data parts and consider them
independent elements independently;
equality of data parts, which makes it possible to consider redundant channels as reserve
elements for the rest;
low discharge, which causes insigni cant variation in the reliability characteristics of the
clouds.</p>
      <p>For the analysis of the reliability of cloud functioning based on RNS, it is expedient to use
mathematical ratios of reliability theory and di erent ways of introducing structural redundancy.
When calculating reliability characteristics, it is assumed that
at the beginning of time there are n = k + r clouds, where k is the number of workers, r is
the number of control clouds;
the minimum number of clouds (parts) required for proper data recovery is n
failure of more than r 1 clouds is considered a failure of the entire cloud system;
cloud failures are statistically independent events.
(r + 1);
The task of building a mathematical model of reliability can be formulated as follows.</p>
      <p>The data submitted to the RNS and transmitted to the cloud for processing and storage are
converted using k workers and r controls. If working parts are lost or unavailable, they can be
replaced by the control base.</p>
      <p>The requirement to provide guaranteed protection from the issuance of an unreliable result
determines the need to keep in working order at least one control and k working parts.</p>
      <p>In this way, robust cloud storage and processing structure will be matched by a sliding
redundancy method in which the backup elements are loaded. When assuming the simplest
element failure ow and their equal reliability, given that the failed elements are not recovered,
we come to the expression to calculate the probability of failure of the next type:
where R1 is the probability of failure of a cloud system based on a single-level RNS, for a given
time, P is the probability of failure of one cloud.</p>
      <p>r 1
R1 = X P 0k+r i 1</p>
      <p>P 0 i ;
i=0
r 1
R2 = X P 0k+r i 1</p>
      <p>P 0 i ;
i=0
R1;2 = R1 R2;
(4)
(5)
(6)
(7)
where R1;2 is the probability of failure of a cloud system based on a two-level RNS within a
given time, P is the probability of failure of one cloud.</p>
      <p>When allocating the cloud operation time before failure according to the exponential law,
the probability of no-failure operation within a given time will be determined as:
Then</p>
      <p>P 0(t) = e T P t:
the failure rate can be considered a constant value;
there are no other input data for the calculation than the failure rate;</p>
      <p>The results obtained are suitable for engineering assessments of fault tolerance.</p>
      <p>Let's denote the failure rate of one cloud
particular system</p>
      <p>P , and select as an average number of bits in a
cp =
" n #</p>
      <p>X i ;
i=1 n
T P = cp</p>
      <p>P 0 ;
where n { number of clouds (RRNS bases) in the system, i { number of bits in the n channel,
[ ] { whole number, de ne
where T P { single cloud failure rate.</p>
      <p>Calculation data for the system with di erent ratio of the number of working and control
bases gure 2, indicate a signi cant gain in reliability when using the reserve.</p>
      <p>
        Of greatest interest is the comparison on the selected indicator of systems functioning on the
basis of RNS, PNS and paper [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and providing equal ranges of representation of numbers.
Then at intensity of refusals of one digit equal to P , intensity of refusals of PNS
nc = nc P ;
(10)
where nc =32 is the number of bits in the position processor.
      </p>
      <p>De nition and operative correction of erroneous results using positional systems are possible
only under the condition of simultaneous work of several computing devices on a principle of
voting; for comparison, the majority computing structure functioning on principle "2" from "3"
and providing masking of single failures and failures is chosen. The probability of non-failure
operation of such a system without taking into account the reliability of the voting element is
set by the expression [42].</p>
      <p>PP NS = 3P P02NS
2P P03NS ;
(8)
(9)
(11)
where PP NS is the probability that the position processor will fail.</p>
      <p>Figure 3 shows a graph of the di erent processing and storage systems in the cloud. The
best characteristics of the probability of trouble-free operation is a system based on a two-level
RRNS, which allows you to maintain high reliability, in 1000 days after starting work, it is 94%.</p>
      <p>Now let's de ne the M average time to failure of a cloud system operating in RRNS (time
for which the clouds will fail), as well as the expected time of M1 of the rst failure in this
cloud:
In this case, you can use the normalized value of M :
m =</p>
      <p>M
M1
=
n
X</p>
      <p>The analysis of the received dependencies testi es to advantage in the reliability of algorithms
of storage and processing of data based on RRNS over existing systems at an essential gain in
redundancy. Thus, at the use of algorithms of processing and data storage based on RRNS, it is
possible to receive a considerable increase in reliability of system without additional hardware
expenses at the decrease in redundancy.</p>
      <p>Reliability assessment of data storage and processing algorithms in the cloud environment
built based on RRNS, and their comparison with similar on qualitative functional characteristics
of existing positioning systems indicates their signi cant advantage, which is explained by the
presence of the e ect of elementary sliding redundancy. The ratio of redundant equipment of
positional and modular schemes of data processing and storage for various parameters of the
parried failures.</p>
      <p>When running a cloud system for a long time, it is important to know the number of failures
expected in a particular period. This data is necessary to select the best con guration for a
multi-cloud system. To determine the number of random events over a certain period, we apply
the Poisson distribution. The complete list of probabilities is as follows: probability of zero
bounces { e t, probability of one failure { t t, two bounces { ( 2t!)2 : e t, three bounce
(12)
(13)
{ ( 3t!)3 e t, n bounce { ( nt!)n e t. To get the number of months with 1, 2,... ...you need to
multiply the speci ed probabilities by the number of periods of T on the considered period t.
When calculating the Poisson distribution, there are the same limitations as for the exponential
distribution.</p>
      <p>The analysis of the table data shows that within 35.3 months, the RRNS-based multi-cloud
will operate smoothly, almost for the entire period of operation.</p>
      <p>Let's assume that a single failure leads to a failure of one cloud server; then, the number
of failures will be determined by the number of erroneous bits of the nal calculation. The
obtained relations allow choosing the redundant RRNS code with two control bases detecting
two and correcting one error. The error detection must be done after each nal result and,
therefore, must not a ect performance. Error correction and restoration of the correct result
with the obtained reliability characteristics will occur quite rarely. The carried out estimation
of reliability of cloud system functioning based on RRNS with recon gurable structure and
comparison with systems similar to qualitative aspects testify to their advantage.</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions</title>
      <p>In this paper, the architecture of a multi-cloud data storage system based on the principles of
modular arithmetic is developed. The o ered modi cation of the cloud system of data storage
and processing allows increasing reliability and fault tolerance of data storage. To increase the
fault-tolerance of developed methods in case of cloud server failure, redistribution of processed
data between available servers is applied. The introduction of small redundancy allows making
processing or restoration of the stored data in case of failure of control servers. This model
allows you to restore stored data in case of failure of one or more cloud servers. An adaptive
data storage system based on the residual number system, error correction codes, and data
distribution schemes has been developed. It provides a theoretical basis for calculating the
probability of information loss, data redundancy, encoding/decoding speed, and con guration
parameters to meet di erent object preferences, workloads, and cloud properties.</p>
      <p>Acknowledgements The reported study was funded by Russian Federation President Grant
MK-24.2020.9, MK-341.2019.9, SP-2236.2018.5 and SP-3149.2019.5
[14] Adya A, Bolosky W J, Castro M, Cermak G, Chaiken R, Douceur J R, Howell J, Lorch J R, Theimer M and</p>
      <p>Wattenhofer R P 2002 ACM SIGOPS Operating Systems Review 36 1{14
[15] Ateniese G, Fu K, Green M and Hohenberger S 2006 ACM Transactions on Information and System Security
(TISSEC) 9 1{30
[16] Bessani A, Correia M, Quaresma B, Andre F and Sousa P 2013 Acm transactions on storage (tos) 9 1{33
[17] Bowers K D, Juels A and Oprea A 2009 Proceedings of the 16th ACM conference on Computer and
communications security pp 187{198
[18] Dimakis A G, Ramchandran K, Wu Y and Suh C 2011 Proceedings of the IEEE 99 476{489
[19] Erkin Z, Veugen T, Toft T and Lagendijk R L 2012 IEEE transactions on information forensics and security
7 1053{1066
[20] Gentry C 2010 Communications of the ACM 53 97{105
[21] Gomathisankaran M, Tyagi A and Namuduri K 2011 2011 45th Annual Conference on Information Sciences
and Systems (IEEE) pp 1{5
[22] Kong Z, Aly S A and Soljanin E 2010 IEEE Journal on Selected Areas in Communications 28 261{267
[23] Li M, Lou W and Ren K 2010 IEEE Wireless communications 17 51{58
[24] Lin H Y and Tzeng W G 2011 IEEE transactions on parallel and distributed systems 23 995{1003
[25] Pang L J and Wang Y M 2005 Applied Mathematics and Computation 167 840{848
[26] Parakh A and Kak S 2011 Information Sciences 181 335{341
[27] Parakh A and Kak S 2009 Information Sciences 179 3323{3331
[28] Ruj S, Nayak A and Stojmenovic I 2011 2011IEEE 10th International Conference on Trust, Security and</p>
      <p>Privacy in Computing and Communications (IEEE) pp 91{98
[29] Samanthula B K, Elmehdwi Y, Howser G and Madria S 2015 Information Systems 48 196{212
[30] Sathiamoorthy M, Asteris M, Papailiopoulos D, Dimakis A G, Vadali R, Chen S and Borthakur D 2013
arXiv preprint arXiv:1301.3791
[31] Shah N B, Rashmi K, Kumar P V and Ramchandran K 2011 IEEE Transactions on Information Theory 58
2134{2158
[32] Wang C, Wang Q, Ren K, Cao N and Lou W 2011 IEEE transactions on Services Computing 5 220{232
[33] Wylie J J, Bigrigg M W, Strunk J D, Ganger G R, Kiliccote H and Khosla P K 2000 Computer 33 61{68
[34] Yang C C, Chang T Y and Hwang M S 2004 Applied Mathematics and Computation 151 483{490
[35] Lin S J, Chung W H and Han Y S 2014 2014 ieee 55th annual symposium on foundations of computer science
(IEEE) pp 316{325
[36] Babenko M, Tchernykh A, Chervyakov N, Kuchukov V, Miranda-Lopez V, Rivera-Rodriguez R, Du Z and</p>
      <p>Talbi E G 2019 Programming and Computer Software 45 532{543
[37] Tchernykh A, Babenko M, Chervyakov N, Miranda-Lopez V, Kuchukov V, Cortes-Mendoza J M, Deryabin
M, Kucherov N, Radchenko G and Avetisyan A 2018 International Journal of Approximate Reasoning 102
60{73
[38] Liu D T and Franklin M J 2004 Proceedings of the International Conference on Very Large Data Bases pp
600{611
[39] Tchernykh A, Babenko M, Chervyakov N, Cortes-Mendoza J M, Kucherov N, Miranda-Lopez V, Deryabin
M, Dvoryaninova I and Radchenko G 2017 2017 28th International Workshop on Database and Expert
Systems Applications (DEXA) (IEEE) pp 137{141
[40] Amrhein D and Quint S 2009 DeveloperWorks, IBM 8
[41] Tchernykh A, Babenko M, Chervyakov N, Miranda-Lopez V, Avetisyan A, Drozdov A Y, Rivera-Rodriguez</p>
      <p>R, Radchenko G and Du Z 2020 IEEE Internet of Things Journal
[42] Chervyakov N, Babenko M, Tchernykh A, Kucherov N, Miranda-Lopez V and Cortes-Mendoza J M 2019</p>
      <p>Future Generation Computer Systems 92 1080{1092
[43] Babenko M, Chervyakov N, Tchernykh A, Kucherov N, Shabalina M, Vashchenko I, Radchenko G and Murga
D 2017 2017 28th International Workshop on Database and Expert Systems Applications (DEXA) (IEEE)
pp 147{151
[44] Kesselman C and Foster I 2004 Grid: Blueprint for a New Computing Infrastructure (Elsevier Series in Grid
Computing) (Morgan Kaufmann Publishers)</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Bowers</surname>
            <given-names>K D</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juels</surname>
            <given-names>A</given-names>
          </string-name>
          and
          <string-name>
            <surname>Oprea</surname>
            <given-names>A</given-names>
          </string-name>
          2009
          <source>Proceedings of the 16th ACM conference on Computer and communications security pp 187{198</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Babenko</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kucherov</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tchernykh</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chervyakov</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nepretimova</surname>
            <given-names>E</given-names>
          </string-name>
          and
          <string-name>
            <surname>Vashchenko</surname>
            <given-names>I</given-names>
          </string-name>
          <source>2017 Proceedings of the Third International Conference BOINC: FAST</source>
          <year>2017</year>
          pp
          <volume>77</volume>
          {
          <fpage>84</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Grossman</surname>
            <given-names>R L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gu</surname>
            <given-names>Y</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sabala</surname>
            <given-names>M</given-names>
          </string-name>
          and
          <string-name>
            <surname>Zhang</surname>
            <given-names>W 2009</given-names>
          </string-name>
          <source>Future Generation Computer Systems 25</source>
          <volume>179</volume>
          {
          <fpage>183</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Grossman</surname>
            <given-names>R</given-names>
          </string-name>
          and
          <string-name>
            <surname>Gu</surname>
            <given-names>Y 2008</given-names>
          </string-name>
          <article-title>Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining pp 920{927</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Rabin</surname>
            <given-names>M O</given-names>
          </string-name>
          <year>1989</year>
          <article-title>Journal of the ACM (</article-title>
          <source>JACM) 36</source>
          <volume>335</volume>
          {
          <fpage>348</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Tchernykh</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miranda-Lopez</surname>
            <given-names>V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Babenko</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Armenta-Cano</surname>
            <given-names>F</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Radchenko</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drozdov</surname>
            <given-names>A Y</given-names>
          </string-name>
          and
          <string-name>
            <surname>Avetisyan A 2019 Cluster Computing</surname>
          </string-name>
          22
          <volume>1173</volume>
          {
          <fpage>1185</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Asmuth</surname>
            <given-names>C</given-names>
          </string-name>
          <source>and Bloom J 1983 IEEE transactions on information theory 29</source>
          <volume>208</volume>
          {
          <fpage>210</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Mignotte</surname>
            <given-names>M</given-names>
          </string-name>
          1982 Workshop on Cryptography (Springer) pp
          <volume>371</volume>
          {
          <fpage>375</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Celesti</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fazio</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Villari</surname>
            <given-names>M</given-names>
          </string-name>
          and Pulia to A
          <source>2016 Journal of Network and Computer Applications 59</source>
          <volume>208</volume>
          {
          <fpage>218</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Chervenak</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deelman</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Foster</surname>
            <given-names>I</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guy</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoschek</surname>
            <given-names>W</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iamnitchi</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kesselman</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kunszt</surname>
            <given-names>P</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ripeanu</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwartzkopf</surname>
            <given-names>B</given-names>
          </string-name>
          et al.
          <source>2002 SC'02: Proceedings of the 2002 ACM/IEEE Conference on Supercomputing (IEEE) pp</source>
          <volume>58</volume>
          {
          <fpage>58</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Ghemawat</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gobio</surname>
            <given-names>H</given-names>
          </string-name>
          <source>and Leung S T 2003 Proceedings of the nineteenth ACM symposium on Operating systems principles pp 29{43</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Tchernykh</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwiegelsohn</surname>
            <given-names>U</given-names>
          </string-name>
          , Talbi E g and Babenko M
          <source>2019 Journal of Computational Science 36 100581</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Abu-Libdeh</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Princehouse</surname>
            <given-names>L</given-names>
          </string-name>
          and
          <string-name>
            <surname>Weatherspoon</surname>
            <given-names>H</given-names>
          </string-name>
          <source>2010 Proceedings of the 1st ACM symposium on Cloud computing pp 229{240</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>