Sacca 1985

download Sacca 1985

of 6

Transcript of Sacca 1985

  • 7/27/2019 Sacca 1985

    1/6

    DATABASE PARTITIONING IN A CLUSTER OF PROCESSORSEXTENDED ABSTRACT*

    Domenico SaccACRAIRende, Italyand Cio WiederholdComputer Science DepartmentStanford University, Stanford CA

    1. INTRODUCTIONIII a tlisLribuLcd tlaL:rb:~~! sysLcrn Lhc parlilioning and nlloca-Lion of Lbc dalabasc over Lhc processor nodes of Lbc nclworkis a critical aspccl of dnlnbasc design clTort. A poor distribu-tion can lead to higher loads and hence higher costs in thenodes or in the communicalion network, so that Lhc systemcannoL handlo the required set of transactions.

    We consider hem a system where mull;iple processors areclustcrcd at one localion in order to increase the systemsprocessing capability. The local network used in such a sys-tem has typically a high communication bandwidbh but anysingle processor will have inadequate processing and input-output capacity to deal with the transaction load. We de-velop and evaluate algorithms which perform in a computa-tionally feasible manner the design steps of partitioning andallocation of a database to the processors.

    More precisely, we investigate the optimal non-redun-dant partitioning and allocalion of a database to a numberof processors nodes. Given is a set of source relations ofthe dalebase and their attributes and a set of transactionswhich are Lo be executed during some period of interest.A transaction performs operations on some subset of thedatabase. The initial network node, associated with everytransaction, is not prcspecified, but Lo be assigned as part ofthe design.

    This problem dillcrs from the problem in distributed sys-tems where the processors are remote from each other and,presumably, close to their users. In those systems a trans-action enters a known, local processor node, and the finalresponse is issued from that node as well. The unclusteredmodel with local transactions has been treated previously inthe literature, for instance in [Ap82] and [CNWSI].

    We model the content of the database aa a collectionof relations. The given conceptual relations may be toolarge to be effectively assigned Lo single processors. We willconsider initially how the relations can be fragmented, andwill then allocate those fragments to the processor nodes.The possibility that files may be fragmented is not corisideredin treatments of the file allocation problem, as surveyed forinstance in [DoFo82].

    Once the database is put into operation each transac-Lion will ncccss some subset of Lhe luplcs and Lhc altrihulesof each original relation. In order Lo complsLe Lransactions

    which cl0 no1 lincl all LlicGr dill;\ on Lhr wme processor, ascheduling algorilhlu is irivohctl which 0pLiiliircs Lhc proccss-ing over Lhc nc%work. WC do 1101nvcsligalc this schedulingnl;;oriLhm ilsell, but simply assume that il exisls, and that1%~an use it in order Lo obltiin the costs for Lhe cxccution ofa given transaction over a proposed database allocation forsome specitied but ficlitious processor network.

    In this presenlation Lhc following scclion will form u-late our problem precisely. In Sec. 3 we show the intrinsiccomplexily of the problem, present the heurislic greedy withfirst-fit algorithms WCpropose, and prove statements abouttheir behavior. The conclusions WCdraw from this work arepresented in See. 4. Further background material, proofs,conjectures on the feasibility of the solutions, design algo-rithms, and evaluations can be found in [SWSS].

    2. FORMULATION OF THE DATABASE PARTI-TIONING PROBLEM

    2.1 The General Database Partitioning ProblemWe investigate the optimal non -redundant parlitioning andallocation of dalabase in a cluster o f processes. Given isP = {P ,*..., P,}, a small set of processor nodes of a denselyand reliably interconnected network. Associated with everyproccsssorP; of P is the input-output capacity Cl;, expressedin Lerms of maximum number of blocks that can be processed,and Lhc processor capacity CC;, cxprcssed in terms of maxi-ITIUIII number of cycles of the processor. Furthermore, a.s-socialed with each pair of processors (P;, fj) is the com-munication capacity CMij, cxprcsscd in terms of maximumvolume of messages that can be transmitted bebween the twoprocessors.

    We also have a set of source relations R = {RI,. . . , R,}.We denote the set of attributes of each relation Ri of R byAi. WC C:III split the relations into fragmenls for allocalionLo processors in order Lo salisfy Lhc capacily constrainls ofthose processors.

    *This work was pcrformcd and supported xl the Il)M Rwc:rrch Laboratory, San Jose CA, while Lbe aut,hors werercspccl.ivcly on lcavc rrom CRAI and on partial lcavc from SL:m lord JnivctsiLy.

    242

  • 7/27/2019 Sacca 1985

    2/6

    sec. 2 Sacc5 and Wiederhold

    Fragments lr;cdilional terminology in allocation fordislributcd syslcms uses the nolions o f replication, and vcr-tical and horizontal p;lrtitioning. Vcrticnl pnrtilioning allo-cates columns of a relation over distinct nodes. Horirontalpartilioning allocates rows of a relation over dislinct nodes.In this analysis we do not consider replication of relations,although tup le-identifiers (TIDs) [Godd80] will bc replicatedas a byproduct of vertical partitioning.Hy combining verlical and horizontal partitioning, wecan associate to any relalion R; of R a set of fragmentsF(R;) = {Fit,..., Fi;,}. Given a set of fragments F(R;)for all R; in R, we denote by F = {F,, . . . , Ff} a set offragments such that

    F = (j (VU)i=l

    . Since W Cmay define several different fragmentations of anyrelation R; in R (for instance, by choosing different subsetsof A; for the vertical pa rtitioning, or by providing dilfcrentpredicate expressions on some attribute of 4 for horizontalpartitioning) there could be several sets of fragments F as-sociated with R.

    Transactions A set of transactions T = (21,. . . , I!,}perform some operations on R (or on F if we refer to a set offragments of R). Each transaction 2; of T is executed dur-ing some period of interest with frequency q; and performsoperations opi on some subset x of R (or F). In general,a transaction Ti in T will access only some rows and somecolumns of each relation (or fragment) ?C;, in xi, thus itperforms operation only on a fragment of Xi,. Associatedwith each transaction Ti in T is an initial network node PT.,which is not prespecified, but to be assigned as part of thedesign.

    Allocation Given the set of transactions T and a someset of fragments F, let 0 = TUF be the set of objects tobe allocalcd on the network. Furthermore, given a set offictitious processor nodes N = {NI, . . . , N,}, where N notnecessarily equals P, an allocation of 0 to N, denoted byL(0, N), is a mapping of 0 into N. In the case that N = P,the allocation L(0, N) represents a possible real allocationof the objcc(,s (fragments and .transacLions) to the processorsP of the network.

    Objective The objective of this analysis is t.o find anallocalion design L for the set, of fragments F and-the setof transaction T, so that an aggregate cost function is min-imirrd, while the capacity constraints {CIi, CCi,CMi,i =1 . . ., p} are observed. The elements o f the cost arc the loadparamctcrs produced at execution time by a transaction op-timiror as part of its planning. Tho analysis mod4 is limitedby the capabilily or the optimizer, lhat is no design shouldbe produced which imp lies a transaction processing strategywhich will not bc gcncratcd by the optimizer.

    Cost evaluation In order to rv:du:~lc the cosl functionolsomr proccs:;or conligurat ion W C nvoke at drsign time Lhcprog:r:4rri which is c:vc~nlu;dly 1.0bc us~l for lhc opl.in~iz:~tion

    of transaction execution. Such a program dclcrmines theexecution load components once for each transaclion 7: inT.

    The cost evaluation hlnction cef is a mapping definedas follows: Given a set F of fragments of R, a set N ofnodes (not necessarily equal to P), the set of objects 0 =T U F, and an allocation L(0, N), te/(L(O, N)) is the triple< vi,vc,vm >, wherei) vi = {&I,..., vi,,} and vii is the load in terms of the

    number of block accesses required in the node N;.ii) vc = {VC~,... ,ZJC,} and vq is the load in teims of the

    number of processor cycles consumed by the nodeNi.

    iii) vm = {vmijll 5 i,i 5 TI} and vmi,j is the load due tothe message traffic generated betwoen the nodes N;and Nj or , more generally, the communication costbetween the two nodes.Notice that vi,vc,vm represent the costs necessary to ex-

    ecute the transactions in T on the fictitious network of nodesN. Such costs can bc determined analytically from the gene-rated allocation and knowledge o f the available access stra-tegies and the transactions [W83 ]. Estimates of such costsare produced for one transaction at a time by a transac-tion execution optimizer (like the optimizer in System R*[WSA81]) as part of its planning.

    The problem of database allocation to the nodes in acluster of processors is the following:

    The DBNCP-Problem over Relations:Let R be a set of re\aations, T be a set of transactions, P bea set of p processors, and ce/ be a cost evaluation function.Find a set F of fragments of R and an allocation L(O,P),where 0 = T UF, such that the cost

    k(Vii + VCi) + 2 2 V?Tlij is minimumi=l

    subject toi=S j=l

    i) Vii 5 Cli for all li in Pii) VCi 5 CC, for al/ Pi in Piii) vmij 5 CMij for all Pi, Pi in P.

    where < vi, vc,vm >= Cef(L(0, P)). 1We note that this problem is diNcrcnt from the dalabascparlitioning problems trcnlcd in litcralurc (see, for instance

    [Ap82,CNW81]). In parlicular, in this cast the inilial not-work node of each transaction is not prcdefincd. This meansthat WC annot ncglccl the capncily construct as it is assumedin previous works, bcrausr othcrwisc~ wc would lind a lrivialsoluLion, I.ti:ll, is :rlloc:~l.ing all t.r:tns:rcl.ions arid rrlalioris inonly 0110 rocessor.

    243

  • 7/27/2019 Sacca 1985

    3/6

    Database Partitioning in a Cluster of Processors

    2.2 The database partitioning problem with a definedset of fragmentsWC note that the DI~NCP-problem considers any possiblefrngmcntntion of tho r&lions in R. If we assume that a setF of fragments is given, a variant of the DTINCP-problem isthe following:

    The DBNCP-Problem over fragmentsLet F be a set of fragments of a given set of relations R.Lcl T be a set of transactions, P bc a set of p processors,and GJ be an cost evaluation function. Find an allocationL(O,P), where 0 = T UF, such that

    9 D i-l-&ii +VCi)2 c v7nij is minimumi=I i=Pj-I

    subject toconstraints i), ii), iii) of the DBNCP-problem over rek-

    tions. 1

    We note that, in general, the solution of this secondproblem is not a solution of the general problem. However,if the initial set of fragments contains units of allocation, i.e.,clemc!r:tary objects of allocation that cannot be further fragmcn~.od, hen the solution of the DRNCP-problem over a setof prcdcfined fragments is also the solution of the DBNCP-problem over relations.

    This means that, since the transactions cannot be frag-mcnted, WChave lo find an initial set F of fragments suchthat each fragment in F will not be further partitioned butonly, eventually, combined. In [SW831 a method, following(Ap82], is proposed to obtain the initial units of allocation.

    From now on, we will consider as input of the DBNCP-protlrm over fragmcuts either a set of functional elementaryobjrcts or whatever set of fragments has been predefined byf,hc dntabasc designer. The sire of lhc set of fragments ispolynomially bound by the sixc of lhc input of lhc>DUNCP-problem over relations. Our conjccturcl is that such an ap-pro:ich gives a good suboptimal solution of the DI3NCP-problem over relations. Furthermore, since the optimal solu-tion o f both problems cannot be found in a reasonable time,as WC hall prove in the next section, the ahove assurnption isthe only one suitable to provide polynominal-time heuristicalgorithms.

    I!cforc concluding with lhc formulation of the dalabascpartitioning problems WC point out that, aflcr the solutionof the problem is found, a postanalysis will recombine anyfragrncnts o f the same source relations which arc allocatedin1.o hr same prot&or.

    3. HEURISTIC ALGORITHMS FOR THE PARTI-TIONING PROBLEM

    3.1 Complexity of the ProblemThe solution of the two database partitioning problems in-troduced in the previous section is strongly dependent on therost evaluation runction ce/. It is obvious that, ir the com-putation of such a function requires exponential time in thesize of the relations in R and the transactions in T, we donot have any hope to find a solution, even suboptimal, in areasonable amount 0r time.In this paper, we suppose that the evaluator computesthe costs in polynomial time. This is not a strong assump-tion since the optimizer must compute, in order to bc practi-cal, the cost of transactions in a reasonable amount of time.However, we have to point out that such a computation can-not be considered as an clcmentary computer operation. Thismeans that in our complexity analysis we will cvaluatc ho wmany times the optimizer cost function is invoked separatelyfrom the evaluation of the number of simple operations. Thisanalysis is found in Sec. 3.3.

    Despite the above simplifying assumption, the complexi-ty of the two partitioning problems is still hard. In fact,we have proven not only that there is no polynomial-timealgorithm to solve the problem, unless P = UP [CJ79], butalso that no polynomial-time algorithm is able to find afeasible solution of the problems.

    THEOREM 1. Finding a feasible or optimal solutionof the DIUVCP-problem over relations or over fragments isNP-hard.The proof of Theorem I can be found in [SW 83].

    From Theorem 1 we decide that we cannot find a solutionof the database partitioning problem, even only a feasibleand not optimal solution, in a reasonable amount of time,without using heuristic procedures.

    In the next sections we will give heuristic algorithmsfor the solution of the DDNCP-problem, based on combin-ing the greedy mclhod [11S76] and the First-Fit algorithmiJDUCC74]. Since a feasible solution o f the DUNCP-problemover fragments is also a fcasiblc solution of lhc DUNCP-problem over r&lions, and since starting from prcdcfincd setof clcmcntary fragments is more suitable to provide hcu ris-tic algorithms, we only consider the DIINCP-problem overfragments.3.2 The greedy and the first-fit algorifhme.Our task is to sclcct fragments from a large set of fragmentsand nllocatc them to the processors. Al the same lime trans-actions have to bc allocated. Fragments should bc comhincdwith other fragments and transactions should be allocatedwith fragments if placing them togcthcr Iwds to a greatbcnclit in lcrms o f reduction of cornrn~lnic:,l.ion, ClU, orIO load. Ihcir :rlIdcal.ion lo processor nodes is subject loCilp:KilJ constraints.

    244

  • 7/27/2019 Sacca 1985

    4/6

    sec. 3 SaccA and Wiedarhold

    Gre~ly selection of fragments ll~c :~~pr~t or M~I~YL-ing rr:iglllc-flls s~rggc:sLs a grcrdy rilcLllot1, i.cL.. an nlgorithmwhich works in sLa~;cs, corlsi(l(,ri!lg one inpul nl ,2 Liner ALeach stage, an 0pLimal h::d solution is found for a par-Liculnr input. Such solul.ions may or may not Icatl Lo Lhooptimal solulion of i.hr problem. IIowcvcr, most or the timesuch :I mclhod will rcsulL in Agorithms Lhat gcncrnte subop-tirnal solulions. In our case, the greedy metho d reduces tothe Iollowing algorithm.

    Wo sLarL lrom tho set 0 01 o objects (transactions andr&Lion fragments) and WC consider n set or n nodes N suchthat n = o- 1. For all pairs of objects O;, Oi, we Consider analloc::ltion on L(0, N) such that one node N,, of N containsLhc combination of two objects 0,, 0, :md that each of theremaining nodes contains only one object of 0 - {O;,Oj}.I,eL tCij be the total cost or this allocation,

    n n i--1tCij = fJ?Jii + VCi)+ 2 2 W& j

    i=l I=2 j=l

    whcrc < vi,~c,vm >= Ce/(L(O,N)).Wr select, the pair of nodes Oi,Oi for which tcij is

    minimu m and the capacity constraints of the problem aresatisliod. WC then modify the set of objects 0 by replacingLhr object Oi, Oj with thr compound object. In further stage,we rcpcat the above step by considering Lhc modified setof objccLs 0 and by reducing the number or nodes by one.ISvrnLunlly, the algorithm stops when either n = p or no1.~0 nodrs can br further combined. If the nlgorithm reachestbr shgr whc,rr n = p Lhc compound objrcts in 0 drfinc Lhclin:ll allocntion or Lhc objects in the processors. The greedyrncthod I;lils il it reaches the point whrrr no nodes can berombinrd while n > p, nlthough a fcasiblc solution of theproblrnl may exist.

    Wr noLc that the same algorithm wns proposrc! in [Ap82]lor the solution or ii database partitioning problern withoutcapacity constr:GnLs but with prcdrGncd starting point ofeach LransncLion. In thnl nnper it was shown Lhat such an ap-plication gives n gooc! suboptimal solution or the prcdefincdtrnnsnct.ion entry problem.

    ht US now annlyar the qoodncss of this grrt=dy nlgo-riLlrm lor l,h(> solut.iorl of Lhr cnl.iro problem. OnforlunaLcly,our conjcc:Lurc~ is 1.11:11.his :dgorithm is very unlikrly Lo give:l Ic+ble solution oi t!l(n xllocat.ion p!rasc or the problem.Consider. !or simplicity, L.lnC.a the CPU !oad associated withthe Irxgmcnts is indrpcndcnt from thrir allocat,ion. In thiscase, fillding n reasib!c> soluLion corresponds to finding a solu-tion olth(> Isin-lacking problem, whcrc Lhc fragments arc theitems Lo bc insrrLc4 in Lhr bins, rcprescntcd by Lhr proccs-sors. II, is Iknown in 1.11~ilcr:lturc (Tar instnncc, scr [C.l79,.11)1:(:(;71]) Lh:~t any ;tlgoriLhm I!l:rl. start il. nrw bin More :\I1I.hr non-empty bins arc lull, gives a poor solution Lo (.hc bi;i-packing problem. In oLhcr worcls, any good approximate;~lloc~:~l.ion i!goril.hrn iriusl, bc aI, Ir;tsL a VirsL-lit algorithm.

    First-fit nllocation Itc~considrr Lllc b:hsic* grrctdy :rlf;o-ril hrll. Any Liinc~ it coinbiric5 Iwo obj(~cLs, which wcrc n(v(r

    rombinc~d brforc, it sL:lrt.s what alnounb Lo a r~ew bin al-, though lhcrc arc bins not, yrt full. Iler~cc, WC hnvc to modify

    Lhc :dlocaLion phase of the grrcdy algorithm in order to meetthe above-mentioned property ol First-fit algorithms.We could USC some other bctler algorithm for the bin-packing problem, like the Fir&fit Decreasing algorithm in15741. Ilowcver, in these approaches the selection phase isalso driven by the allocation algorithm. Since allocation isbased on the capacity constra ints ol the processors we loosethe optimality objective used for selection.

    However, in the case of the simple First-fit algorithmWC have the freedom to select fragment combinations onthe basis of the greedy method since we the only constraintis to never introduce too many bins. In particular, thereshould never be more bins than the number of availableprocessors. Since we believe that in reality the capacityconstra ints cannno t be too restrictive, a first-fit allocationapproach should permit the design to respect the constraints.

    3.3 Analysis of the greedy first-fit algorithm forvarious cases of capability.The greedy first-fit algorithm described above allows for thesolutions of the partitioning problems over fragments to thecapacity limits spec ified for the processor network. In par-ticular, as shown in [SW83], the cost evaluation functionwhich computes Ce/ is in all cases computed O(o) times,where o is the initial number of objects to bc allocated.I lowcver, the complexity or the algorithm in Lcrms of clemen-tary operations (i.e., all operations but calls to cost evelua-tion function) is different for the various cases of capacityconstraints. We considered all such cases. The algorithmis rnotlified only in the part which checks the capacity con-straints. We prcscnt the results found in [SW831 in a table.

    The Table shows that the proposed First-f it Crcedy al-gorithm runs in all but the most general case in 0(0~p~/~)time. The general case where the algorithm does not ap-pear Lo run in polynomial time occurs when the network isnot homogenous. Such networks, having links of unequalcapacity or, more likely, absent links between processor pairsare common in long-haul networks. These are not the type ofnrtworks which n rc addressed in our analysis, since lor thesenetworks the initial assumption that the entry point for thetransaction GUI be assigned arbitrarily is highly unlikely.

    245

  • 7/27/2019 Sacca 1985

    5/6

    Database Partitioning in a Cluster of Processors

    CPU IO Communication Algorithmcase Capacity Capacity Capacity Complexity1 Equal for Unlimited Unlimited O(03P)all processors

    2 DilTcring Unlimited Unlimited3 Differing Equal for O(03P logp) _Unlimited O(o3p logp)

    all processors4 Differing Differing Unlimited wP52)5 Differing Dilfering Equal for all pairs o(03P52)of processor nodes6 DilIering IJnlimited Unlimited exponential

    Recall that o is the number of objects (fragments and transactions) and p is the number of processor nodes.

    4. CONCLUSIONWe have addressed the problem of distributing a databaseover a lixcd number of processors. The processors and thenetwork connecting them have limited processing and trans-mission capacities. The relations of the database are frag-mented to provide suitable units o f allocation. The entrypoint of the query transactions is not constrained, The com-plexity of the general problem is shown to be UP-hard so thatan heuristic a lgorithm is called for. This algorithm shouldnot only provide a feasible solution but a solution that isnear lo optimal as well, these two criteria are related sincewithout finding a low cost solution no solution which satisfythe processor constraints may be found.The database is fragmented prior to the analysis so thatan appropriate granularity for distribution is obtained. Theheuristic algorithm assigns the fragments to processors. Itcombines a greedy algorithm for the sclcction of candidatefragments to be assigned with a first-fit bin-packing algo-rithm for the allocation of the selected fragments to theprocessor nodes.

    We point out that the greedy first-fit algorithm requiresO(03) calls to the cost evaluation functions (o is the numberof initial objects to be allocated), in order to obtain the in-formation needed to make design decisions. In most cases thecost evaluation function is the query optimization program ofthe database management system over hypothetical definednetwork. One invocation of the function has to consider allspecified transactions. This means that in typical cases thedatabase designer cannot affo rd to call it a large number oftimes. In order to reduce the number o f such computations,three other techniques are presented in [SW831 to drive thegreedy sehzction of the algorithm. These techniques allow fora reduced number of calls to the optimizer (namely, O(l),O(o) and O(o*) times).

    The faster techniques appear to be applicable in earlierstages of the selection algorithm. Furthermore, they areespecially attractive in the early stages when the value ofo > > p. Experimental results have been obtained for someof the techniques and appear in [SW 831 n order to verify theanalytical results summarized in this paper.

    ACKNOWLEDGEMENTThis work was performed in the context of a larger researchproject on A Highly Available Transaction Suppor t System atthe IBM San Jose Research Laboratory under the leadershipof Mario Schkolnick. We profited greatly fro m discussionswith members of the laboratory. Jayne Pickering helped withentering the text into the &Xsystem [Kn79], which was usedto prepare this report. Gio Wiederhold is receiving partialsupport from ARPA, contract N39-82-C-250.

    REFERENCES]Ap82] Apers,P.M.G.: Query Processing and Data Allocation

    in Distributed Database Systems; Thesis 1982, Ma-thematical Centrum, Vrije Univ., Amsterdam.]Casey72] Casey,R.G. : Allocation of Copies of a File in anInformation Network; Proc. 1972 SJCC, AFIPSVol.40, pp.617-625.[Chu68] Chu,Wesley W. : Optimal File Allocation in aMulticomputer Inform ation System; InformationProcessing-68, Proc. IFIP Congress, North-Holland1968, pp.F80-F85.

    [Co711 Cook&A. : The complexity of theorem-provingprocedure; Proc. 3rd ACM Symposium on Theoryof Computing, ACM, New York, pp.lSl-158.

    246

  • 7/27/2019 Sacca 1985

    6/6

    [CNIVBI] Cc@., N:rvathe,S., and Wiedcrhold,G. : OplimalDesign of Dislribuled Dalabases; Stanford Univ.,CA, CS Itcport No.SlAN-CS-81-884, Dec.1981.(CODl>SO] Codd,E.F. : Extending the Database RelationalModel to Capture More Meaning; ACM TODS,Vol. 4 No.4, Dec.1979, pp.397-434.[DoFo82] Dowdy,L.W.snd Foster,D.V.: Comparative Modelsof the File Assignment Problem; ACM ComputingSurveys, Vol.14 No.2, June 1982, pp.287-313.[JDUGG74] Johnson,D.S., Demers,A., Ullman,J.D., Garey,M.R., and Craham,R.L. : Worst-case pcrfor.mancebounds for simple one-dimensionalpacking algorithms; SIAM Journal on Computing,vo1.3, pp.299-325.[GJ79] Garey,hf.R. and Johnson,D.S.: Computers andlntrac-tibility - A guide to the Theory o f NP-Completeness;W.II.Freeman and Co., 1979.[GJS76] Garey,M.R., Johnson,D.S., and Stockmeyer,L.: Some simplified NP-complete graph problems;Theoretical Computer Science, Vol.1, pp.237-267.[J74] Johnson,D.S. : Approximation Algorithms for Combi-natorial Problems; JCSS, Vol.9, 1974, ~~~256-278.[Kn79] KnuLh,D.E. : &X and MIZTAFONT, New Directionsin Typesetting; Digital Press, 1979.[MoLc77] MorganJ1.L. and Levin,K.D. : Optimal Programand Data Locations in Computer Networks;CACM, Vol.20 No.5, May.1977, pp.315-322.[SW831 Sacch,D. and Wiedcrhold,C. : Database Partitioningin a Cluster of Processors; Stanford University,Computer Science Department, KBMS project, Mar.1983.[W83] Wicderhold,G. : Database Design, second edition;McGraw-Hill, 1983.[WSASI] Williams,R., Selinger,P., et al: R-*: an Overviewof the Architecture; IBM Res. Rep. It53325 (40082),Dec.81.

    247