# Data Chunks Placement Optimization for Hybrid Storage Systems
## 3 The Model
### System Characterization  
Let us first assume that the system consists of two sets of the storages:  
* set \(\theta=\{\theta_{1},\,\ldots,\,\theta_{\text{F}}\}\) to denote the public cloud storages; F is a number of the nodes, and \(\theta_{\text{j}}\) denotes the jth public node, and
* set \(\text{U}=\{\text{U}_{1},\,\ldots,\,\text{U}_{\text{T}}\}\) to represent the avalaible private storages, where T is number of the private nodes, and \(\text{U}_{\text{i}}\) denotes the i-th private node, while
* \(u=\{u_{1},\,\ldots,\,u_{\text{T}}\}\) represents private storages sizes. As was mentioned before, each object consists of the same size fragments (chunks or packets), and those fragments are transferred between the transmission and receiver nodes, i.e., if the object consists of the set of chunks \(\Omega=\{\Lambda_{11},\Lambda_{12},\ldots,\Lambda_{\mu\omega}\}\) (where \(\mu\) represents the cloud vendor, and \(\omega\) is the region of the storage), then the average size of each chunk will be:  
\[\Psi_{\lambda}=\frac{|\Omega|}{\kappa}\, \tag{1}\]  
where xis a number of the fragments, and \(\Omega\) is the object size. The costs of the data transfer between the nodes are characterized by the following matrix:  
\[\text{W}=\left[ \begin{array}{ccc}\text{w}_{\text{11}}&\ldots&\text{w}_{ \text{1F}}\\ \ldots&\ldots&\ldots\\ \text{w}_{\text{T1}}&\ldots&\text{w}_{\text{TF}}\end{array} \right],\]  
where is \(\text{w}_{\text{ab}}\) represents data transfer cost (data transfer rate) between source \"a\" and receiver \"b\". Since some storage nodes may fail, one of the main concerns of system design is reliability. To avoid data loss and ensure system integrity during the building/rebuilding  
Figure 1: Architecture of the data chunk placement model. process of the objects, we performed a two-step procedure for ensuring the integrity of the system: in the first step, we check the accessibility of all storage systems, and, if the storage systems are fully available for data transfer, we perform the next step, in which we check the availability of the data. Even though cloud storage systems were designed to be nearly 100 percent durable, multiple factors (like network failures) can disrupt accessibility of the storage. Furthermore, the encrypted data which we store in cloud storages is vulnerable to attacks [20; 21; 22] and can be damaged in multiple ways. If the encrypted data is damaged, we consider the data as unavailable for rebuilding, despite the fact that there is storage available for data transfer. For this reason, we introduced two new terms: the probability of availability (P) and the probability of unavailability (P'). Because the system needs to be stable, we accept that the availability probability of the storages always must be much bigger than unavailability probability: P >> P'. The metric which we use for availability is number of nines [23]. For example, if the availability of the system is 99.9%, then we refer it as three nines. The system with three nines availability is expected to have 8.75 h downtime per year [24]. Thus, it represents system unavailability probability, which is equal to 0.1%. To manage a cloud-to-cloud (public-to-private) data transfer successfully, a certain number of the transfer nodes should be available for rebuilding the object. The overall availability-state of the nodes is defined by an n-dimensional binary vector, where n is the number of the nodes, and c\({}_{\xi}=0\), if the storage is inaccessible; otherwise, c\({}_{\xi}=1\), if is available to transfer data.