Vector databases winnen verwijderde ruimte terug door actieve records opnieuw naar schone segmenten te schrijven en oudere segmentbestanden buiten gebruik te stellen die nog verwijderde vectoren bevatten.
Wanneer je een huishoudelijk document uit een lokale RAG-bibliotheek verwijdert, kan het onmiddellijk uit de zoekresultaten verdwijnen terwijl het schijfgebruik nauwelijks verandert. Dat betekent niet per se dat het verwijderen is mislukt. Veel vectordatabases scheiden logische zichtbaarheid van fysieke opslagopschoning, zodat schrijfbewerkingen op de voorgrond snel blijven en lezers onveranderlijke of op toevoegen gerichte segmenten kunnen blijven gebruiken. Compaction is het latere onderhoudsproces dat deze logische verwijderingen omzet in een kleinere fysieke representatie.
Een verwijdering wijzigt meestal eerst de zichtbaarheid voordat opgeslagen bytes worden herschreven
Een groot indexbestand fysiek aanpassen voor elke verwijdering zou dure willekeurige schrijfbewerkingen en complexe gelijktijdigheidsproblemen veroorzaken. Veel engines registreren in plaats daarvan een verwijderingsmarkering, tombstone of verwijderingslog die de zoekfunctie vertelt de vector te negeren.
HNSW-tombstones zorgen ervoor dat verwijderde objecten niet langer in aanmerking komen voor graafzoekopdrachten voordat achtergrondonderhoud hun volledige indexstatus fysiek verwijdert.
Het resultaat voor de gebruiker en het resultaat op schijfniveau ontstaan daardoor op verschillende momenten. Het record kan uit nearest-neighbor-resultaten verdwijnen terwijl de oude bytes nog in een bestaand segment staan.
Door deze scheiding kan de database ook gelijktijdige query's, replica's, snapshots en bewaarbeleid coördineren voordat historische opslagstructuren worden vernietigd.
Verwijderde records stapelen zich in segmenten op totdat een opschoningsdrempel wordt bereikt
Een segment kan zowel actieve vectoren bevatten als records die niet langer in aanmerking komen voor zoekopdrachten. Naarmate updates en verwijderingen zich opstapelen, daalt de verhouding tussen bruikbare en verouderde gegevens.
Een drempel voor verwijderde vectoren kan dure opschoning uitstellen totdat zich genoeg verouderde punten hebben verzameld om het herschrijven van een segment rendabel te maken.
Wachten op een drempel spreidt het onderhoudswerk. Een segment herschrijven om één klein verwijderd record terug te winnen zou meer I/O kosten dan de bespaarde ruimte oplevert. Op een thuisserver waarop vaak opnieuw wordt geïndexeerd, kan de zichtbare hoeveelheid verouderde fysieke opslag daarom een tijdlang toenemen voordat de optimizer besluit dat opschonen de moeite waard is.
Compaction kopieert actieve gegevens naar nieuwe of samengevoegde segmenten
Zodra het onderhoud begint, leest de database geschikte bronsegmenten, slaat logisch verwijderde records over en schrijft de overblijvende vectoren en payloads naar een nieuwe, compacte representatie.
compaction als het samenvoegen van segmenten en het opschonen van verwijderingen herschrijft overblijvende gegevens naar schonere segmenten en laat records weg die al logisch zijn verwijderd of verlopen.
Kleine segmenten kunnen tegelijkertijd worden samengevoegd, waardoor het aantal afzonderlijke structuren dat de zoekfunctie moet raadplegen afneemt. Het nieuwe segment vertegenwoordigt de actieve toestand, zonder elke historische mutatie mee te nemen.
Voor deze herschrijving kan tijdelijk extra vrije ruimte nodig zijn, omdat oude en nieuwe segmenten naast elkaar kunnen bestaan totdat de vervanging is geverifieerd en geactiveerd.
Indexen worden opnieuw opgebouwd rond de overblijvende vectorverzameling
Het verwijderen van bytes van vectorpayloads is slechts een deel van de opschoning. Graafverbindingen, gekwantiseerde structuren, filters en segmentmetadata kunnen verwijzen naar records die niet langer in het actieve segment thuishoren.
Een compaction-proces dat indexen opnieuw opbouwt tijdens optimalisatie, zorgt ervoor dat graaf- en aanvullende zoekstructuren overeenkomen met de overblijvende vectorverzameling en geen verwijzingen naar verwijderde punten behouden.
Bij HNSW kan hierdoor de graaftopologie veranderen, zelfs wanneer de overblijvende vectoren zelf ongewijzigd zijn. Daarom kan compaction de navigatie door benaderende-neighborstructuren beïnvloeden en toch dezelfde logische dataset behouden. Het mechanisme in dit artikel betreft de levenscyclus van opslag: verouderde records worden uitgesloten van de herschreven index, zodat hun fysieke voetafdruk uiteindelijk kan verdwijnen.
Oude segmenten moeten buiten gebruik worden gesteld voordat hun opslag kan worden vrijgegeven
Nadat het gecompacteerde segment de actieve representatie is geworden, worden oude segmenten als verouderd gemarkeerd of verwijderd. De onderliggende bestanden kunnen echter nog een garbagecollection- of bewaartermijn afwachten voordat de daadwerkelijke schijfblokken worden vrijgegeven.
Wanneer garbagecollection na compaction plaatsvindt, kunnen verwijderde segmentbestanden tijdelijk blijven bestaan nadat de gecompacteerde vervanging actief is. Daardoor kan schijfruimte later worden vrijgegeven dan de zichtbaarheid in zoekopdrachten verandert.
Snapshots, het bewaren van back-ups, replicatie of lezers die verwijzingen vasthouden kunnen die vertraging verlengen in systemen die oudere segmentgeneraties bewaren.
Bij schijfmonitoring moet daarom onderscheid worden gemaakt tussen het logische aantal entiteiten, de grootte van actieve segmenten, tijdelijke ruimte voor compaction, verwijderde segmenten en de vrije capaciteit van het bestandssysteem.
Compaction is achtergrondonderhoud met eigen resourcekosten
Het lezen van oude segmenten, het schrijven van nieuwe, het opnieuw opbouwen van indexen en het verwijderen van verouderde bestanden verbruikt CPU, schijfbandbreedte, geheugen en soms tijdelijk dubbele opslagruimte.
tombstone-opschoningsstatistieken maken herstel na verwijderingen zichtbaar als een onderhoudstaak met eigen cycli, duur en resourceverbruik.
Het voorkomen van verouderde indexrecords na bestandsupdates is een vereiste stroomopwaarts: een verwijdering uit de bron moet eerst de vectordatabase bereiken voordat compaction de verouderde representatie kan terugwinnen.
Tech & AI HUB
Meer om te lezen

Wat is de Plex-status en welke onderdelen moeten behouden blijven?
Persistente Plex-statusinformatie is de informatie die de serverervaring na een herstart en opnieuw opbouwen behoudt; media- en tijdelijke transcodegegevens hebben afzonderlijke functies.

Hoe regelt Plex de authenticatie voor lokale en externe sessies?
Plex-authenticatie begint met de identiteit van de server en het account. Vervolgens bepalen lokale of externe netwerkpaden de bereikbaarheid en het gedrag van beveiligde...

Waarom kan het zoeken in Plex trager worden naarmate de bibliotheekgegevens toenemen?
Alleen de groei van de bibliotheek is niet de diagnose. Controleer de querystructuur, indexen, cachestatus, opslaglatentie en schrijfactiviteit voordat je de omvang van de...

