Memorizzare gli allegati attraverso la pipeline dedup invece di un oggetto per upload

FixMediaService
Spegnimento
6 agosto 2026 alle ore 20:45 UTC
Autore
Kamo
Impegno
0eda67f

Attachments ha scritto il proprio oggetto "imgId>/ <fileName>" su ogni upload, bypassando il content-addressed store interamente — lo stesso logo-draft.png attaccato tre volte in uno conversazione occupava tre oggetti. Carica ora hash in un ImgDat condiviso, così identico il contenuto viene memorizzato una volta non importa quanto spesso è attaccato, e un allegato che corrisponde un documento già nel sistema non costa affatto lo stoccaggio. La riga Img rimane per-attaccamento: porta la conversazione, uploader e revoca stato, ed è ancora ciò che l'accesso è controllato contro. Solo i byte sono condivisi. Le letture risolvono la chiave vestita di contenuto quando la riga ha un dat e ritornano al legacy oggetto per-upload quando non lo fa, così gli allegati predating questo continuare a lavorare — incluso qualsiasi scritto da un'istanza che non ha ancora arrotolato. ChatAttachmentDedupBackfill piega gli allegati legacy all'avvio: seleziona solo righe con un dat null e imposta che dat ultimo, quindi è idempotent, auto-guarigione attraverso il rollout, e un fallimento su una riga lo lascia sul percorso legacy ancora funzionante piuttosto che fallire l'avvio. Gli oggetti Legacy sono lasciati al posto; nulla cancella da MinIO.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo