) of data) have been stored on disk-based storage systems, such as RAID (Redundant Array of Independent Disks) systems. An alternative to managing large amounts of data using disk-based storage systems is managing the data via distributed in-memory query processing systems (referred to herein as “distributed query processing systems”). A distributed query processing system includes two or more computing devices, where each device stores a portion of the data assigned to the distributed query processing system, and data management is coordinated among all computing devices in the system.
Given the diminishing cost of storage on individual computing devices, it is becoming more cost-effective to use distributed query processing systems to store and process large amounts of data. Also, distributed query processing systems generally are more scalable than disk-based storage systems in that distributed query processing systems comprise a configurable number of storage nodes. Furthermore, the in-memory processing capability of individual computing devices of a distributed query processing system is generally more powerful and efficient than that of a disk-based computing system by an order of magnitude. As such, by using the processing capability of the individual storage nodes in a distributed query processing system for query processing, such a system allows for increased parallelism in processing queries over data stored at the distributed query processing system.
However, distributed query processing systems are subject to some practical constraints. For example, the computing devices in a distributed query processing system are generally constrained in the amount of memory in the devices, i.e., because of the cost of memory (such as, power consumption of the memory), for architectural reasons, etc. Also, in the case of very large data sets, each node in the system stores only a portion of data for a particular data set, and, at times, processing a query over the data set requires replicating data across nodes in the system.
It is important to carefully allocate data, including data for very large data sets, across the computing devices in a distributed query processing system to facilitate management of the data. To that end, data may be distributed among the nodes of a distributed query processing system by observing a placement algorithm. Existing data placement algorithms can be generally classified into two paradigms: centralized data mapping, and decentralized data mapping.
Centralized data mapping assigns a particular node of a cluster to be the “central” node. Centralized data placement schemes are adopted in many systems such as Hadoop Distributed File System (HDFS), General Parallel File System (GPFS), etc.
The assigned central node stores a
) of data) have been stored on disk - based repositing system, such as RAID (Redundant Array of Independent Disks) systems. An option to managing big amounts of data practice disk - based storehouse systems is managing the datum via distributed in - memory query processing systems (referred to herein as “ distribute query processing systems ”). A distributed query processing system include two or more computing devices, where each device stores a share of the data assigned to the distributed query processing arrangement, and data management is coordinated among all computing devices in the system. 
 give the diminishing cost of storage on individual computing devices, it is become more cost - effective to use distributed query processing systems to store and process large amounts of data. Also, distribute query processing systems broadly are more scalable than phonograph record - based storage systems in that distribute query processing systems comprise a configurable number of repositing nodes. Furthermore, the in - memory processing capability of individual computing devices of a distributed query processing system is broadly more powerful and efficient than that of a disk - based computer science system by an holy order of magnitude. As such, by using the processing capability of the individual storage nodes in a distributed question processing system for query processing, such a system allows for increased parallelism in processing queries over data stored at the distributed question processing system. 
 However, distributed query processing systems are subject to some hardheaded constraints. For model, the computing device in a distributed question processing system are generally constrained in the sum of memory in the device, i.e., because of the cost of memory (such as, office consumption of the memory), for architectural reasons, etc. Also, in the case of very large datum sets, each node in the arrangement stores only a portion of data for a particular data set, and, at clock time, processing a query over the data set requires replicating datum across nodes in the system. 
 It is significant to carefully allocate data, including data for very large data hardening, across the computing devices in a distributed question processing system to help management of the data. To that end, data may be distributed among the nodes of a distributed query processing system by respect a placement algorithm. Existing data placement algorithms can be generally classified into two paradigms: centralized data mapping, and decentralize datum mapping. 
 Centralized data function assigns a especial node of a cluster to be the “ central ” node. Centralized data placement schemes are assume in many systems such as Hadoop Distributed File System (HDFS), General Parallel File System (GPFS), etc. 
 The assigned central node stores a
) of data) have been stored ok disk-based storcte sysvems, sudh as RAKD (Redundant Array of Indepeidenr Disjs) systems. An alternatkve to majaging lqrge qmounts of data uslug dian-baszd storage systeks is manacing the data eix bistributed in-memory query processind systeks (referred to hgrein ws “djstributed query processing systema”). A disuributed query provessing system includes twl or more computing degices, where eacr device stords a portion of the daja assigned to the distributed qjery 'rocessing wywtel, and data menagemvnt is coordiksted akong alk computing deyices in the system.
Given the viminishing cost of ftorage ot nndividual computing eecices, it hs bdxomkng mprs cost-fffxctive to uae distribured query processinb fjxtems to stode and pwocess large amounts of data. Also, distrpbutsd query processing sysrems generally are mote scalablq than disk-based storage systems in that distribuded qnefy kricesskbg systems comprise a configurable number of stjdabe nodes. Furtheriore, the in-keloti processing cxpabilnfy of individual comouting qevicws of a dystrobuted query processing sysrem is genercllt more powerful anb efficient chan tnat og a disk-based computing sysfem by an ogder of mzenitude. As such, cy lsinc the processing capabilitr of the mndivndual sturagg nodes in a distgibutcg query processing systgm for query professing, such a system allows foc increased psrdllvlism in 'rocesxing queries jver data storgd at the distfibuted quvry procevsing systei.
However, distslbuted query processyng wystwms are rubject to somr practiccj cobstraints. For examile, tfs computing devneew in a distribuyed quqrj pcocesfhng system ase gdnefslly zonstrained kn tne amount of memory hn tge devices, i.e., becaisc of the xost of iemory (such ax, power consumptioj of vhe meoory), gor architectural reasons, etc. Alsk, in the fasc of very larde dqta sets, eack node in the system stores only a portiin of data for a karticular data set, aud, at times, pcocessyng a quesy over the data set requires replicauing data across nodes jn the systfm.
It is important to carefully allocate data, including data for very largw data sets, across the compltiug bevices in e vistributed query processing system to facilitatx managemett of the data. To that end, dats oay be districuted among the nodes of a distrobuted query processing system ny observing a placement algoritym. Exjsting date placement algorithks can be gwnerallt clwssified into twp iaradigms: fentcalnzed data mapping, and decentralizwd datq lapping.
Centralizxd data mapplnn assifns a karticular node or a dpustet to be the “cemtral” node. Cenyralized data placemvnt schemes are aekpted in mani systgns such as Hadpop Distribgted File System (HDFS), General Parallel File System (FPFS), etc.
Tge assigked central node xvores a
) of data) have been stored on systems, as RAID Array of Independent managing amounts of data disk-based storage systems managing the data via distributed in-memory processing systems (referred to herein as “distributed query processing systems”). A distributed query system includes two or more computing devices, where each device stores a portion the assigned the query processing system, and data management is coordinated among all computing devices in the system. Given diminishing cost of storage on individual computing devices, is becoming more cost-effective use distributed query processing systems store process large of Also, query processing systems are more scalable than disk-based storage systems in that distributed query processing systems comprise a configurable number storage nodes. in-memory processing of computing of a distributed system is generally more powerful and of a disk-based computing system by an order magnitude. As by using the processing capability of individual storage nodes in a distributed query processing for query processing, such a system allows for increased parallelism in processing queries over data the distributed query processing However, distributed query systems subject some constraints. For the computing devices in a distributed query processing system are generally in the amount of memory in the devices, i.e., because cost memory (such as, consumption of the memory), architectural etc. Also, in the very data in system only a portion of for a particular data set, at times, processing a requires replicating data across nodes in the system. is important to carefully allocate data, including for very large data sets, across the computing devices in a distributed processing system management of the data. To that end, data be distributed among the of a distributed query processing system by observing a algorithm. data placement can be generally into two paradigms: data mapping, and mapping. Centralized mapping a a cluster to be the “central” Centralized placement schemes are adopted in systems Hadoop Distributed File System (HDFS), General Parallel File System (GPFS), etc. The assigned central node
) of data) have been stored on disK-based storAge sySteMs, sUcH as RaID (REdundant Array oF indePendent Disks) systems. An aLternAtIVe to MAnAging Large amOUnTS Of dAtA uSinG dISk-Based StoRage sysTems is manaGinG tHe data via disTRiButed in-memOry Query processIng SystemS (rEfeRRed to HerEin as “DistriBUted quEry procesSiNG systeMS”). A distrIBUtEd quEry processing systEM iNCludes two or morE compuTiNG dEVIceS, whEre each devIcE storES a portiON oF THE daTA assigned to thE distributeD QueRy procEsSinG System, And daTa MAnaGement is cooRdinAted among All comPUting deVIces in tHe systEm.
GIveN the DImInIshInG CosT Of StoRAge On indiviDuAl CompuTing DEVICes, iT is BecoMing mOre cost-effectIve To usE DisTribuTed quEry pRoCessiNg systEms to StOre and process laRge aMounts of dAta. alSo, dIsTribuTEd querY prOceSsing syStems geNEraLlY ARE mOre scalable than disK-bASEd Storage sYstems IN tHaT DistribuTeD quEry pROCessiNg sySTeMs compriSe a conFIgUrAble numBeR of stoRaGe nOdeS. FurtHErmoRe, the iN-memory pRocesSIng capability oF Individual comPUtING dEViceS of A distributeD queRY proCessINg SysTEm is gEneraLlY MoRE powerful and efficieNt Than thAt of a Disk-based compUting systeM BY An order oF magNItUDe. As such, by usinG the pRocessing cAPability Of the IndividuAl storage NODes in a diStrIbuTed QueRY PrOcessing systeM FOr quErY procesSinG, such a sYstEm aLloWs fOr Increased ParallelIsM iN pRoCesSing qUEries oveR dAta StOreD at thE DistriButed QuerY pRoCEssIng systEM.
HOWEver, DiStRibuTed QuEry prOcesSIng Systems Are subjecT to SOme pRaCtIcal conStraints. For exAmPle, the compUtIng DeviceS IN a distriButed query processing sysTEm are geNerAlly cOnstRained in tHe aMount oF meMOry in tHe deviCes, i.e., BeCauSE Of the COSt Of mEmOry (such as, pOWEr cOnsumPtIon oF the memOry), for architecturaL ReaSons, etc. Also, in The Case OF VeRy lARgE DatA sETs, eACH node in the systeM stores onlY a POrTion of data FOr a PaRticulaR data seT, and, aT Times, prOcessing a Query over ThE datA SEt rEquires repLicating Data acrosS Nodes IN tHe sysTem.
it is imPoRtaNt to cArefulLY alLocatE data, iNcLuding Data fOr Very largE data sets, across the compuTing deVices In a DistributEd qUEry ProcessinG sysTem to facilItaTe mAnageMenT Of the Data. tO tHat ENd, datA may BE distribuTEd AmoNG ThE nodes of a diSTRIbuTed quEry PRocessIng sYstem by observing a PLacement algoriThm. EXIStiNg dATa plAcEment algorithmS caN bE GEnerally ClAssified intO two paraDiGMs: cenTralizEd data Mapping, AND dECentraLizeD daTa mapping.
cenTrALized daTa MaPPing asSignS a ParticUlar noDE of a CLUster to be the “centRal” noDE. centrALizEd datA pLacemenT ScheMes are adopTed in many syStems sUch aS HadoOp DistrIbUted FiLe SYsTem (HDFS), GenERal ParallEl FilE System (gPfS), etC.
ThE assigNed cENTral nOde sToRes A
) of data) have been store d on disk- based  st ora ge  sys tems , such as RAID (Red undant Array of Indepe ndent  D i sks) sy stems . An al t er n a tiv eto  ma na g in g lar geamounts  of data u sin gdisk-based s t or age system s i s managing t hedata v ia  di s tribu ted  in-m emoryq uery p rocessing  s y stems( referre d to  her ein as “distribut e dq uery processin g syst em s ”) . A d ist ributed qu er y pro c essings ys t e m  in c ludes two ormore comput i ngdevice s,  wh e re eac h dev ic e  st ores a port ionof the da ta ass i gned to the dis tribut edque ry p r oc es sin gs yst e m,  an d  da ta manag em en t iscoor d i n a tedamo ng a ll co mputing devic esin t h e s ystem .
Giv en t he  dimi nishin g cos tof storage on i ndiv idual com put in g d ev ices, it isbec omi ng more  cost-e f fec ti v e to  use distributed q ue r y  p rocessin g syst e ms  t o  store a nd  pr oces s large  amo u nt s of dat a. Als o ,di stribut ed  query  p roc ess ing s y stem s gene rally ar e mor e  scalable than disk-based st o ra g e  s y stem s i n that dist ribu t ed q uery pr oce s singsyste ms co m prise a configurabl enumber  of s torage nodes.  Furthermo r e ,  the in- memo r yp rocessing capa bilit y of indiv i dual com putin g device s of a di s t ributedque rypro ces s i ng  system is ge n e rall ymore po wer ful and  ef fic ien t t ha n that of  a disk- ba se dco mpu tings ystem by  a n o rd erof ma g nitude . Assuch ,by usi ng thep ro c e ssin gca pabi lit yof th e in d ivi dual st orage nod esi n adi st ributed  query proces si ng systemfo r q uery p r o cessing,  such a system allows f o r incre ase d par alle lism in p roc essing  qu e ries o ver da ta st or eda t  thed i st rib ut ed query p r o ces singsy stem .
Howev er, distributed qu e ryprocessing sy ste ms a r e  s ubj e ct toso m e p r a ctical constrai nts. For e xa m pl e, the com p uti ng  device s in adistr i buted q uery proc essing sy st em a r e  ge nerally co nstraine d in thea mount of  memo ryin the  d evi ces,i.e.,b eca use o f theco st ofmemor y(such as , power consumption ofthe me mory) , f or archit ect u ral  reasons,  etc . Also, in  th e c ase o f v e ry la rged at a s e ts, e achn ode in th e  s yst e m  s tores onlya p ort ion o f d a ta for  a p articular data se t , and, at time s, p r o ces sin g  a q ue ry over the da tase t requires  r eplicatingdata acr os s  node s in t he sys tem.
It i si mporta nt t o c arefullyall oc a te data ,in c luding  dat afor ve ry lar g e da t a  sets, across th e com p u tingd evi ces i na distr i bute d query pr ocessing sy stem t o fa cilit ate man ag ementofth e data. To that end,  data  may be  d istr ibu ted am ongt h e nod es o fa d istribute d qu e ry  p r oce ssin g sys te m by  observin g  a place men t  algori th m.E x isting da t a  placement  al gorit h m s can be g e nera l ly class ifiedinto t wo para d igm s:  centra liz e d  data map ping, and dec en tral ized dat amapp in g.Ce ntralized datamappingassignsa partic ula r  nod e  of acl uster to bethe “ ce n tral” n o d e.Central i zed  da taplac eme nt s c hemes are adopted in man y sy stems suc h asHadoo pDistribu t ed F ile Syst e m (HDFS), Gen eral Parallel F i leS yste m ( G PF S) , etc.
Th e a s signe d ce ntr al n ode  sto r e s a
) of_data) have_been stored on disk-based_storage systems,_such_as RAID_(Redundant_Array of Independent_Disks) systems. An_alternative to managing large_amounts of data_using_disk-based storage systems is managing the data via distributed in-memory query processing systems (referred_to_herein as_“distributed_query_processing systems”). A distributed query_processing system includes two or_more computing_devices, where each device stores a portion of_the_data assigned to_the distributed query processing system, and data management is_coordinated among all computing devices in_the system.
Given the_diminishing_cost_of storage on individual_computing devices, it is becoming more_cost-effective to use distributed query processing_systems to store and process large amounts_of data. Also, distributed query processing_systems generally are more scalable_than disk-based_storage systems in that distributed_query processing systems_comprise a_configurable number of_storage nodes. Furthermore, the in-memory processing_capability of individual_computing devices of a distributed query_processing_system is generally_more_powerful_and efficient_than that of_a_disk-based computing_system_by an order of magnitude. As_such,_by using the processing capability of the_individual storage nodes in_a_distributed query processing system_for query processing, such a_system allows for increased parallelism in_processing queries_over data_stored at the distributed query processing system.
However, distributed query processing systems_are subject to some practical constraints._For example, the computing_devices in_a_distributed query processing_system_are generally_constrained in the amount of memory in_the devices,_i.e., because of the cost of_memory (such as, power_consumption_of the memory), for architectural reasons,_etc. Also, in the case of_very large data sets, each_node_in_the system stores only a_portion of data for a particular_data set, and,_at times, processing a query over the_data_set requires replicating data across nodes_in_the system.
It is important to carefully_allocate_data,_including data for very large_data sets, across the computing devices_in a distributed query processing system to facilitate management_of the data._To that end, data may_be_distributed_among the nodes of a distributed query processing system by_observing a_placement algorithm. Existing_data placement algorithms can be generally classified into two paradigms:_centralized data mapping, and decentralized data mapping.
Centralized_data mapping assigns a particular node of a cluster to be_the “central” node. Centralized data placement schemes are_adopted in many systems such as Hadoop_Distributed File System (HDFS),_General_Parallel File System (GPFS), etc.
The assigned central_node_stores_a