2013-01-09 3 views
2

Je voulais comprendre l'impact de l'activation de CPF - Content Processing Framework sur le serveur Marklogic 4.2.9. Nous avons un DB de production de la taille de 3 To et nous examinons diverses tâches d'enrichissement de contenu et de suppression de contenu qui nécessitent plusieurs actions à effectuer. J'ai déjà travaillé sur la création de pipelines CFP dans le cadre de projets antérieurs, mais dans mon projet actuel, la base de données est actuellement équipée de CPF. Ce que je voulais comprendre est, Lorsque/si nous activons du PCF sur cette base de données, quel sera l'impact sur 1. utilisation de la mémoire MarkLogic 2. Espace disque 3. Performance sur tous 4. IO etc. Les pipelines qui Nous essayons de créer aura un impact sur tout/n'importe quel document existant dans la base de données.Activation de CPF dans Marklogic

Merci pour l'aide !!!

Répondre

2

Si vous avez déjà maintain-last-modified activé, l'impact sur la mémoire et l'espace disque sera minime. Si maintain-last-modified a été désactivé, CPF crée de nouveaux fragments de propriété à mesure que les documents sont touchés. À partir de là, vous pouvez utiliser de la mémoire et de l'espace disque supplémentaires, probablement environ 100-B de mémoire et 1 Ko d'espace disque par document. Les fragments supplémentaires peuvent également avoir un impact sur les E/S et les performances globales, mais prévoir leur étendue nécessiterait une meilleure compréhension de l'application et de ses requêtes.

3

Je pense que @mblakele couvre assez bien l'impact sur mem et sur disque. Mais j'aimerais ajouter quelques mots sur le fonctionnement de CPF. Cela peut aider à la façon dont la performance est généralement influencée par CPF.

CPF repose sur le mécanisme de déclenchement de MarkLogic. Tout document inséré, mis à jour et supprimé active la gestion de CPF avec une transition d'état initiale. Chaque action provoque une transition d'état supplémentaire. Chaque transition d'état implique l'exécution d'un trigger post-commit, appelant du code interne CPF qui fait un xdmp: invoke du module d'action réel. Ainsi, si vous avez une seule transaction qui insère 100 documents, cela entraîne l'insertion de 100 tâches post-validation dans la file d'attente du serveur de tâches pour les démarreurs. Et j'ai peur que le xdmp: invoque cause la mise en file d'attente de 100 autres tâches. Ce nombre multiplie au moins par trois si les documents traversent trois états en moyenne. En d'autres termes, CPF a un impact important sur la file d'attente du serveur de tâches. Dans quelle mesure cela a un impact réel sur les performances peut dépendre de la façon dont vous utilisez déjà le serveur de tâches. Toute tâche non-CPF sur le serveur de tâches va être retardée par les tâches CPF. D'un autre côté, si vous n'utilisez pas vraiment le serveur de tâches pour le moment, vous ne remarquerez peut-être pas grand-chose à ce sujet. Les demandes du serveur d'applications s'exécutent sur la file d'attente du serveur d'applications, qui est gérée séparément.

Une autre chose est que CPF traite le document individuellement. C'est idéal pour le traitement en arrière-plan lent et résilient. Mais si vous avez besoin de rapidité, il vaut mieux créer des transactions pour des lots de documents.

HTH!