Child pages
  • Rebuilding, Scanning the Tapes
Skip to end of metadata
Go to start of metadata

Et forslag til hvordan man kan rebuilde update trackeren.

Jeg har brug for at kunne få update trackeren opdateret hvis doms ændrer sig. Jeg har brug for at dette er en pålidelig operation, selv hvis doms dør. Dvs. der skal virkeligt ikke være nogen huller hvor ting kan ske i doms, men ikke komme med i update tracker.

Dette er første spørgsmål. Hvor tight skal den kobling være? Ligesom de eksisterende indexer, som kan blive usynkroniseret eller ligesom xmltapes som er autoritive

Næste spørgsmål er rebuild, og hvordan en sådan skal kunne foretages

Jeg har et lidt langt ude design i tankerne

Update tracker er lavet til at reagere på en serie af api kald, i form af "modifyDatastream" osv. Xmltapes er et blob store, og forstår ikke hvad der ændrer sig. Men vi har AUDIT datastreamen, som ligger i hvert objekt og som fedora holder up2date. Hvis man starter forfra i tape arkivet og parser bagud, kan man få den nyeste AUDIT af hvert objekt rimeligt billigt, da de ældre dele vil være skips på skips. Nu, AUDIT lister apiM metoden brugt, og hvilken datastream den er brugt på, og tidsstempler. Det er næsten alt hvad jeg har brug for, for men med dette kan jeg lave en sorteret liste af ændringer i doms. Denne vil kunne rebuildes ved at pløje et antal tapes igennem igen. Man behøver ikke engang at ramme alle, hvis man ved at den er synkroniseret indtil et vist punkt. Fra den vil jeg kunne replaye ændringer for update trackeren

Så hvad er problemet

Problemet er state.

State først. AUDIT lister ikke hvad state skifter til, kun at det potentielt har skiftet, og hvad det så er nu. Dvs. når jeg travler bagud er jeg nød til at se på objektet gennem tiderne (eller rettere, dets state) for at se hvad det har skiftet mellem. Det er annoying og error prone. Men jeg kan måske ignorere det da at update trackeren ikke er interesseret i en fuld historie, men snarere latest for de forskellige states. Så snart jeg ser at en post er blevet aktiv kan jeg ignorere alle states for den post tidligere, da jeg nu ved at de er ligemeget

Hver ændring kommer ikke i tapes, da vi bundler updates for at vores tapes ikke vokser sig enorme. Det er op til at par minutters ændringer der bliver bundled, men ændringer kommer som regel i bursts varende få sekunder. Min pointe er at jeg ikke nødvendigvis har et stop for hver gang et objekt har skiftet state. Det er kun et problem hvis det er blevet aktiveret og inaktiveret meget hurtigt. jeg vil så se et antal modifyObject og en current state til Inactive. Den vil blive overset, og jeg ved ikke lige hvad jeg skal gøre ved det

Why no worky

Kåre Fiedler Christiansen: Det er en gammel kendt ting ad når du opdaterer relationer med REST-kald, så kommer der ikke noget i AUDIT-datastreamen. Men måske kan du slippe afsted med at bruge dels AUDIT datastream og dels tidsstempel på RELS-EXT

 

  • No labels