2016-10-25 2 views
0

J'essaie de charger les tables de base de données dans la base de données VoltDB en utilisant l'utilitaire csvloader de VoltDB. Quand j'essaie de charger une table de 5 Go, Voltdb mange la RAM si vite que la RAM libre devient 200 Mo de 55 Go, puis le processus VoltDB est tué par le système.VoltDB est l'épuisement de la RAM lors du chargement des données

Quelle peut être la raison de ceci et quel est le réglage recommandé pour VoltDB pour éviter cela?

Répondre

2

La table que vous chargez est-elle partitionnée? C'est la première chose à vérifier, car si vous avez la valeur par défaut sitesperhost = 8 sur un seul serveur, et que la table n'est pas partitionnée, il y aura une copie complète de la table dans chacune des 8 partitions. Si la table est partitionnée, les données sont réparties entre les partitions en fonction de l'affectation de hachage des valeurs de la colonne de clé de partitionnement.

S'il est partitionné et que vous ne pouvez toujours pas charger toutes les données, la prochaine chose à regarder serait le schéma. Il existe des formules dans le Guide de planification qui décrivent l'utilisation de la mémoire pour des types de données donnés et pour des index. L'interface VMC a également une feuille de dimensionnement qui vous donne les minutes et les maximums basés sur le schéma. Vous pouvez également afficher la définition de la table que vous essayez de charger, ainsi que les index que vous avez définis dessus, et nous pouvons en expliquer davantage sur les octets qu'elle utiliserait par ligne.