Spring til indhold
AiNews.dkDanske nyheder om Kunstig Intelligens

Topnyheder

Prototyper pakker alle versioner i en komprimeret blob og sparer SQLite-plads

To tilgange gemmer hele redigeringshistorikken som komprimerede JSON-arrays i en enkelt blob i stedet for en række per version.

1 kildeVedtaget af NIel AutopilotRettet 10. august 2026 kl. 15.10

Læs i dit tempo

Kort

To prototyper fra Simon Willison gemmer dokumenthistorik kompakt i JSON-arrays, hvor zlib/zstd-fjerner gentagen tekst på tværs af versioner og sparer plads. Metoden er relevant, fordi den traditionelle en-række-per-version-tilgang bruger unødig lagerplads. Willison har lavet to varianter: en der overskriver hele blobben og en der opdeler i stykker for bedre skalering.

Begynder

Forestil dig, at du skriver et langt brev og vil gemme en kopi efter hvert lille rettelse. Den traditionelle løsning i en database – en slags digital opbevaringskasse – er at lave en helt ny kopi for hver version. Hvis dit brev er på 20 kilobyte, så fylder det 20 kilobyte i hver kopi, selvom du blot har rettet ét enkelt ord. Det svarer til at fotografere hele dit værelse hver gang, du flytter en bog – billedet bliver lige så stort, uanset hvor lille ændringen er.

Simon Willison har foreslået en smartere metode. I stedet for separate kopier samler han alle versioner i ét samlet dokument (et såkaldt JSON-array, som forestil dig en indkøbsliste, hvor hver version er et punkt på listen). Dette dokument komprimeres – det vil sige, at computeren pakker det ned og fjerner gentagelser, ligesom du ville sige »tre røde æbler« i stedet for »et rødt æble, et rødt æble, et rødt æble«. Fordi de fleste redigeringer kun ændrer små dele, genkender kompressionen den gentagne tekst og behøver ikke at gemme den igen og igen. Resultatet er, at pladsbehovet falder markant.

Willison har bygget to varianter af sit system. Den ene, WholeBlobHistoryStore, gemmer hele historikken som ét komprimeret ark og overskriver det ved hver redigering. Den anden, ChunkedHistoryStore, deler historikken op i mindre, forseglede stykker – lidt som at opdele en lang bog i kapitler. Det gør det lettere at arbejde med meget lange historikker, fordi computeren ikke skal genpakke alt, hver gang der sker en lille ændring. Begge varianter gemmer et tidsstempel – en slags digital uravisning – for hver version, og de springer redigeringer over, der slet ikke ændrer teksten. For at sikre, at to personer eller programmer ikke skriver i historikken på samme tid, låses adgangen med en mekanisme, der kun lukker én skriver ind ad gangen.

AiNews' genererede delekort for „Prototyper pakker alle versioner i en komprimeret blob og sparer SQLite-plads“
Genereret motiv i AiNews' radarsprog · ikke et fotografi fra historien

Den traditionelle måde at gemme tekstversioner i en database er én række per tidligere version. Et dokument på 20 kilobyte fylder 20 kilobyte på tværs af alle rækker, uanset hvor små ændringerne er.

Simon Willisons prototyper tager en anden vej. Alle tidligere versioner samles i et JSON-array af strenge, som komprimeres med zlib eller zstd. Gentagende tekst på tværs af versioner bliver elimineret af kompressionen, så pladsbehovet falder markant.

Willison har bygget to varianter. WholeBlobHistoryStore gemmer hele historikken i én komprimeret blob og overskriver den ved hver redigering. ChunkedHistoryStore deler historikken op i forseglede, komprimerede stykker, som gør det lettere at håndtere lange historikker uden at skulle genkomprimere alt hver gang.

Begge prototyper bevarer tidsstempler for hver version og hopper over redigeringer, der ikke ændrer teksten. Skriveadgang låses med BEGIN IMMEDIATE, så kun én proces kan opdatere historikken ad gangen.

Det er uklart: Kilden er Simons eget blogindlæg med henvisning til prototyperne. Der er ikke offentliggjort benchmarks for pladsbesparelse, og koden er ikke bundet til en specifik udgivelse.

Kilder

  1. SQLite compressed text-history prototypes simonwillison.net
Produktionshistorie
  1. Radar Signal ? af 100 · spredning 1 kilder
  2. Vurdering Nyheds 4/5 — Konkret prototype til komprimeret lagring af teksthistorik i SQLite, relevant for udviklere der bygger AI-værktøjer.
  3. Skrevet Model: mimo-v2.5-free · temperatur 0.4
  4. Overskrift 5 kandidater, valgt af chat.dk
  5. Korrektur 2 chatdk · 1 rettelser
  6. Vedtagelse ainews-auto-v3 · score 0.362