ebook img

Improving Transaction Acceptance of Incoherent Updates Using Dynamic Merging In a Relational ... PDF

217 Pages·2016·3.77 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Improving Transaction Acceptance of Incoherent Updates Using Dynamic Merging In a Relational ...

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:
framework leverages merging strategies to resolve conflicts in data using a custom . Test Change Set Acceptance in the Face of Conflicts . Thus, the urge to make data available must be bridled with consistency a change set within each transaction and collisions between them, the serializability
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.