<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">IJIS</journal-id><journal-title-group><journal-title>International Journal of Intelligence Science</journal-title></journal-title-group><issn pub-type="epub">2163-0283</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/ijis.2015.53013</article-id><article-id pub-id-type="publisher-id">IJIS-55014</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  A Data-Placement Strategy Based on Genetic Algorithm in Cloud Computing
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>iang</surname><given-names>Xu</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Zhengquan</surname><given-names>Xu</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Tao</surname><given-names>Wang</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>State Key Laboratory of Information Engineering in Surveying, Mapping and Remote Sensing, Wuhan University, Wuhan, China</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>xuqiangwhu@163.com(IX)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>03</day><month>02</month><year>2015</year></pub-date><volume>05</volume><issue>03</issue><fpage>145</fpage><lpage>157</lpage><history><date date-type="received"><day>20</day>	<month>January</month>	<year>2015</year></date><date date-type="rev-recd"><day>accepted</day>	<month>20</month>	<year>March</year>	</date><date date-type="accepted"><day>25</day>	<month>March</month>	<year>2015</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  With the development of Computerized Business Application, the amount of data is increasing exponentially. Cloud computing provides high performance computing resources and mass storage resources for massive data processing. In distributed cloud computing systems, data intensive computing can lead to data scheduling between data centers. Reasonable data placement can reduce data scheduling between the data centers effectively, and improve the data acquisition efficiency of users. In this paper, the mathematical model of data scheduling between data centers is built. By means of the global optimization ability of the genetic algorithm, generational evolution produces better approximate solution, and gets the best approximation of the data placement at last. The experimental results show that genetic algorithm can effectively work out the approximate optimal data placement, and minimize data scheduling between data centers.
 
</p></abstract><kwd-group><kwd>Cloud Computing</kwd><kwd> Data Placement</kwd><kwd> Genetic Algorithm</kwd><kwd> Data Scheduling</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>With the increase of network equipment as well as the development of the Internet, data generation and storage capacity are growing explosively; data centers will face unpredictable visitor volume [<xref ref-type="bibr" rid="scirp.55014-ref1">1</xref>] . The large amount of data and the complex data structures make traditional database management unable to meet the requirements of big data storage and management. The distributed architecture of cloud computing can provide high-perfor- mance computing resources and mass storage resources [<xref ref-type="bibr" rid="scirp.55014-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref3">3</xref>] . However, in distributed cloud computing system, data-intensive computing needs to deal with large amounts of data; in multi-data center environment, some data must be placed in a specified data center and cannot be moved. A computation may process datasets from different data centers, then data scheduling between data centers will occur inevitably. Because of the huge size of data and limited network bandwidth, data scheduling between data centers has become a huge problem. The datasets processed simultaneously by a computation should be placed in the same data center, then almost all data processing is completed locally; that is the basic idea of the paper.</p><p>Much work has been developed about the data placement in distributed system and they can be divided into two types in general: static data placement and dynamic data placement. Most static data placement algorithms require complete knowledge of the workload statistics such as service times and access rates of all the files. Dynamic data placement algorithms [<xref ref-type="bibr" rid="scirp.55014-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref5">5</xref>] , generate file-disk allocation schemes on-line to adapt to varying workload patterns without a prior knowledge of the files to be assigned in the future. Dynamic data placement strategies update the placement strategy potentially upon every request. Obviously, they are effective when the data size is relatively small such as the case in web proxy caching. However, in applications like distributed video servers, dynamic schemes become less useful [<xref ref-type="bibr" rid="scirp.55014-ref6">6</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref7">7</xref>] . In data-intensive computing, if multiple computations jointly process multiple datasets in a frequent way, these datasets are supposed to be correlative with each other. Some researches on data placement are based on data correlation [<xref ref-type="bibr" rid="scirp.55014-ref8">8</xref>] -[<xref ref-type="bibr" rid="scirp.55014-ref12">12</xref>] ; however, the definitions of data correlation are not reasonable, and no effective method is proposed to reduce the data scheduling between the data centers. Replica strategy [<xref ref-type="bibr" rid="scirp.55014-ref13">13</xref>] is an effective measure to reduce the data scheduling and has earned widespread research interests, and it is also based on data placement.</p><p>This paper presents a genetic algorithm-based data placement strategy. First, a mathematical model of data scheduling between the data centers in cloud computing is built, and the fitness function based on the objective function is defined to evaluate the fitness of each individual in a population. After the initial population generated in accordance with the principle of survival of the fittest, the evolution of each generation produces better approximate solution. In every generation, roulette-wheel selection is used to choose the appropriate individuals with high fitness value and the individuals with low fitness value are eliminated. With the crossover and mutation operations, we change the placement location of datasets. Under the principle of survival of the fittest, the optimal individual can be found during the evolution.</p></sec><sec id="s2"><title>2. Data Placement Strategy in Cloud Computing</title><p>In cloud computing systems, data storage typically achieves petabytes magnitude scale, complex and diverse data structures, high requirements of data service type and level have brought great pressure to data management [<xref ref-type="bibr" rid="scirp.55014-ref14">14</xref>] . Cloud systems have the characteristics of data-intensive and compute-intensive, and the concurrent executions of large-scale computations in the systems require massive data and generate amass intermediate data. This paper attempts to establish a model of data scheduling between data centers that provides an accurate mathematical theoretical basis for data placement.</p><sec id="s2_1"><title>2.1. The Model of Data Scheduling between Data Centers in Cloud Computing</title><p>Assuming that a cloud computing system is composed by l data centers, and data are divided into n different datasets based on their inherent properties. When user request for data resources, we assign their different operations into m computations. If performing a computation needs to process datasets in different data centers, data scheduling between data center happen. The physical model of data scheduling between data center is showed in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><p>Assuming that the collection of datasets stored in a distributed cloud computing system is:</p><disp-formula id="scirp.55014-formula828"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x6.png"  xlink:type="simple"/></disp-formula><p>where n is the number of datasets and the size of dataset <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x7.png" xlink:type="simple"/></inline-formula> is <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x8.png" xlink:type="simple"/></inline-formula> ,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x9.png" xlink:type="simple"/></inline-formula>.</p><p>The l data centers in the system are denoted as:</p><disp-formula id="scirp.55014-formula829"><label>(2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x10.png"  xlink:type="simple"/></disp-formula><p>The basic capacity of data center S<sub>k</sub> is S<sub>k</sub>.</p><p>The m computations in the system are denoted as:</p><disp-formula id="scirp.55014-formula830"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x11.png"  xlink:type="simple"/></disp-formula><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Physical model of data scheduling between data center</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x12.png"/></fig><p>The execution frequencies of each computation can be denoted as:</p><disp-formula id="scirp.55014-formula831"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x13.png"  xlink:type="simple"/></disp-formula><p>where <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x14.png" xlink:type="simple"/></inline-formula> is the execution frequency of computation 𝑐<sub>𝑖</sub> in unit interval.</p><p>We define a processing factor<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x15.png" xlink:type="simple"/></inline-formula>, where</p><disp-formula id="scirp.55014-formula832"><label>(5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x16.png"  xlink:type="simple"/></disp-formula><p>Thus we can get the association matrix of the computation set C and the datasets D, which is denoted as:</p><disp-formula id="scirp.55014-formula833"><label>(6)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x17.png"  xlink:type="simple"/></disp-formula><p>Data placement is to distribute datasets into each data center. In this paper, data replica is out of consideration. Similarly, we define a placement factor<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x18.png" xlink:type="simple"/></inline-formula>, where</p><disp-formula id="scirp.55014-formula834"><label>(7)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x19.png"  xlink:type="simple"/></disp-formula><p>Thus we can get the association matrix (placement matrix) of the datasets D and the data center S, denoted as:</p><disp-formula id="scirp.55014-formula835"><label>(8)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x20.png"  xlink:type="simple"/></disp-formula><p>Matrix B reflects the status of the datasets D stored in the data centers S. We can easily find that the sum of the elements of each row in matrix B is 1,</p><disp-formula id="scirp.55014-formula836"><label>(9)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x21.png"  xlink:type="simple"/></disp-formula><p>The sum of the elements of the kth column in matrix B is the number of datasets stored in the data center S<sub>k</sub>, when we place datasets into data center S<sub>k</sub>, the stored data size should not exceed the basic capacity of S<sub>k</sub>, thus</p><disp-formula id="scirp.55014-formula837"><label>(10)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x22.png"  xlink:type="simple"/></disp-formula><p>Define a matrix Z, denoted as</p><disp-formula id="scirp.55014-formula838"><label>(11)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x23.png"  xlink:type="simple"/></disp-formula><p>Suppose</p><disp-formula id="scirp.55014-formula839"><label>(12)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x24.png"  xlink:type="simple"/></disp-formula><p>then matrix<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x25.png" xlink:type="simple"/></inline-formula>, <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x25.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x26.png" xlink:type="simple"/></inline-formula>is the number of datasets processed when the computation c<sub>i</sub> is performed one time in data center. The sum of elements in each row in matrix Z, denoted as<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x25.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x26.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x27.png" xlink:type="simple"/></inline-formula>, is the total number of times</p><p>of accessing all data centers during the execution of the computation c<sub>i</sub>, also is the number of datasets processed</p><p>during the execution of the computation c<sub>i</sub>. The sum of elements in each column, denoted as<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x28.png" xlink:type="simple"/></inline-formula>, is the</p><p>number of the datasets processed in data center S<sub>k</sub> when all the computations are performed one time. Define a function <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x29.png" xlink:type="simple"/></inline-formula> denoted as,</p><disp-formula id="scirp.55014-formula840"><label>(13)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x30.png"  xlink:type="simple"/></disp-formula><p>Then the number of data centers accessed during the execution of computation c<sub>i</sub> is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x31.png" xlink:type="simple"/></inline-formula>, the number of data scheduling is <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x31.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x32.png" xlink:type="simple"/></inline-formula> when computation c<sub>i</sub> is executed one time. When the placement matrix</p><p>is B, the total number of data scheduling during the execution of all computations in the system in unit interval can be expressed as:</p><disp-formula id="scirp.55014-formula841"><label>(14)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x33.png"  xlink:type="simple"/></disp-formula><p>Our objective is to find the optimal data placement solution B<sup>*</sup> that minimize<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x34.png" xlink:type="simple"/></inline-formula>. When placing datasets to data centers, we should meet the requirements of data center capacity and no duplication of datasets placement.</p><disp-formula id="scirp.55014-formula842"><label>(15)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x35.png"  xlink:type="simple"/></disp-formula></sec><sec id="s2_2"><title>2.2. Genetic Algorithm</title><p>In the issue of big data placement, the solution space is very huge, and B matrices are sparsely distributed in it. There are a lot of traditional optimization algorithms, such as the exhaustive search algorithm, Monte Carlo algorithm, Genetic algorithm, Simulated Annealing algorithm and so on. In this paper, different algorithms are compared to find the optimal data placement solution B<sup>*</sup>.</p><p>Exhaustive search algorithm is a direct way to search the optimal placement matrix. It works out all possible data placement B matrices, then traverses to find the smallest Г(B), at this point the placement matrix is the optimal solution. However, the computation complexity of exhaustive search algorithm is very high which approximates<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x36.png" xlink:type="simple"/></inline-formula>. In a distributed cloud computing system, the number of datasets n is so great that the computation complexity is unbearable to system. What is more, some constraint conditions, such as storage capacity limitation <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x37.png" xlink:type="simple"/></inline-formula> and no replicas<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x36.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x37.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x38.png" xlink:type="simple"/></inline-formula>, make solving the placement problem being a</p><p>NP-hard problem. So the exhaustive search algorithm is only available when the number of datasets is small.</p><p>Monte Carlo algorithm is based on probability theory and statistics methods. In big data placement based on Mont Carlo algorithm, we randomly generate a certain number of B matrices as a sample, then calculate data scheduling between data centers on each sample matrix B, and find out the placement matrix with the minimum data scheduling. Compared with the exhaustive search algorithm, the computation complexity of Monte Carlo algorithm is improved, however, B matrices are sparsely distributed in the solution space, the search efficiency of Monte Carlo algorithm is still not high. It has a strong regularity as well as constraint conditions to generate placement matrices, genetic algorithm uses a strategy of a directed search through a problem state space from a variety of points in that space [<xref ref-type="bibr" rid="scirp.55014-ref15">15</xref>] , it is more efficient and robust than the random search, enumerative or calculus based techniques [<xref ref-type="bibr" rid="scirp.55014-ref16">16</xref>] . Therefore, the use of genetic algorithm can deal with this problem.</p><p>Genetic algorithm is an adaptive search and optimization algorithm based on the mechanics of natural selection and natural genetics [<xref ref-type="bibr" rid="scirp.55014-ref17">17</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref18">18</xref>] . A population of candidate solutions (called individuals) to an optimization problem is evolved toward better solutions [<xref ref-type="bibr" rid="scirp.55014-ref19">19</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref20">20</xref>] . In genetic algorithm, the degree of adaptation of each individual to the environment is represented by fitness. Individual with high fitness has a greater chance to survive. In each generation, the fitness value of each individual in the population is evaluated, individuals with higher fitness value are stochastically selected from the current population, then crossover and mutation operator are manipulated to form a new generation. The new generation of candidate solutions is then used in the next iteration of the algorithm.</p><p>1) Encoding</p><p>In the issue of genetic algorithm-based data placement, the placement of datasets in data centers is represented by matrix B, because of the string structure of matrix, the placement matrix is directly manipulated as genotype in genetic algorithm.</p><p>2) Individual and population</p><p>An individual is a point in the searching space, the collection of placement matrices is the searching space of the data placement.</p><p>A population consists of several individuals and it is a subset of the whole searching space.</p><p>3) Fitness function</p><p>Fitness function is the evaluation function to guide the search in genetic algorithm [<xref ref-type="bibr" rid="scirp.55014-ref21">21</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref22">22</xref>] . In the issue of genetic algorithm-based data placement, the objective function is denoted as Г(B), and the fitness function is the reciprocal of the objective function, that is 𝐹 = 1/Г(B).</p><p>4) Genetic operators</p><p>① Selection: Roulette wheel selection is a genetic operator used in genetic algorithms for selecting potentially useful solutions for recombination [<xref ref-type="bibr" rid="scirp.55014-ref23">23</xref>] , chromosomes with higher fitness level are more likely to be selected. The steps of Roulette wheel selection are as follows:</p><p>Step 1: Obtain the fitness value f(i) of each individual in a N size population.</p><p>Step 2: Suppose there is an individual 𝑘 and its probability of being selected is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x39.png" xlink:type="simple"/></inline-formula>:</p><disp-formula id="scirp.55014-formula843"><label>(16)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x40.png"  xlink:type="simple"/></disp-formula><p>Step 3: Suppose 𝑞(0) = 0,<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x41.png" xlink:type="simple"/></inline-formula>;</p><p>Step 4: Generate a random number r (0 ≤ r &lt; 1), if q(k‒1) &lt; r &lt; q(k), then individual k is selected.</p><p>② Crossover: In Genetic algorithm, crossover operator is used to vary the programming of a chromosome or chromosomes from one generation to the next [<xref ref-type="bibr" rid="scirp.55014-ref24">24</xref>] . Before crossover, individuals in the population should be paired randomly and choose the crossover point and then exchange some genes. Assume that B<sub>1</sub> pairs with B<sub>2</sub>, generate two random number r<sub>1</sub>, r<sub>2 </sub>(0 &lt; r<sub>1</sub> &lt; r<sub>2</sub> &lt; n) as the crossover point, then exchange the genes between the two points, the resulting organisms are the children. <xref ref-type="fig" rid="fig2">Figure 2</xref> is the schematic of the two-point crossover in a 4*3 placement matrix.</p><p>③ Mutation: Mutation alters one or more genes in a chromosome from its initial state. For a binary string, if the genome bit is 1, it is changed to 0 and vice versa. When the mutation operator is used in a placement matrix, a random number r<sub>1</sub> (0 ≤ r<sub>1</sub> &lt; n) is generated, and the placement of dataset <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x42.png" xlink:type="simple"/></inline-formula> is to be changed, then generate two random number r<sub>2</sub>, r<sub>3</sub> (0 ≤ 𝑟<sub>2</sub> ≠r<sub>3</sub> &lt; l), If <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x42.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x43.png" xlink:type="simple"/></inline-formula> is 1, then change it from 1 to 0, and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x42.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x43.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x44.png" xlink:type="simple"/></inline-formula> from 0 to 1; if</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Perform two-point crossover operator on placement matrixes</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x45.png"/></fig><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x46.png" xlink:type="simple"/></inline-formula>is 0, then change it from 0 to 1, meanwhile change another 1 in the same row from 1 to 0, to ensure that each row has only one 1, thus change the placement of dataset <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x46.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x47.png" xlink:type="simple"/></inline-formula> in data center. <xref ref-type="fig" rid="fig3">Figure 3</xref> is the schematic of the mutation in a 4*3 placement matrix.</p></sec><sec id="s2_3"><title>2.3. Process of Data Placement Based on Genetic Algorithm</title><p>Step 1: Determine the size of population (G), crossover rate (P<sub>c</sub>) and mutation rate (P<sub>m</sub>) according to the actual situation.</p><p>Step 2: Generate the initial population: Initial population BG (0) consists of G placement matrices. To generate an individual matrix B<sub>i</sub>, all the elements of the matrix is set to 0, then n random numbers <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x48.png" xlink:type="simple"/></inline-formula> (0 ≤ r<sub>i</sub> &lt; l) are produced, random number r<sub>i</sub> indicates dataset d<sub>i</sub> is to be placed into data center<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x48.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x49.png" xlink:type="simple"/></inline-formula>, then placement factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x48.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x49.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x50.png" xlink:type="simple"/></inline-formula> is changed from 0 to 1. If the generated matrix does not meet the constraint condition in Equation (10), then abandon it and generate a new one.</p><p>Step 3: Calculate the fitness of each individual in population BG(T), T = 0, 1, 2, &#215;&#215;&#215;, MaxGen: Get matrix Z by matrix multiplication, that is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x51.png" xlink:type="simple"/></inline-formula>. The number of non-zero elements of row 𝑖 in matrix Z is the times of accessing all data centers during the execution of the computation c<sub>i</sub>, when computation c<sub>i</sub> is executed one time,</p><p>the number of data scheduling is<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x52.png" xlink:type="simple"/></inline-formula>. Then we can work out the total number of data schedule</p><p>ing in <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x53.png" xlink:type="simple"/></inline-formula> during the execution of all computations in the system in unit interval, that is:</p><disp-formula id="scirp.55014-formula844"><label>(17)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/2-1680156x54.png"  xlink:type="simple"/></disp-formula><p>Step 4: Calculate the number of data scheduling Г(B<sub>t</sub>) of each individual in population BG(T), the fitness value of B<sub>t</sub> is denoted as 𝐹 = 1/Г(B<sub>t</sub>). After the fitness value of each individual and the probabilities being chosen are calculated, select G individuals from BG(T) by roulette wheel selection.</p><p>Step 5: Perform crossover operator on the selected placement matrices: Crossover rate P<sub>c</sub> represents the percentage of the chromosomes taking part in the crossover operation [<xref ref-type="bibr" rid="scirp.55014-ref18">18</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref19">19</xref>] . The process of crossover is as follows:</p><fig-group id="fig3"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Perform mutation operator on placement matrixes.</title></caption><fig id ="fig3_1"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x55.png"/></fig><fig id ="fig3_2"><label></label><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x56.png"/></fig></fig-group><p>Step 6: Perform mutation operator on the selected placement matrices: Mutationrate P<sub>m</sub> represents the percentage of the chromosomes taking part in the mutation operation [<xref ref-type="bibr" rid="scirp.55014-ref25">25</xref>] [<xref ref-type="bibr" rid="scirp.55014-ref26">26</xref>] . If the size of a population is G and each individual has n genes, the number of genes to be mutated is G*n*P<sub>m</sub>. We can generate random number (0 ≤ 𝑟 ≤ 1), if r &lt; P<sub>m</sub>, the corresponding gene is to be mutated. The process of mutation is as follows:</p><disp-formula id="scirp.55014-formula845"><graphic  xlink:href="http://html.scirp.org/file/2-1680156x57.png"  xlink:type="simple"/></disp-formula><p>Step 7: Abandon the new individuals that do not meet the requirements of the storage capacity limitation</p><p><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x58.png" xlink:type="simple"/></inline-formula>and no replicas <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x58.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x59.png" xlink:type="simple"/></inline-formula> = 1. If the generation does not exceed MaxGen, return Step 3</p><p>and continue the evolution, otherwise terminate the iteration and find the individual with highest fitness, the individual is regard as the approximate optimal solution.</p><p>Step 8: From the definition of placement factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x60.png" xlink:type="simple"/></inline-formula> in Equation (7), we get to know that <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x61.png" xlink:type="simple"/></inline-formula> = 1 denotes dataset <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x61.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x62.png" xlink:type="simple"/></inline-formula> is placed in data center S<sub>k</sub>. After we find the approximate optimal solution B<sup>*</sup>, the placement of dataset <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x61.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x63.png" xlink:type="simple"/></inline-formula> can be determined by the placement factor <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x60.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x61.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x62.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x63.png" xlink:type="simple"/></inline-formula><inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/2-1680156x64.png" xlink:type="simple"/></inline-formula> in B<sup>*</sup>.</p></sec></sec><sec id="s3"><title>3. Experiment and Simulation</title><sec id="s3_1"><title>3.1. Simulation Environment</title><p>To test the data placement strategy based on genetic algorithm proposed in this paper, a “digital city” oriented data storage and access platform is constructed. The platform is composed of 20 Dell Power Edge T410 servers. Each of them has 8 Intel Xeon E5606 CPU (2.13 GHz), 16G DDR3 memory and 3TB SATA disk. Every server acts as a data center and we deploy VMware and independent Hadoop distributed file system on each data center. Under the environment of Gigabit Ethernet, users can submit data and perform computations through digital city application demonstration system developed by Flex 4.5.</p></sec><sec id="s3_2"><title>3.2. Simulation Result and Analysis</title><p>In this paper, genetic algorithm is applied to the placement of big data, and comprehensive performance test has been done. To verify the feasibility of genetic algorithm in data placement, we compared the data scheduling between data centers of solutions searched by genetic algorithm with exhaustive search algorithm when the number of datasets was small, the relationship between the minimum number of data scheduling of different number of datasets and the generation are represented by a line chart. We ran 10 test computations randomly for 400 times on 3 data centers and compared the data scheduling between data centers of solutions searched by different algorithms when the number of datasets changed. In genetic algorithm the size of initial population was 200, the maximum generations was set to 1000, and the crossover rate and the mutation rate were 0.5 and 0.05 respectively. The number of iterations of the Monte Carlo algorithm was 10<sup>6</sup>.</p><p>The data scheduling between data centers of the three algorithms is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>. From <xref ref-type="fig" rid="fig4">Figure 4</xref>, we can find the results of the three algorithms are exactly the same in each case as the number of datasets changes. The results of exhaustive search algorithm are obtained by traversing, thus the corresponding results are the optimal data placement matrices, so using genetic algorithm and Monte Carlo algorithm can also find the optimal data placement matrices.</p><p>As <xref ref-type="fig" rid="fig5">Figure 5</xref> schematically shows, with the increase of generation, the minimum number of data scheduling becomes smaller and smaller, optimization results get more and more close to the optimal solutions. When the number of datasets is 8, the convergence generation is around 400, the convergence generations of different number of datasets are different from each other.</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Data scheduling between data centers with different number of datasets</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x65.png"/></fig><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Minimum number of data scheduling in the evolution</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x66.png"/></fig><p>With the increase of the number of datasets, exhaustive search algorithm became infeasible because of the computation complexity. Then we compared the data scheduling between data centers of approximate optimal solutions searched by genetic algorithm with the results searched by Monte Carlo algorithm when the number of datasets was large, the optimization time of each algorithm were also compared. We ran 30 different test computations randomly for 2500 times on 5 data centers with different number of datasets, then we ran the test computations on different numbers of data centers when the number of datasets was 60. In genetic algorithm the size of initial population was 5000, the maximum generations was set to 2000, and the crossover rate and the mutation rate were 0.6 and 0.1 respectively. The number of iterations of the Monte Carlo algorithm was 10<sup>9</sup>.</p><p>From the <xref ref-type="fig" rid="fig6">Figure 6</xref> and <xref ref-type="fig" rid="fig7">Figure 7</xref>, we can see the increase of datasets or data centers leads to the growth of da-</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Data scheduling between data centers with different number of datasets</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x67.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Data scheduling between data centers with diffferent number of data centers</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x68.png"/></fig><p>ta scheduling between data centers. By comparing the data, we find that the data scheduling between data centers of approximate optimal data placement matrices searched by genetic algorithm are always smaller than Monte Carlo algorithm in each case. So for data placement issue, in the case of large datasets, the search results of genetic algorithm are better than Monte Carloalgorithm.</p><p><xref ref-type="fig" rid="fig8">Figure 8</xref> schematically shows the relationship between the minimum number of data scheduling of different number of datasets and the generation. In the experiment, the number of data center was fixed as 5. It appears that the convergence generations of different number of datasets are different from each other. Then the number of datasets was fixed as 60 and we ran 30 test computations randomly for 2500 times on different numbers of data centers, as shown in <xref ref-type="fig" rid="fig9">Figure 9</xref>. With the increase of generation, the minimum number of data scheduling becomes smaller, and optimization results get more close to the optimal solutions.</p><fig id="fig8"  position="float"><label><xref ref-type="fig" rid="fig8">Figure 8</xref></label><caption><title> Minimum number of data scheduling of different number of datasets in the evolution</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x69.png"/></fig><fig id="fig9"  position="float"><label><xref ref-type="fig" rid="fig9">Figure 9</xref></label><caption><title> Minimum number of data scheduling of different number of data centers in the evolution</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x70.png"/></fig><p>The optimization time of the two algorithms are showed in <xref ref-type="fig" rid="fig1">Figure 1</xref>0 and <xref ref-type="fig" rid="fig1">Figure 1</xref>1. We can find either the increase of datasets or the number of data centers would lead to the increase of the optimization time, and the growth rate of optimization time of Monte Carlo algorithm is much higher than genetic algorithm. It is time costly for Monte Carlo algorithm to find an approximate optimal data placement matrix when the number of datasets or data centers increase to a certain degree. In the case of large number of datasets, the characteristics of inherent parallelism and convergence of genetic algorithm made it possible to find a better solution within an acceptable time.</p></sec></sec><sec id="s4"><title>4. Summary and Future Work</title><p>In the environment of distributed cloud computing, placing data to the appropriate data center has become a</p><fig id="fig10"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>0</label><caption><title> Optimization time of the two algorithms in different number of datasets</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x71.png"/></fig><fig id="fig11"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref>1</label><caption><title> Optimization time of the two algorithms in different number of data centers</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/2-1680156x72.png"/></fig><p>critical issue. Reasonable placement of datasets in data centers can minimize the number of data scheduling between the data centers. In this paper, a mathematical model is built to illustrate the relationship among datasets, data centers and computations. Three different algorithms are used to search the approximate optimal data placement matrices. By comparing genetic algorithm with exhaustive search algorithm and the Monte Carlo algorithm, we can work out the truth that under verifiable conditions, genetic algorithm can find the optimal data placement matrix; when the number of datasets is large enough, genetic algorithm can find an approximate optimal data placement matrix in a reasonable time, and the optimization result is better than Monte Carlo algorithm.</p><p>Currently, the focus of our research is to find an optimal data placement matrix, making the number of data scheduling between the data centers as small as possible. During the research, the impact of data access history and access heat on data placement are out of our consideration. The heat of the data and the execution frequency of computations are not constant over time, then data placement needs to update which increases the cost of data management for enterprise; this issue needs further study. In terms of genetic algorithms, the selection is an important operator. There are many selection methods, such as Roulette wheel selection method, league selection method, expectations selection method. In this paper we use Roulette wheel selection method. Different methods of genetic selection affect the performance of the algorithm which requires further study.</p></sec><sec id="s5"><title>Acknowledgements</title><p>This paper is part of the research undertaken by Qiang Xu to obtain the Master’s Degree in communication and information system at Wuhan University, also as part of the complex application environments oriented theoretical study for data storage funded by the same university.</p></sec><sec id="s6"><title>NOTES</title></sec></body><back><ref-list><title>References</title><ref id="scirp.55014-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Liu, Z.G., Wang, J.H. and Di, Y.S. (2004) A Modified Genetic Simulated Annealing Algorithm and Its Application. China Journal of System Simulation, 16, 1099-1101.</mixed-citation></ref><ref id="scirp.55014-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Deb, K., Pratap, A., Agarwal, S. and Meyarivan, T. (2002) A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6, 182-197.</mixed-citation></ref><ref id="scirp.55014-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Wong, M. and Wong, T. (2009) Implementation of Parallel Genetic Algorithms on Graphics Processing Units. Intelligent and Evolutionary Systems, 187, 197-216.</mixed-citation></ref><ref id="scirp.55014-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Back, T. (1996) Evolutionary Algorithms in Theory and Practice. Oxford University Press, Oxford, 120.</mixed-citation></ref><ref id="scirp.55014-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Tan, B.C., et al. (2008) A Kind of Improved Genetic Algorithms Based on Robot Path Planning Method. Journal of Xi’an University of Technology, 28, 456-459.</mixed-citation></ref><ref id="scirp.55014-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Polgar, O., Fried, M., Lohner, T. and Barsony, I. (2000) Comparison of Algorithms Used for Evaluation of Ellipsometric Measurements Random Search, Genetic Algorithms, Simulated Annealing and Hill Climbing Graph-Searches. Surface Science, 457, 157-177. http://dx.doi.org/10.1016/S0039-6028(00)00352-6</mixed-citation></ref><ref id="scirp.55014-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Pan, W., Diao, H.Z. and Jing, Y.W. (2006) A Improved Real Adaptive Genetic Algorithm. Control and Decision, 21, 792-795.</mixed-citation></ref><ref id="scirp.55014-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Mitchell, M. (1996) Introduction to Genetic Algorithm. MIT Press, Cambridge, MA.</mixed-citation></ref><ref id="scirp.55014-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Zhou, M. and Sun, S.D. (1999) Genetic Algorithms and Applications. National Defense Industry Press, Beijing.</mixed-citation></ref><ref id="scirp.55014-ref10"><label>10</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Grant</surname><given-names> K. </given-names></name>,<etal>et al</etal>. (<year>1995</year>)<article-title>An Introduction to Genetic Algorithms</article-title><source> C/C++ Users Journal</source><volume> 13</volume>,<fpage> 45</fpage>-<lpage>58</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.55014-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Goldberg, D.E. (1989) Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley, Reading, MA.</mixed-citation></ref><ref id="scirp.55014-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Goldberg, D.E. (1989) Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Longman Publishing Co., Boston.</mixed-citation></ref><ref id="scirp.55014-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Agrawal, D., Das, S. and El Abbadi, A. (2011) Big Data and Cloud Computing: Current State and Future Opportunities. Proceedings of the 14th International Conference on Extending Database Technology, Uppsala, 21-25 March 2011, 530-533.</mixed-citation></ref><ref id="scirp.55014-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Nukarapu, D.T., Tang, B., Wang, L.Q. and Lu, S.Y. (2011) Data Replication in Data Intensive Scientific Applications with Performance Guarantee. IEEE Transactions on Parallel and Distributed Systems, 22, 1299-1306.</mixed-citation></ref><ref id="scirp.55014-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Zheng, P., Cui, L.Z., Wang, H.Y. and Xu, M. (2010) A Data Placement Strategy for Data-Intensive Applications in Cloud. Chinese Journal of Computers, 33, 1472-1480. http://dx.doi.org/10.3724/SP.J.1016.2010.01472</mixed-citation></ref><ref id="scirp.55014-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Yuan, D., Yang, Y., Liu, X. and Chen, J.J. (2010) A Data Placement Strategy in Scientific Cloud Workflows. Future Generation Computer Systems, 26, 1200-1214. http://dx.doi.org/10.1016/j.future.2010.02.004</mixed-citation></ref><ref id="scirp.55014-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Kosar, T. and Livny, M. (2005) A Framework for Reliable and Efficient Data Placement in Distributed Computing Systems. Journal of Parallel and Distributed Computing, 65, 1146-1157. http://dx.doi.org/10.1016/j.jpdc.2005.04.019</mixed-citation></ref><ref id="scirp.55014-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Fedak, G., He, H. and Cappello, F. (2008) BitDew. A Programmable Environment for Large-Scale Data Management and Distribution. ACM/IEEE Conference on Supercomputing, Austin, 15-21 November 2008, 1-12. http://dx.doi.org/10.1109/SC.2008.5213939</mixed-citation></ref><ref id="scirp.55014-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Doraimani, S. and Iamnitchi, A. (2008) File Grouping for Scientific Data Management: Lessons from Experimenting with Real Traces. Proceedings of the 17th International Symposium on High Performance Distributed Computing, ACM, Boston, 2008, 153-164.</mixed-citation></ref><ref id="scirp.55014-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Zhou, X. and Xu, C. (2002) Optimal Video Replication and Placement on a Cluster of Video-on-Demand Servers. Proceedings of International Conference on Parallel Processing (ICPP), 2002, 547-555. http://dx.doi.org/10.1109/ICPP.2002.1040912</mixed-citation></ref><ref id="scirp.55014-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Scheuermann, P., Weikum, G. and Zabback, P. (1998) Data Partitioning and Load Balancing in Parallel Disk Systems. The VLDB Journal, 7, 48-66. http://dx.doi.org/10.1007/s007780050053</mixed-citation></ref><ref id="scirp.55014-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Wolf, J. and Pattipati, K. (1990) A File Assignment Problem Model for Extended Local Area Network Environments. Proceedings of 10th International Conference on Distributed Computing Systems, Paris, 28 May-1 Jun 1990, 554-561.</mixed-citation></ref><ref id="scirp.55014-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Qiu, L., Padmanabhan, V.N. and Voelker, G.M. (2001) On the Placement of Web Server Replicas. Proceedings—IEEE INFOCOM, Anchorage, 22-26 April 2001, 1587-1596.</mixed-citation></ref><ref id="scirp.55014-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Manyika, J., Chui, M., Brown, B., et al. (2011) Big Data: The Next Frontier for Innovation, Competition, and Productivity. McKinsey Global Institute.</mixed-citation></ref><ref id="scirp.55014-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">(2008) Big Data. Nature, 455, 1-136.</mixed-citation></ref><ref id="scirp.55014-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Labrinidis, A. and Jagadish, H. (2012) Challenges and Opportunities with Big Data. Proceedings of the VLDB Endowment, 5, 2032-2033. http://dx.doi.org/10.14778/2367502.2367572</mixed-citation></ref></ref-list></back></article>