Article Preview
Top1. Introduction
Cloud computing delivers numerous benefits including reduced costs for data storage backup and data accessibility (Li et al., 2012; Li et al., 2015; Li et al., 2016; Attiya & Zhang, 2017). The essential cloud characteristic is its ability to store data while ensuring its availability, which is an important feature when storing sensitive information. Despite the success of cloud computing and its immediately observable benefits, however, the rapid development of the scale and complexity of today's cloud services and infrastructures has also revealed important challenges regarding the design of fundamental cloud computing architectures, specifically concerning high data reliability requirements and storage costs.
Many surveys conducted over recent years have shown that enterprises and critical business organizations are moving from the single-cloud to the multi-cloud (Tebaa et al., 2014; Sengupta et al., 2014; Liu & Shen, 2017; Alshammari et al., 2017; Alshammari et al., 2018). Moreover, using a minimum of two clouds (or more) is a way to reduce the risk of failure with regard to service availability, data loss, and compromised privacy. Also, using multiple clouds simultaneously can reduce the risk when using a public cloud for applications and data (Sengupta & Annervaz, 2012; Prazeres & Lopes, 2013; Lenk & Tai, 2014; Alhazmi, 2016; Sabbaghi et al., 2017; Liu & Shen, 2017; Choo & Chung 2018). Keeping data in one single-cloud environment may not be prudent as any damage to the datacenters of this single-cloud in the case of disaster will result in permanent data loss (Tebaa et al., 2014; Sengupta et al., 2014; Gu et al., 2014; Alshammari et al., 2017; Alshammari et al., 2018). Other solutions for developing a data backup and recovery plan involve multi-cloud providers in which multiple data replicas are generated for several remote CPs (Sengupta et al., 2014; Gu et al., 2014; Sulochana & Dubey, 2015). These approaches guarantee high data reliability and minimize the risk of data loss in case of disasters, thereby ensuring that user data are recoverable in the event of catastrophic failure. Most proposed solutions assume that the data should be replicated into at least three copies (three replicas) to ensure high reliability (Lei et al., 2007; Li et al., 2012; Gu et al., 2014; Li et al., 2015; Li et al., 2016; Du et al., 2017). These copies may be stored in one location or distributed over multiple locations. However, these solutions incur high storage costs and consume a significant amount of storage space, which leads to high network traffic, particularly for data-intensive applications in the cloud.