Les instantanés du système de fichiers peuvent amener la compaction des vecteurs à conserver à la fois les anciens blocs et les blocs réécrits, retardant ainsi la récupération d’espace et augmentant la pression liée à la copie sur écriture pendant les fusions.
Une base de données vectorielle peut compacter les segments pour supprimer les marqueurs de suppression, fusionner les petits fichiers et améliorer la localité des requêtes, en supprimant les fichiers obsolètes après un remplacement sécurisé. Un instantané du système de fichiers créé avant la fusion référence encore leurs anciens blocs, de sorte que le pool les conserve tout en allouant la sortie compactée. L’instantané préserve la possibilité de récupération, mais le comportement en matière d’espace libre et de latence diffère de celui d’un système de fichiers sans instantané.
La compaction réécrit les enregistrements logiques dans de nouveaux fichiers
De nombreux magasins de vecteurs utilisent des segments immuables ou des composants structurés en journaux. Les mises à jour et les suppressions ajoutent le nouvel état, puis la compaction en arrière-plan lit les enregistrements actifs, écrit des fichiers consolidés, met à jour les manifestes et supprime les segments remplacés après une validation sécurisée. Cet effet doit rester mesurable dans la charge de travail prévue sur le serveur domestique.
La compaction LSM décrit les arbres de fusion structurés en journaux comme une hiérarchie qui regroupe les écritures et fusionne les composants au fil du temps. Ce schéma de réécriture explique pourquoi la compaction nécessite temporairement à la fois les données d’entrée et de sortie. Cette distinction est importante lorsque plusieurs étapes du pipeline partagent le même budget de stockage et de mémoire.
Les structures propres aux vecteurs ajoutent des liens de graphe, des listes d’occurrences, des index de données utiles et des fichiers de quantification ; les octets compactés ne correspondent donc pas nécessairement aux octets supprimés. Le nettoyage au niveau de la base de données et la récupération des blocs au niveau du système de fichiers sont deux événements distincts. Cette limite doit être testée avec des données représentatives d’un foyer plutôt que supposée.
Les instantanés maintiennent les blocs antérieurs à la compaction accessibles
Un instantané en copie sur écriture enregistre un graphe de blocs à un instant donné. Lorsque la compaction écrit de nouveaux fichiers, le système de fichiers actif référence de nouveaux blocs tandis que l’instantané continue de référencer les anciens segments ; la suppression des noms de fichiers dans la vue active ne peut pas libérer les blocs toujours nécessaires à l’instantané.
La rétention des blocs par les instantanés d’OpenZFS définit les instantanés comme des versions en lecture seule d’un système de fichiers ou d’un volume à un instant donné. L’espace qu’ils utilisent augmente à mesure que les données actives divergent, ce qui correspond exactement à ce que produit une compaction importante reposant sur de nombreuses réécritures.
Une commande d’instantané rapide peut donc précéder une croissance importante de l’espace utilisé. Le coût apparaît lors des écritures ultérieures, et pas nécessairement lors de la création de l’instantané, et persiste jusqu’à la suppression de chaque instantané qui y fait référence. Cet effet doit rester mesurable dans la charge de travail prévue sur le serveur domestique.
Un faible espace libre peut transformer la rétention en latence
La compaction nécessite une marge temporaire, et l’allocation en copie sur écriture nécessite des blocs libres. Lorsque les instantanés préservent les anciens segments, le pool peut se fragmenter ou approcher de sa capacité maximale, ce qui ralentit les écritures et prolonge la compaction ; une compaction plus longue laisse à son tour davantage de segments et de travail pour les requêtes.
La compaction vectorielle de Milvus décrit la compaction comme la fusion de petits segments et le nettoyage des données supprimées afin d’améliorer le stockage et le comportement des requêtes. Ce mécanisme montre pourquoi les bases de données vectorielles peuvent réécrire des fichiers volumineux même lorsque la modification logique consiste en un ensemble de suppressions.
La limite consiste à supposer que la taille de l’instantané indiquée lors de sa création prédit son coût final. Le volume de compaction, la fréquence des mises à jour, la compression, les vecteurs supprimés, l’espace libre du pool et la durée de vie de l’instantané déterminent les octets conservés et la latence de queue. Cette distinction est importante lorsque plusieurs étapes du pipeline partagent le même budget de stockage et de mémoire.
FAQ sur les instantanés et la compaction vectorielle
Faut-il désactiver les instantanés pendant la compaction ?
Pas automatiquement. Les instantanés protègent les points de récupération, mais planifier les compactages importants en dehors des fenêtres d’instantanés peut réduire la divergence conservée. Toute modification doit maintenir un plan de sauvegarde et de cohérence de la base de données qui a été testé. Cette limite doit être testée avec des données représentatives d’un foyer plutôt que supposée.
Pourquoi la taille de la base de données reste-t-elle élevée après la compaction des vecteurs supprimés ?
D’anciens blocs peuvent rester référencés par des instantanés, des clones ou des sauvegardes même après que la base de données active a supprimé les segments obsolètes. Vérifiez séparément les fichiers de la base de données et l’espace référencé du système de fichiers. Cet effet doit rester mesurable dans la charge de travail prévue sur le serveur domestique.
Un instantané peut-il capturer un index vectoriel incohérent ?
Oui, si les fichiers de la base de données, les journaux d’écriture anticipée, les manifestes et les métadonnées associées ne sont pas mis au repos ou capturés de manière atomique. Utilisez le mécanisme de point de contrôle ou de vidage de la base de données avant l’instantané du système de fichiers lorsque cela est nécessaire. Cette distinction est importante lorsque plusieurs étapes du pipeline partagent le même budget de stockage et de mémoire.
Mesurer la divergence d’un instantané pendant une fusion contrôlée
Clonez un index représentatif, relevez les tailles logique et physique, créez un instantané, puis exécutez un cycle mesuré de suppression et de compaction. Suivez les octets de compaction, le pic d’espace temporaire, les octets référencés par l’instantané, l’espace libre du pool, la latence d’écriture, la latence de queue des requêtes et le délai de récupération après la suppression de l’instantané.
Comparez le résultat au mécanisme de blocage des instantanés décrit dans le mécanisme de blocage des instantanés. Répétez le test sans instantané et avec différentes durées de rétention, tout en maintenant constantes la version de la base de données, l’index, les données, la compression, les paramètres du pool et la charge en arrière-plan. Cette limite doit être testée avec des données représentatives d’un foyer plutôt que supposée.
Planifiez les instantanés et la compaction en fonction de la marge mesurée plutôt que par commodité. Conservez un point de restauration cohérent avec la base de données, réservez de l’espace pour les anciens et les nouveaux segments, et n’expirez les instantanés que conformément à la politique de rétention établie, plutôt que de supprimer la protection pour masquer des erreurs de planification de capacité.
Centre Tech & IA
Plus à lire

Un modèle de langage local peut-il reprendre la génération après le redémarrage de son processus ?
Une explication de la reprise de génération des LLM axée sur les mécanismes, de ses compromis en matière de ressources partagées, de trois FAQ...

Un serveur domestique peut-il exécuter des embeddings et du transcodage vidéo sur le même GPU intégré ?
Une explication axée sur les mécanismes des embeddings partagés de l’iGPU et du transcodage, de leurs compromis en matière de ressources partagées, de trois...

Quel est l’impact de la durée de vie des jetons d’accès sur la sécurité et les contraintes au sein du foyer ?
Une explication fondée sur les mécanismes de la durée de vie des jetons d’accès, de ses compromis en matière de ressources partagées, de trois...

