Quelle est la différence entre un grain grossier et un grain fin?
J'ai cherché ces termes sur Google, mais je ne trouvais pas ce qu'ils voulaient dire.
La granularité est la mesure dans laquelle a le système est décomposé en petit parties, soit le système lui-même, soit son description ou observation. C'est le mesure dans laquelle une entité plus grande est subdivisé. Par exemple, une cour cassée en pouces a une granularité plus fine que une cour cassée en pieds.
Les systèmes à gros grains consistent en moins de composants plus gros que systèmes à grains fins; un grain grossier la description d'un système concerne les grands sous-composants tout en un grain fin la description concerne les composants plus petits dont les plus grands sont composés.
En termes simples
Il est préférable d’avoir davantage d’opérations de service à grain grossier, composées d’opérations à grain fin.
Une autre façon de comprendre serait de penser en termes de communication entre processus et threads. Les processus communiquent à l'aide de mécanismes de communication à grain grossier tels que sockets, gestionnaires de signaux, mémoire partagée, sémaphores et fichiers. Les threads, quant à eux, ont accès à la mémoire partagée appartenant à un processus, ce qui leur permet d'appliquer des mécanismes de communication de grain plus fins.
Source: concurrence Java en pratique
Dans le contexte des services:
http://en.wikipedia.org/wiki/Service_Granularity_Principle
Par définition, une opération de service à grain grossier a une portée plus large qu'un service fin-grain, bien que les termes soient relatifs. Le ancien nécessite généralement une complexité de conception accrue mais peut réduire le nombre d'appels requis pour effectuer une tâche.
Une interface de service à grain fin est à peu près identique à une interface bavarde.
En termes de jeu de données, comme un fichier texte, signification grossière, nous pouvons transformer le jeu de données entier mais pas un élément individuel du jeu de données.
grain grossier et grain fin. Ces deux modes définissent la manière dont les cœurs sont partagés entre plusieurs tâches Spark. Comme son nom l'indique, le mode de fonctionnement à grain fin est responsable de la répartition des cœurs à un niveau plus granulaire. Le mode à grain fin est obsolète par Spark et sera bientôt supprimé.
La granularité à gros grains ne signifie pas toujours de plus gros composants, si vous entendez littéralement le sens du mot grossier, cela signifie dur, ou pas approprié. par exemple. Dans la gestion de projets logiciels, si vous décomposez un petit système en quelques composants de taille égale, mais dont la complexité et les fonctionnalités varient, cela peut conduire à une granularité à grain grossier. Inversement, pour une répartition plus fine, divisez les composants en fonction de leur cohésion des fonctionnalités fournies par chaque composant.
À grain grossier et à grain fin envisagent tous deux d’optimiser un certain nombre de services. Mais la différence est dans le niveau. J'aime expliquer avec un exemple, vous comprendrez facilement.
Fine-grain : Par exemple, j'ai 100 services comme findbyId, findbyCategry, findbyName ...... ainsi de suite. Au lieu de cela, de nombreux services nous empêchent de trouver la recherche (id, catégorie, nom, etc.). Donc, de cette façon, nous pouvons réduire les services. Ce n’est qu’un exemple, mais l’objectif est de savoir comment optimiser le nombre de services.
À grain grossier : Par exemple, j'ai 100 clients, chaque client ayant son propre ensemble de 100 services. Je dois donc fournir 100 * 100 services au total. C'est très difficile. Au lieu de cela, j’identifie tous les services communs qui s’appliquent à la plupart des clients en tant que groupe de services unique et restant séparément. Par exemple, dans 100 services, 50 services sont communs. Je dois donc gérer 100 * 50 + 50 seulement.
Les services Corse-grain offrent des fonctionnalités plus étendues que les services à grain fin. Selon le domaine d'activité, un seul service peut être créé pour desservir une seule unité opérationnelle ou plusieurs services spécialisés à granularité fine peuvent être créés si les sous-unités sont largement indépendantes les unes des autres. Un service à grain grossier peut devenir plus difficile, moins adaptable au changement en raison de sa taille, tandis qu'un service à grain fin peut introduire une complexité supplémentaire dans la gestion de plusieurs services.