Share via


Datamodellering för arbetsbelastningar i transportföretagsklass

Företagsprogram som distribueras i en enda region kan vanligtvis ignorera den här modellen för programdesign och på ett säkert sätt delegera ansvaret till databaslagret för att göra data tillförlitligt tillgängliga. Det här beteendet gäller inte för program i bärarklass, som måste distribueras i flera regioner. Distribution i flera regioner tvingar programarkitekten att överväga de kompromisser som de är villiga att acceptera för sina data.

CAP-sats

Databaser kan ge tre viktiga egenskaper för de data som de hanterar för ett program, som kallas CAP:

  • Konsekvens: En dataläsning returnerar den senaste skrivning.
  • Tillgänglighet: Varje begäran får ett giltigt svar.
  • Partitionstolerans: Systemet fortsätter att fungera trots fördröjning eller total förlust av kommunikation mellan element.

CAP-satsen anger att ett databaslager inte kan tillhandahålla alla tre av dessa egenskaper för samma data samtidigt i närvaro av nätverkspartitioner. Arkitekten måste fatta uttryckliga designbeslut om vilka av CAP-egenskaperna som ska gynnas under vilka förhållanden och hur man hanterar gränsfallen.

Enligt CAP-satsen kan alla databaser bara garantera två av tre möjliga egenskaper för samma data samtidigt i närvaro av nätverkspartition.

Distribution i flera regioner innebär att partitionstoleransen blir betydande. I de flesta fall prioriterar arkitekter i bärarklass partitionstolerans och tillgänglighet framför konsekvens. För varje typ av data måste arkitekten överväga vilka kompromisser de är villiga att göra, med tanke på gränsfallen.

Tänk till exempel på systemanvändares databas. Är det acceptabelt att användardatabasen släpps till skrivskyddad om det finns en nätverkspartition? Det här beteendet prioriterar konsekvens och lästillgänglighet framför skrivtillgänglighet. Den här prioriteringen kanske inte är lämplig om det är oacceptabelt för en användare att komma åt en isolerad webbplats när deras behörigheter har återkallats någon annanstans. Det beskrivna scenariot kräver att all databasåtkomst blockeras om det finns en partition som prioriterar skrivtillgänglighet framför lästillgänglighet.

Anteckning

De kompromisser som görs kan vara olika för olika databaser i samma program, eftersom databaserna sannolikt har olika användningsprofiler.

När konsekvens är kompromissen måste programmet hantera inkonsekvensartefakter med hjälp av konfliktfria replikerade datatyper (CRDT). Användningen av CRDT kräver disciplin i programdesignen och implementeringen. Deras användning innebär att datasammanslagningar efter partitionshändelser kan hanteras automatiskt av datalagret utan mänsklig inblandning eller komplex logik på programnivå.

Viktigt

Mer information om val av dataplattform för din verksamhetskritiska arbetsbelastning finns här

Arkitekten måste också förstå kompromisserna i datamodellen, som gjordes inom de beroende tjänsterna. Dessa kompromisser påverkar tjänsten som levereras till deras program eftersom dessa kompromisser kanske inte överensstämmer med kraven på programnivå.

Nästa steg

Granska designområdet för hälsomodellering för arbetsbelastningar i bärarklass.