IMPROVINGTRANSACTIONACCEPTANCEOFINCOHERENTUPDATESUSING DYNAMICMERGINGINARELATIONALDATABASE ATHESISIN ComputerScience PresentedtotheFacultyoftheUniversity ofMissouri-KansasCityinpartialfulfillmentof therequirementsforthedegree MASTEROFSCIENCE by RYANLINNEMAN B.S.,DeVryUniversity-KansasCity,2008 B.A.,UniversityofMissouri-KansasCity,2011 KansasCity,Missouri 2015 IMPROVINGTRANSACTIONACCEPTANCEOFINCOHERENTUPDATESUSINGDYNAMIC MERGINGINARELATIONALDATABASE RyanLinneman,CandidatefortheMasterofScienceDegree UniversityofMissouri-KansasCity,2015 ABSTRACT Despiteitstenure,mobilecomputingcontinuestomovetotheforefrontoftechnologyandbusi- ness. This ever expansive field holds no shortages of opportunity for either party. Its benefits and demandareabundantbutitisnotwithoutitschallenges. Maintainingbothdataconsistencyandavail- abilityisoneofthemostchallengingprospectsformobilecomputing. Thesedifficultiesareexacerbated bytheuniqueabilityofmobileplatformstodisconnectforextendedperiodsoftimewhilecontinuingto functionnormally. Datacollectedandmodifiedwhileinsuchastateposesconsiderableriskofabandon asthereexistsnostaticalgorithmtodeterminethatitisconsistentwhenintegratedbacktotheserver. This thesis proposes a mechanism to improve transaction acceptance without sacrificing con- sistency of the related data on both the client and server. Particular consideration is placed towards honoring data which a client may produce or modify while in a disconnected state. The underlying framework leverages merging strategies to resolve conflicts in data using a custom tiered dynamic mergegranularity. Themergeprocessisaidedbyacustomlockpromotionschemeappliedintheap- plicationlayerattheserver. Theimprovedincoherenceresolutionprocessisthenexaminedforimpacts tothefateofsuchtransactionsandrelatedbandwidthutilization. iii APPROVALPAGE The faculty listed below, appointed by the Dean of the School of Computing and Engineering, have examined a thesis entitled “Improving Transaction Acceptance of Incoherent Updates Using Dynamic Merging In a Relational Database” presented by Ryan Linneman, candidate for the Master of Science degree,andcertifythatintheiropinion,itisworthyofacceptance. SupervisoryCommittee VijayKumar,Ph.D. SchoolofComputingandEngineering AppievandeLiefvoort,Ph.D. SchoolofComputingandEngineering PraveenRao,Ph.D. SchoolofComputingandEngineering iv TABLEOFCONTENTS ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii LISTOFILLUSTRATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix LISTOFTABLES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Chapter 1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 OptimisticConcurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 PessimisticConcurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.3 WhyOptimistic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 ProblemStatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. RELATEDWORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1 CacheConcurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.1 InvalidationReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.2 OptimisticConcurrencyControlwithUpdateTimeStamp. . . . . . . . . . 9 2.1.3 Probability-BasedCallback . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.4 AdaptiveEnergyEfficientCacheInvalidationScheme . . . . . . . . . . . 11 2.1.5 DistributedCacheInvalidationMechanism . . . . . . . . . . . . . . . . . 11 2.1.6 CooperativeApproachtoCacheConsistency . . . . . . . . . . . . . . . . 12 2.1.7 ExtendedLRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.8 FastWirelessDataAccessScheme . . . . . . . . . . . . . . . . . . . . . 13 2.1.9 Eventualconsistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.1 ChallengingConventionalNotionsofIsolationandConsistency . . . . . . 14 3. APPROACH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 v 3.1 ACIDCompliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Durability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1.2 Atomicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.1.3 Consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.4 Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 ApplyingACIDtoNaively-OptimisticTransactions . . . . . . . . . . . . . . . . . 19 3.2.1 ConstrainingFacets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.2 LeveragingHybridLocking . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 NegotiatingStateAfterDivergence . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.1 ClientSide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.2 ServerSide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4. IMPLEMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1 ClientImplementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.1 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2 ClientApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2.1 WebAPI2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2.2 AuthenticationController . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.3 JobsController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.4 AssetsController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.5 OfflineController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3 ServerFramework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3.1 ChangeSetProcessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3.2 Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5. EVALUATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1 PropertyProxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2 ChangeSetAcceptance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.2.1 MetricsCaptured. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.2.2 MetricsComputed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2.3 TestChangeSetAcceptanceintheFaceofConflicts . . . . . . . . . . . 55 5.2.4 PessimisticOpt-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 vi 6. CONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.1 PropertyMergeEnhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.2 DataAccessLayerConsiderations . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Appendix A. CLIENTAPIDOCUMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 B. CLIENTCODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 B.1 ApplicationSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 B.2 JobFacilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 B.3 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 B.4 Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 C. SERVERCODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 C.1 ChangeSetCode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 C.2 BusinessDALScafold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 C.3 Merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 D. PROPERTYPERFORMANCEDATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 VITA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 vii LISTOFILLUSTRATIONS Figure Page 1.1 Relationshipofoptimism,pessimism,conflictsandavailability . . . . . . . . . . . . . . . . 3 1.2 Pessimisticambivalencetoincoherence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Optimisticupdateincoherence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1 T LifetimeEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 A 3.2 HighLevelOverviewofProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3 ClientNegotiationCycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 Serverprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.1 ClientTechnologyStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 ServerTechnologyStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.3 ServerPackagingOverview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4 MergeAction<T>publicinterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.5 MergeableAttributepublicinterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.1 PropertyAccessPerformance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2 Scenario0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.3 Scenario1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.4 Scenario2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.5 Scenario3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.6 Scenario4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.7 Scenario5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.8 Scenario6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.9 Scenario7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.10 Scenario8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 viii 5.11 Scenario9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.12 Scenario10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.13 AcceptancetoConflictComparison. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ix LISTOFTABLES Table Page 3.1 ProperStatesofaDataItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Lookupofbmeaning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3 FormalDataStateDefinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4 TermsQuickReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1 Examplecachepartitioninginclient. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2 ClassificationsofDivergentData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3 ImplicationsofValuesPresentandAbsentinMergeAction . . . . . . . . . . . . . . . . . . 45 4.4 MergeResultBitFieldFlags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.1 Scenario0Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2 Scenario1Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3 Scenario2Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.4 Scenario3Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.5 Scenario4Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.6 Scenario5Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.7 Scenario6Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.8 Scenario7Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.9 Scenario8Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.10 Scenario9Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.11 Scenario10Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.12 PessimisticLockTestDetails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 D.1 PropertyPerformanceData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 x
Description: