Datasynkronisering - Data synchronization

Datasynkronisering er processen med at etablere konsistens mellem data fra en kilde til et måldatalagring og omvendt og den kontinuerlige harmonisering af dataene over tid. Det er grundlæggende for en lang række applikationer, herunder filsynkronisering og synkronisering af mobilenheder, fx til PDA'er . Synkronisering kan også være nyttig i kryptering til synkronisering af offentlige nøgleservere.

Filbaserede løsninger

Der er værktøjer til rådighed til filsynkronisering , versionskontrol ( CVS , Subversion osv.), Distribuerede filsystemer ( Coda osv.) Og spejling ( rsync osv.), Idet alle disse forsøger at holde sæt af filer synkroniseret. Imidlertid er det kun versionskontrol- og filsynkroniseringsværktøjer, der kan håndtere ændringer til mere end en kopi af filerne.

  • Filsynkronisering bruges ofte til sikkerhedskopiering i hjemmet på eksterne harddiske eller opdatering til transport på USB-flashdrev . Den automatiske proces forhindrer kopiering af allerede identiske filer, hvilket kan spare betydelig tid i forhold til en manuel kopi, hvilket også er hurtigere og mindre udsat for fejl.
  • Værktøj til styring af versioner er beregnet til at håndtere situationer, hvor mere end en bruger forsøger at ændre den samme fil samtidigt, mens filsynkroniseringsprogrammer er optimeret til situationer, hvor kun en kopi af filen redigeres ad gangen. Af denne grund, selvom versionskontrolværktøjer kan bruges til filsynkronisering, kræver dedikerede programmer mindre omkostninger .
  • Distribuerede filsystemer kan også ses som sikre, at flere versioner af en fil synkroniseres. Dette kræver normalt, at de enheder, der gemmer filerne, altid er tilsluttet, men nogle distribuerede filsystemer som Coda tillader frakoblet drift efterfulgt af afstemning. Fusionsfaciliteterne for et distribueret filsystem er typisk mere begrænsede end for et versionskontrolsystem, fordi de fleste filsystemer ikke har en versionskart.
  • Spejl (computing) : Et spejl er en nøjagtig kopi af et datasæt. På Internettet er et spejlwebsted en nøjagtig kopi af et andet websted. Spejlesider bruges oftest til at levere flere kilder med de samme oplysninger og er af særlig værdi som en måde at give pålidelig adgang til store downloads.

Teoretiske modeller

Flere teoretiske modeller for datasynkronisering findes i forskningslitteraturen, og problemet er også relateret til problemet med Slepian-Wolf-kodning i informationsteori . Modellerne klassificeres ud fra, hvordan de betragter dataene som synkroniserede.

Uordnede data

Problemet med at synkronisere ikke-ordnede data (også kendt som det indstillede afstemningsproblem ) er modelleret som et forsøg på at beregne den symmetriske forskel mellem to eksterne sæt og af b-bitnumre. Nogle løsninger på dette problem er karakteriseret ved:

Engrosoverførsel
I dette tilfælde overføres alle data til en vært til en lokal sammenligning.
Synkronisering af tidsstempel
I dette tilfælde er alle ændringer af data markeret med tidsstempler. Synkroniseringen fortsætter ved at overføre alle data med et tidsstempel senere end den forrige synkronisering.
Matematisk synkronisering
I dette tilfælde behandles data som matematiske objekter, og synkronisering svarer til en matematisk proces.

Bestilte data

I dette tilfælde to fjerntliggende strygere og til behovet forenes. Det antages typisk, at disse strenge adskiller sig med op til et fast antal redigeringer (dvs. tegnindsættelser, sletninger eller ændringer). Derefter er datasynkronisering processen med at reducere redigeringsafstanden mellem og op til den ideelle afstand nul. Dette anvendes i alle filsystembaserede synkroniseringer (hvor data bestilles). Mange praktiske anvendelser af dette er diskuteret eller henvist til ovenfor.

Det er nogle gange muligt at omdanne problemet til en af uordnede data gennem en proces, der kaldes overlapning (opdeling strengene i helvedesild ).

Fejlhåndtering

I fejltolerante systemer skal distribuerede databaser være i stand til at klare tab eller korruption af (en del af) deres data. Det første trin er normalt replikering , hvilket indebærer at lave flere kopier af dataene og holde dem ajour, når der foretages ændringer. Det er dog derefter nødvendigt at beslutte, hvilken kopi du vil stole på, når der opstår tab eller korruption af en forekomst.

Den enkleste tilgang er at have en enkelt masterinstans, der er den eneste kilde til sandhed. Ændringer til den replikeres til andre forekomster, og en af ​​disse forekomster bliver den nye master, når den gamle master mislykkes.

Paxos og Raft er mere komplekse protokoller, der findes for at løse problemer med forbigående effekter under failover, såsom to tilfælde, der tror, ​​at de er mesteren på samme tid.

Hemmelig deling er nyttig, hvis fejl i hele noder er meget almindelige. Dette flytter synkronisering fra en eksplicit genoprettelsesproces til at være en del af hver læsning, hvor en læsning af nogle data kræver hentning af kodede data fra flere forskellige noder. Hvis der findes korrupte eller forældede data på nogle noder, kan denne tilgang også have gavn af brugen af ​​en fejlkorrektionskode .

DHT'er og Blockchains forsøger at løse problemet med synkronisering mellem mange noder (hundreder til milliarder).

Se også

Referencer