2017-10-16 6 views
0

J'utilise Neo4J dans Docker. Malgré une opération de suppression majeure, la taille du magasin du graphique semble augmenter.La taille du magasin Neo4J augmente après une opération de suppression majeure

J'apprécierais que quelqu'un puisse me dire pourquoi. Merci!

+0

Comment effectuer la suppression? La balise 'cypher' vous suggère d'utiliser Cypher, n'est-ce pas? –

+0

Donc, j'essayais de supprimer tous les nœuds non connectés. Voici donc ce que j'ai utilisé: 'MATCH (n) WHERE taille ((n) -()) = 0 DETACH DELETE n;' –

+0

Comment calculez-vous la taille du magasin? Prenez-vous en compte les journaux de transactions? – logisima

Répondre

1

Il vient de la façon dont les données de stockage Neo4j.

Il existe un magasin de nœuds (c'est-à-dire un fichier) et chaque nœud prend une taille fixe. Ainsi, lorsque vous supprimez un noeud, l'enregistrement correspondant dans le fichier est nettoyé, mais le fichier a toujours la même taille.

Après quelques temps, Neo4j peut réutiliser l'identifiant de ce noeud pour éviter d'avoir un gros fichier 'vide'.

Il est donc normal que la taille de votre banque de données ne soit pas réduite. En outre, chaque fois que vous effectuez une action sur une donnée (créer, mettre à jour ou supprimer), la modification est enregistrée dans les journaux de transactions.

Et c'est pourquoi la taille de votre banque de données augmente.

Il y a une politique pour cette rétention de journal que vous pouvez configurer, et celle par défaut est de conserver toutes les transactions des X derniers jours (je ne me souviens pas du nombre). Cheers

+0

Merci, cela signifie-t-il que l'augmentation de la taille est uniquement due aux journaux de transactions? –

+0

Dans votre cas, oui je pense. Vous pouvez le vérifier en faisant la même chose, mais ne vous occupez pas des fichiers 'neostore.transaction.X' lorsque vous calculez la taille du magasin – logisima