• 543.50 KB
  • 2022-04-29 14:31:51 发布

数据库系统概念全套配套课件PPT ch24.ppt

  • 48页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'Chapter24:AdvancedApplicationDevelopment Chapter24:AdvancedApplicationDevelopmentPerformanceTuningPerformanceBenchmarksStandardizationE-CommerceLegacySystems PerformanceTuningAdjustingvariousparametersanddesignchoicestoimprovesystemperformanceforaspecificapplication.Tuningisbestdonebyidentifyingbottlenecks,andeliminatingthem.Cantuneadatabasesystemat3levels:Hardware--e.g.,adddiskstospeedupI/O,addmemorytoincreasebufferhits,movetoafasterprocessor.Databasesystemparameters--e.g.,setbuffersizetoavoidpagingofbuffer,setcheckpointingintervalstolimitlogsize.Systemmayhaveautomatictuning.Higherleveldatabasedesign,suchastheschema,indicesandtransactions(morelater) BottlenecksPerformanceofmostsystems(atleastbeforetheyaretuned)usuallylimitedbyperformanceofoneorafewcomponents:thesearecalledbottlenecksE.g.,80%ofthecodemaytakeup20%oftimeand20%ofcodetakesup80%oftimeWorthspendingmosttimeon20%ofcodethattake80%oftimeBottlenecksmaybeinhardware(e.g.,disksareverybusy,CPUisidle),orinsoftwareRemovingonebottleneckoftenexposesanotherDe-bottleneckingconsistsofrepeatedlyfindingbottlenecks,andremovingthemThisisaheuristic IdentifyingBottlenecksTransactionsrequestasequenceofservicesE.g.,CPU,DiskI/O,locksWithconcurrenttransactions,transactionsmayhavetowaitforarequestedservicewhileothertransactionsarebeingservedCanmodeldatabaseasaqueueingsystemwithaqueueforeachserviceTransactionsrepeatedlydothefollowingrequestaservice,waitinqueuefortheservice,andgetservicedBottlenecksinadatabasesystemtypicallyshowupasveryhighutilizations(andcorrespondingly,verylongqueues)ofaparticularserviceE.g.,diskvs.CPUutilization100%utilizationleadstoverylongwaitingtime:Ruleofthumb:designsystemforabout70%utilizationatpeakloadutilizationover90%shouldbeavoided QueuesInADatabaseSystem TunableParametersTuningofhardwareTuningofschemaTuningofindicesTuningofmaterializedviewsTuningoftransactions TuningofHardwareEvenwell-tunedtransactionstypicallyrequireafewI/OoperationsTypicaldisksupportsabout100randomI/OoperationspersecondSupposeeachtransactionrequiresjust2randomI/Ooperations.Thentosupportntransactionspersecond,weneedtostripedataacrossn/50disks(ignoringskew)NumberofI/OoperationspertransactioncanbereducedbykeepingmoredatainmemoryIfalldataisinmemory,I/OneededonlyforwritesKeepingfrequentlyuseddatainmemoryreducesdiskaccesses,reducingnumberofdisksrequired,buthasamemorycost HardwareTuning:Five-MinuteRuleQuestion:whichdatatokeepinmemory:Ifapageisaccessedntimespersecond,keepingitinmemorysavesn*price-per-disk-driveaccesses-per-second-per-diskCostofkeepingpageinmemoryprice-per-MB-of-memoryages-per-MB-of-memoryBreak-evenpoint:valueofnforwhichabovecostsareequalIfaccessesaremorethensavingisgreaterthancostSolvingaboveequationwithcurrentdiskandmemorypricesleadsto:5-minuterule:ifapagethatisrandomlyaccessedisusedmorefrequentlythanoncein5minutesitshouldbekeptinmemory(bybuyingsufficientmemory!) HardwareTuning:One-MinuteRuleForsequentiallyaccesseddata,morepagescanbereadpersecond.Assumingsequentialreadsof1MBofdataatatime:1-minuterule:sequentiallyaccesseddatathatisaccessed onceormoreinaminuteshouldbekeptinmemoryPricesofdiskandmemoryhavechangedgreatlyovertheyears,buttheratioshavenotchangedmuchSorulesremainas5minuteand1minuterules,not1houror1secondrules! HardwareTuning:ChoiceofRAIDLevelTouseRAID1orRAID5?DependsonratioofreadsandwritesRAID5requires2blockreadsand2blockwritestowriteoutonedatablockIfanapplicationrequiresrreadsandwwritespersecondRAID1requiresr+2wI/OoperationspersecondRAID5requires:r+4wI/OoperationspersecondForreasonablylargerandw,thisrequireslotsofdiskstohandleworkloadRAID5mayrequiremoredisksthanRAID1tohandleload!ApparentsavingofnumberofdisksbyRAID5(byusingparity,asopposedtothemirroringdonebyRAID1)maybeillusory!Thumbrule:RAID5isfinewhenwritesarerareanddataisverylarge,butRAID1ispreferableotherwiseIfyouneedmorediskstohandleI/Oload,justmirrorthemsincediskcapacitiesthesedaysareenormous! TuningtheDatabaseDesignSchematuningVerticallypartitionrelationstoisolatethedatathatisaccessedmostoften--onlyfetchneededinformation.E.g.,splitaccountintotwo,(account-number,branch-name)and(account-number,balance).Branch-nameneednotbefetchedunlessrequiredImproveperformancebystoringadenormalizedrelationE.g.,storejoinofaccountanddepositor;branch-nameandbalanceinformationisrepeatedforeachholderofanaccount,butjoinneednotbecomputedrepeatedly.Pricepaid:morespaceandmoreworkforprogrammertokeeprelationconsistentonupdatesBettertousematerializedviews(moreonthislater..)Clustertogetheronthesamediskpagerecordsthatwould matchinafrequentlyrequiredjoinComputejoinveryefficientlywhenrequired. TuningtheDatabaseDesign(Cont.)IndextuningCreateappropriateindicestospeedupslowqueries/updatesSpeedupslowupdatesbyremovingexcessindices(tradeoffbetweenqueriesandupdates)Choosetypeofindex(B-tree/hash)appropriateformostfrequenttypesofqueries.ChoosewhichindextomakeclusteredIndextuningwizardslookatpasthistoryofqueriesandupdates(theworkload)andrecommendwhichindiceswouldbebestfortheworkload TuningtheDatabaseDesign(Cont.)MaterializedViewsMaterializedviewscanhelpspeedupcertainqueriesParticularlyaggregatequeriesOverheadsSpaceTimeforviewmaintenanceImmediateviewmaintenance:doneaspartofupdatetxntimeoverheadpaidbyupdatetransactionDeferredviewmaintenance:doneonlywhenrequiredupdatetransactionisnotaffected,butsystemtimeisspentonviewmaintenanceuntilupdated,theviewmaybeout-of-datePreferabletodenormalizedschemasinceviewmaintenance issystemsresponsibility,notprogrammersAvoidsinconsistenciescausedbyerrorsinupdateprograms TuningtheDatabaseDesign(Cont.)HowtochoosesetofmaterializedviewsHelpingonetransactiontypebyintroducingamaterializedviewmayhurtothersChoiceofmaterializedviewsdependsoncostsUsersoftenhavenoideaofactualcostofoperationsOverall,manualselectionofmaterializedviewsistediousSomedatabasesystemsprovidetoolstohelpDBAchooseviewstomaterialize“Materializedviewselectionwizards” TuningofTransactionsBasicapproachestotuningoftransactionsImprovesetorientationReducelockcontentionRewritingofqueriestoimproveperformancewasimportantinthepast,butsmartoptimizershavemadethislessimportantCommunicationoverheadandqueryhandlingoverheadssignificantpartofcostofeachcallCombinemultipleembeddedSQL/ODBC/JDBCqueriesintoasingleset-orientedquerySetorientation->fewercallstodatabaseE.g.,tuneprogramthatcomputestotalsalaryforeachdepartmentusingaseparateSQLquerybyinsteadusingasinglequerythatcomputestotalsalariesforalldepartmentatonce(usinggroupby)Usestoredprocedures:avoidsre-parsingandre-optimization ofquery TuningofTransactions(Cont.)ReducinglockcontentionLongtransactions(typicallyread-only)thatexaminelargepartsofarelationresultinlockcontentionwithupdatetransactionsE.g.,largequerytocomputebankstatisticsandregularbanktransactionsToreducecontentionUsemulti-versionconcurrencycontrolE.g.,Oracle“snapshots”whichsupportmulti-version2PLUsedegree-twoconsistency(cursor-stability)forlongtransactionsDrawback:resultmaybeapproximate TuningofTransactions(Cont.)LongupdatetransactionscauseseveralproblemsExhaustlockspaceExhaustlogspaceandalsogreatlyincreaserecoverytimeafteracrash,andmayevenexhaustlogspaceduringrecoveryifrecoveryalgorithmisbadlydesigned!Usemini-batchtransactionstolimitnumberofupdatesthatasingletransactioncancarryout.E.g.,ifasinglelargetransactionupdateseveryrecordofaverylargerelation,logmaygrowtoobig.*Splitlargetransactionintobatchof“mini-transactions,""eachperformingpartoftheupdatesHoldlocksacrosstransactionsinamini-batchtoensureserializabilityIflocktablesizeisaproblemcanreleaselocks,butatthecostofserializability*Incaseoffailureduringamini-batch,mustcompleteits remainingportiononrecovery,toensureatomicity. PerformanceSimulationPerformancesimulationusingqueuingmodelusefultopredictbottlenecksaswellastheeffectsoftuningchanges,evenwithoutaccesstorealsystemQueuingmodelaswesawearlierModelsactivitiesthatgooninparallelSimulationmodelisquitedetailed,butusuallyomitssomelowleveldetailsModelservicetime,butdisregarddetailsofserviceE.g.,approximatediskreadtimebyusinganaveragediskreadtimeExperimentscanberunonmodel,andprovideanestimateofmeasuressuchasaveragethroughput/responsetimeParameterscanbetunedinmodelandthenreplicatedinrealsystemE.g.,numberofdisks,memory,algorithms,etc. PerformanceBenchmarksSuitesoftasksusedtoquantifytheperformanceofsoftwaresystemsImportantincomparingdatabasesystems,especiallyassystemsbecomemorestandardscompliant.Commonlyusedperformancemeasures:Throughput(transactionspersecond,ortps)Responsetime(delayfromsubmissionoftransactiontoreturnofresult)Availabilityormeantimetofailure PerformanceBenchmarks(Cont.)SuitesoftasksusedtocharacterizeperformancesingletasknotenoughforcomplexsystemsBewarewhencomputingaveragethroughputofdifferenttransactiontypesE.g.,supposeasystemrunstransactiontypeAat99tpsandtransactiontypeBat1tps.GivenanequalmixtureoftypesAandB,throughputisnot(99+1)/2=50tps.Runningonetransactionofeachtypetakestime1+.01seconds,givingathroughputof1.98tps.Tocomputeaveragethroughput,useharmonicmean:nInterference(e.g.,lockcontention)makeseventhisincorrectif differenttransactiontypesrunconcurrently1/t1+1/t2+…+1/tn DatabaseApplicationClassesOnlinetransactionprocessing(OLTP)requireshighconcurrencyandclevertechniquestospeedupcommitprocessing,tosupportahighrateofupdatetransactions.Decisionsupportapplicationsincludingonlineanalyticalprocessing,orOLAPapplicationsrequiregoodqueryevaluationalgorithmsandqueryoptimization.ArchitectureofsomedatabasesystemstunedtooneofthetwoclassesE.g.,TeradataistunedtodecisionsupportOtherstrytobalancethetworequirementsE.g.,Oracle,withsnapshotsupportforlongread-onlytransaction BenchmarksSuitesTheTransactionProcessingCouncil(TPC)benchmarksuitesarewidelyused.TPC-AandTPC-B:simpleOLTPapplicationmodelingabanktellerapplicationwithandwithoutcommunicationNotusedanymoreTPC-C:complexOLTPapplicationmodelinganinventorysystemCurrentstandardforOLTPbenchmarking BenchmarksSuites(Cont.)TPCbenchmarks(cont.)TPC-D:complexdecisionsupportapplicationSupercededbyTPC-HandTPC-RTPC-H:(Hforadhoc)basedonTPC-DwithsomeextraqueriesModelsadhocquerieswhicharenotknownbeforehandTotalof22querieswithemphasisonaggregationprohibitsmaterializedviewspermitsindicesonlyonprimaryandforeignkeysTPC-R:(Rforreporting)sameasTPC-H,butwithoutanyrestrictionsonmaterializedviewsandindicesTPC-W:(WforWeb)End-to-endWebservicebenchmarkmodelingaWebbookstore,withcombinationofstaticanddynamicallygeneratedpages TPCPerformanceMeasuresTPCperformancemeasurestransactions-per-secondwithspecifiedconstraintsonresponsetimetransactions-per-second-per-dollaraccountsforcostofowningsystemTPCbenchmarkrequiresdatabasesizestobescaledupwithincreasingtransactions-per-secondReflectsrealworldapplicationswheremorecustomersmeansmoredatabasesizeandmoretransactions-per-secondExternalauditofTPCperformancenumbersmandatoryTPCperformanceclaimscanbetrusted TPCPerformanceMeasuresTwotypesoftestsforTPC-HandTPC-RPowertest:runsqueriesandupdatessequentially,thentakesmeantofindqueriesperhourThroughputtest:runsqueriesandupdatesconcurrentlymultiplestreamsrunninginparalleleachgeneratesqueries,withoneparallelupdatestreamCompositequeryperhourmetric:squarerootofproductofpowerandthroughputmetricsCompositeprice/performancemetric OtherBenchmarksOODBtransactionsrequireadifferentsetofbenchmarks.OO7benchmarkhasseveraldifferentoperations,andprovidesaseparatebenchmarknumberforeachkindofoperationReason:hardtodefinewhatisatypicalOODBapplicationBenchmarksforXMLbeingdiscussed StandardizationThecomplexityofcontemporarydatabasesystemsandtheneedfortheirinteroperationrequireavarietyofstandards.syntaxandsemanticsofprogramminglanguagesfunctionsinapplicationprograminterfacesdatamodels(e.g.,objectoriented/objectrelationaldatabases)Formalstandardsarestandardsdevelopedbyastandardsorganization(ANSI,ISO),orbyindustrygroups,throughapublicprocess.DefactostandardsaregenerallyacceptedasstandardswithoutanyformalprocessofrecognitionStandardsdefinedbydominantvendors(IBM,Microsoft)oftenbecomedefactostandardsDefactostandardsoftengothroughaformalprocessofrecognitionandbecomeformalstandards Standardization(Cont.)Anticipatorystandardsleadthemarketplace,definingfeaturesthatvendorsthenimplementEnsurecompatibilityoffutureproductsButattimesbecomeverylargeandunwieldysincestandardsbodiesmaynotpayenoughattentiontoeaseofimplementation(e.g.,SQL-92orSQL:1999)Reactionarystandardsattempttostandardizefeaturesthatvendorshavealreadyimplemented,possiblyindifferentways.Canbehardtoconvincevendorstochangealreadyimplementedfeatures.E.g.,OODBsystems SQLStandardsHistorySQLdevelopedbyIBMinlate70s/early80sSQL-86firstformalstandardIBMSAAstandardforSQLin1987SQL-89addedfeaturestoSQL-86thatwerealreadyimplementedinmanysystemsWasareactionarystandardSQL-92addedmanynewfeaturestoSQL-89(anticipatorystandard)Defineslevelsofcompliance(entry,intermediateandfull)EvennowfewdatabasevendorshavefullSQL-92implementation SQLStandardsHistory(Cont.)SQL:1999Addsvarietyofnewfeatures---extendeddatatypes,objectorientation,procedures,triggers,etc.BrokenintoseveralpartsSQL/Framework(Part1):overviewSQL/Foundation(Part2):types,schemas,tables,query/updatestatements,security,etc.SQL/CLI(CallLevelInterface)(Part3):APIinterfaceSQL/PSM(PersistentStoredModules)(Part4):proceduralextensionsSQL/Bindings(Part5):embeddedSQLfordifferentembeddinglanguages SQLStandardsHistory(Cont.)MorepartsundergoingstandardizationprocessPart7:SQL/Temporal:temporaldataPart9:SQL/MED(ManagementofExternalData)InterfacingofdatabasetoexternaldatasourcesAllowsotherdatabases,evenfiles,canbeviewedaspartofthedatabasePart10SQL/OLB(ObjectLanguageBindings):embeddingSQLinJavaMissingpartnumbers6and8coverfeaturesthatarenotnearstandardizationyet DatabaseConnectivityStandardsOpenDataBaseConnectivity(ODBC)standardfordatabaseinterconnectivitybasedonCallLevelInterface(CLI)developedbyX/Openconsortiumdefinesapplicationprogramminginterface,andSQLfeaturesthatmustbesupportedatdifferentlevelsofcomplianceJDBCstandardusedforJavaX/OpenXAstandardsdefinetransactionmanagementstandardsforsupportingdistributed2-phasecommitOLE-DB:APIlikeODBC,butintendedtosupportnon-databasesourcesofdatasuchasflatfilesOLE-DBprogramcannegotiatewithdatasourcetofindwhatfeaturesaresupportedInterfacelanguagemaybeasubsetofSQLADO(ActiveDataObjects):easy-to-useinterfacetoOLE-DBfunctionality ObjectOrientedDatabasesStandardsObjectDatabaseManagementGroup(ODMG)standardforobject-orienteddatabasesversion1in1993andversion2in1997,version3in2000provideslanguageindependentObjectDefinitionLanguage(ODL)aswellasseverallanguagespecificbindingsObjectManagementGroup(OMG)standardfordistributedsoftwarebasedonobjectsObjectRequestBroker(ORB)providestransparentmessagedispatchtodistributedobjectsInterfaceDefinitionLanguage(IDL)fordefininglanguage-independentdatatypesCommonObjectRequestBrokerArchitecture(CORBA)definesspecificationsofORBandIDL XML-BasedStandardsSeveralXMLbasedStandardsforE-commerceE.g.,RosettaNet(supplychain),BizTalkDefinecatalogs,servicedescriptions,invoices,purchaseorders,etc.XMLwrappersareusedtoexportinformationfromrelationaldatabasestoXMLSimpleObjectAccessProtocol(SOAP):XMLbasedremoteprocedurecallstandardUsesXMLtoencodedata,HTTPastransportprotocolStandardsbasedonSOAPforspecificapplicationsE.g.,OLAPandDataMiningstandardsfromMicrosoft E-CommerceE-commerceistheprocessofcarryingoutvariousactivitiesrelatedtocommercethroughelectronicmeansActivitiesinclude:Presaleactivities:catalogs,advertisements,etc.Saleprocess:negotiationsonprice/qualityofserviceMarketplace:e.g.,stockexchange,auctions,reverseauctionsPaymentforsaleDeliveryrelatedactivities:electronicshipping,orelectronictrackingoforderprocessing/shippingCustomersupportandpost-saleservice E-CatalogsProductcatalogsmustprovidesearchingandbrowsingfacilitiesOrganizeproductsintointuitivehierarchyKeywordsearchHelpcustomerwithcomparisonofproductsCustomizationofcatalogNegotiatedpricingforspecificorganizationsSpecialdiscountsforcustomersbasedonpasthistoryE.g.,loyaltydiscountLegalrestrictionsonsalesCertainitemsnotexposedtounder-agecustomersCustomizationrequiresextensivecustomer-specificinformation MarketplacesMarketplaceshelpinnegotiatingthepriceofaproductwhentherearemultiplesellersandbuyersSeveraltypesofmarketplacesReverseauctionAuctionExchangeRealworldmarketplacescanbequitecomplicatedduetoproductdifferentiationDatabaseissues:AuthenticatebiddersRecordbuy/sellbidssecurelyCommunicatebidsquicklytoparticipantsDelayscanleadtofinanciallosstosomeparticipantsNeedtohandleverylargevolumesoftradeattimesE.g.,attheendofanauction TypesofMarketplaceReverseauctionsystem:singlebuyer,multiplesellers.Buyerstatesrequirements,sellersbidforsupplyingitems.Lowestbidderwins.(alsoknownastendersystem)Openbiddingvs.closedbiddingAuction:Multiplebuyers,singlesellerSimplestcase:onlyoneinstanceofeachitemisbeingsoldHighestbidderforanitemwinsMorecomplicatedwithmultiplecopies,andbuyersbidforspecificnumberofcopiesExchange:multiplebuyers,multiplesellersE.g.,stockexchangeBuyersspecifymaximumprice,sellersspecifyminimumpriceexchangematchesbuyandsellbids,decidingonpriceforthetradee.g.,averageofbuy/sellbids OrderSettlementOrdersettlement:paymentforgoodsanddeliveryInsecuremeansforelectronicpayment:sendcreditcardnumberBuyersmaypresentsomeoneelse’screditcardnumbersSellerhastobetrustedtobillonlyforagreed-onitemSellerhastobetrustednottopassonthecreditcardnumbertounauthorizedpeopleNeedsecurepaymentsystemsAvoidabove-mentionedproblemsProvidegreaterdegreeofprivacyE.g.,notrevealbuyersidentitytosellerEnsurethatanyonemonitoringtheelectronictransmissionscannotaccesscriticalinformation SecurePaymentSystemsAllinformationmustbeencryptedtopreventeavesdroppingPublic/privatekeyencryptionwidelyusedMustpreventperson-in-the-middleattacksE.g.,someoneimpersonatessellerorbank/creditcardcompanyandfoolsbuyerintorevealinginformationEncryptingmessagesalonedoesn’tsolvethisproblemMoreonthisinnextslideThree-waycommunicationbetweenseller,buyerandcredit-cardcompanytomakepaymentCreditcardcompanycreditsamounttosellerCreditcardcompanyconsolidatesallpaymentsfromabuyerandcollectsthemtogetherE.g.,viabuyer’sbankthroughphysical/electronic checkpayment SecurePaymentSystems(Cont.)Digitalcertificatesareusedtopreventimpersonation/man-in-themiddleattackCertificationagencycreatesdigitalcertificatebyencrypting,e.g.,seller’spublickeyusingitsownprivatekeyVerifiessellersidentitybyexternalmeansfirst!SellersendscertificatetobuyerCustomerusespublickeyofcertificationagencytodecryptcertificateandfindsellerspublickeyMan-in-the-middlecannotsendfakepublickeySellerspublickeyusedforsettingupsecurecommunicationSeveralsecurepaymentprotocolsE.g.,SecureElectronicTransaction(SET) DigitalCashCredit-cardpaymentdoesnotprovideanonymityTheSETprotocolhidesbuyersidentityfromsellerButevenwithSET,buyercanbetracedwithhelpofcreditcardcompanyDigitalcashsystemsprovideanonymitysimilartothatprovidedbyphysicalcashE.g.,DigCashBasedonencryptiontechniquesthatmakeitimpossibletofindoutwhopurchaseddigitalcashfromthebankDigitalcashcanbespentbypurchaserinpartsmuchlikewritingacheckonanaccountwhoseownerisanonymous LegacySystemsLegacysystemsareolder-generationsystemsthatareincompatiblewithcurrentgenerationstandardsandsystemsbutstillinproductionuseE.g.,applicationswritteninCobolthatrunonmainframesToday’shotnewsystemistomorrowslegacysystem!PortinglegacysystemapplicationstoamoremodernenvironmentisproblematicVeryexpensive,sincelegacysystemmayinvolvemillionsoflinesofcode,writtenoverdecadesOriginalprogrammersusuallynolongeravailableSwitchingoverfromoldsystemtonewsystemisaproblemmoreonthislaterOneapproach:buildawrapperlayerontopoflegacyapplicationtoallowinteroperationbetweennewersystemsandlegacyapplicationE.g.,useODBCorOLE-DBaswrapper LegacySystems(Cont.)RewritinglegacyapplicationrequiresafirstphaseofunderstandingwhatitdoesOftenlegacycodehasnodocumentationoroutdateddocumentationreverseengineering:processofgoingoverlegacycodetoComeupwithschemadesignsinERorOOmodelFindoutwhatproceduresandprocessesareimplemented,togetahighlevelviewofsystemRe-engineering:reverseengineeringfollowedbydesignofnewsystemImprovementsaremadeonexistingsystemdesigninthisprocess LegacySystems(Cont.)SwitchingoverfromoldtonewsystemisamajorproblemProductionsystemsareineveryday,generatingnewdataStoppingthesystemmaybringallofacompany’sactivitiestoahalt,causingenormouslossesBig-bangapproach:ImplementcompletenewsystemPopulateitwithdatafromoldsystemNotransactionswhilethisstepisexecutedscriptsarecreatedtodothisquicklyShutdownoldsystemandstartusingnewsystemDangerwiththisapproach:whatifnewcodehasbugsorperformanceproblems,ormissingfeaturesCompanymaybebroughttoahalt LegacySystems(Cont.)Chicken-littleapproach:ReplacelegacysystemonepieceatatimeUsewrapperstointeroperatebetweenlegacyandnewcodeE.g.,replacefrontendfirst,withwrappersonlegacybackendOldfrontendcancontinueworkinginthisphaseincaseofproblemswithnewfrontendReplacebackend,onefunctionalunitatatimeAllpartsthatshareadatabasemayhavetobereplacedtogether,orwrapperisneededondatabasealsoDrawback:significantextradevelopmentefforttobuildwrappersandensuresmoothinteroperationStillworthitifcompany’slifedependsonsystem EndofChapter'