FR3060791A1 - METHOD AND DEVICE FOR UPDATING - Google Patents

METHOD AND DEVICE FOR UPDATING Download PDF

Info

Publication number
FR3060791A1
FR3060791A1 FR1662694A FR1662694A FR3060791A1 FR 3060791 A1 FR3060791 A1 FR 3060791A1 FR 1662694 A FR1662694 A FR 1662694A FR 1662694 A FR1662694 A FR 1662694A FR 3060791 A1 FR3060791 A1 FR 3060791A1
Authority
FR
France
Prior art keywords
server
resource
computer
task
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1662694A
Other languages
French (fr)
Other versions
FR3060791B1 (en
Inventor
Patrick Brown
Son Hai Ha
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR1662694A priority Critical patent/FR3060791B1/en
Priority to PCT/FR2017/053585 priority patent/WO2018109407A1/en
Publication of FR3060791A1 publication Critical patent/FR3060791A1/en
Application granted granted Critical
Publication of FR3060791B1 publication Critical patent/FR3060791B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention vise un procédé de mise à jour pour au moins un serveur d'un cluster d'une valeur courante d'une variable parmi une estimation d'une quantité déjà utilisée d'une ressource informatique sur le serveur ou une capacité maximale du serveur pour cette ressource, cette valeur courante étant prise en compte par un dispositif de gestion du cluster pour sélectionner sur réception d'une requête d'exécution d'une tâche informatique, un serveur cible pour exécuter cette tâche, la mise à jour étant réalisée à chaque détection (F10) d'un événement (EV) parmi un ensemble prédéfini d'événements et : - si l'événement détecté est l'obtention d'une mesure d'une utilisation réelle courante de la ressource sur le serveur, la mise à jour (F30) utilise la mesure de l'utilisation réelle courante de la ressource sur le serveur ; - si l'événement détecté est la réservation pour une tâche informatique d'une quantité de la ressource sur le serveur, la mise à jour (F40) utilise la quantité de ressource réservée ; et - si l'événement détecté est la libération par une tâche informatique d'une quantité de la ressource sur le serveur, la mise à jour (F50) utilise la quantité de ressource libérée.The invention relates to a method of updating for at least one server of a cluster of a current value of a variable from an estimate of an already used quantity of a computing resource on the server or a maximum capacity of the server. server for this resource, this current value being taken into account by a cluster management device to select on receiving a request to execute a computer task, a target server to perform this task, the update being performed at each detection (F10) of an event (EV) out of a predefined set of events and: - if the detected event is to obtain a measurement of a current actual use of the resource on the server, the update (F30) uses the measure of the actual current usage of the resource on the server; if the detected event is the reservation for a computer task of a quantity of the resource on the server, the update (F40) uses the quantity of reserved resource; and if the detected event is the release by a computer task of a quantity of the resource on the server, the update (F50) uses the amount of resource released.

Description

® RÉPUBLIQUE FRANÇAISE® FRENCH REPUBLIC

INSTITUT NATIONAL DE LA PROPRIÉTÉ INDUSTRIELLE © N° de publication : 3 060 791 (à n’utiliser que pour les commandes de reproduction)NATIONAL INSTITUTE OF INDUSTRIAL PROPERTY © Publication number: 3,060,791 (to be used only for reproduction orders)

©) N° d’enregistrement national : 16 62694©) National registration number: 16 62694

COURBEVOIE © Int Cl8 : G 06 F15/16 (2017.01), G 06 F 9/50COURBEVOIE © Int Cl 8 : G 06 F15 / 16 (2017.01), G 06 F 9/50

DEMANDE DE BREVET D'INVENTION A1A1 PATENT APPLICATION

©) Date de dépôt : 16.12.16. ©) Priorité : ©) Date of filing: 16.12.16. ©) Priority: ©) Demandeur(s) : ORANGE Société anonyme — FR. ©) Applicant (s): ORANGE Société anonyme - FR. @ Inventeur(s) : BROWN PATRICK et HA SON HAI. @ Inventor (s): BROWN PATRICK and HA SON HAI. ©) Date de mise à la disposition du public de la demande : 22.06.18 Bulletin 18/25. ©) Date of public availability of the request: 06.22.18 Bulletin 18/25. ©) Liste des documents cités dans le rapport de recherche préliminaire : Se reporter à la fin du présent fascicule ©) List of documents cited in the preliminary search report: See the end of this booklet (© Références à d’autres documents nationaux apparentés : (© References to other related national documents: ©) Titulaire(s) : ORANGE Société anonyme. ©) Holder (s): ORANGE Société anonyme. ©) Demande(s) d’extension : ©) Extension request (s): ® Mandataire(s) : CABINET BEAU DE LOMENIE. ® Agent (s): CABINET BEAU DE LOMENIE.

FR 3 060 791 - A1 (04) PROCEDE ET DISPOSITIF DE MISE A JOUR.FR 3 060 791 - A1 (04) METHOD AND DEVICE FOR UPDATING.

©) L'invention vise un procédé de mise à jour pour au moins un serveur d'un cluster d'une valeur courante d'une variable parmi une estimation d'une quantité déjà utilisée d'une ressource informatique sur le serveur ou une capacité maximale du serveur pour cette ressource, cette valeur courante étant prise en compte par un dispositif de gestion du cluster pour sélectionner sur réception d'une requête d'exécution d'une tâche informatique, un serveur cible pour exécuter cette tâche, la mise à jour étant réalisée à chaque détection (F10) d'un événement (EV) parmi un ensemble prédéfini d'événements et:The invention relates to a method for updating for at least one server of a cluster with a current value of a variable from an estimate of an already used quantity of an IT resource on the server or a capacity. maximum of the server for this resource, this current value being taken into account by a cluster management device to select on receipt of a request to execute an IT task, a target server to execute this task, the update being performed on each detection (F10) of an event (EV) from a predefined set of events and:

- si l'événement détecté est l'obtention d'une mesure d'une utilisation réelle courante de la ressource sur le serveur, la mise à jour (F30) utilise la mesure de l'utilisation réelle courante de la ressource sur le serveur;- if the detected event is a measurement of a current actual use of the resource on the server, the update (F30) uses the measurement of the current actual use of the resource on the server;

- si l'événement détecté est la réservation pour une tâche informatique d'une quantité de la ressource sur le serveur, la mise à jour (F40) utilise la quantité de ressource réservée; et- if the event detected is the reservation for a computer task of a quantity of the resource on the server, the update (F40) uses the quantity of resource reserved; and

- si l'événement détecté est la libération par une tâche informatique d'une quantité de la ressource sur le serveur, la mise à jour (F50) utilise la quantité de ressource libérée.- if the event detected is the release by a computer task of a quantity of the resource on the server, the update (F50) uses the quantity of resource released.

Figure FR3060791A1_D0001
Figure FR3060791A1_D0002

Arrière-plan de l'inventionInvention background

L'invention se rapporte au domaine général des systèmes informatiques, et plus particulièrement des systèmes informatiques s'appuyant sur des clusters de machines (désignées également plus couramment par « serveurs »).The invention relates to the general field of computer systems, and more particularly computer systems based on clusters of machines (also more commonly referred to as "servers").

De façon connue, un cluster (ou grappe) de serveurs regroupe plusieurs ordinateurs (ou nœuds) indépendants placés en réseau, de sorte à permettre une gestion globale et optimisée des ressources informatiques (ex. mémoire, CPU (Central Processing Unit), espace disque, accès réseau, etc.) offertes par ces ordinateurs. Un tel cluster de serveurs permet typiquement la distribution et le lancement en parallèle, sur plusieurs serveurs distincts du cluster, de différentes tâches informatiques associées à un même programme ou à une même application informatique (aussi désigné par « travail » ou encore « job » en anglais). Dans le contexte des traitements de données actuels, qui peuvent impliquer des volumes de données très importants (ex. traitements dits « Big Data »), il n'est pas rare de rencontrer des clusters de serveurs comprenant des milliers voire des dizaines de milliers de machines qu'il est nécessaire d'administrer de façon efficace.In a known manner, a cluster (or cluster) of servers groups together several independent computers (or nodes) placed in a network, so as to allow global and optimized management of computer resources (eg memory, CPU (Central Processing Unit), disk space. , network access, etc.) offered by these computers. Such a cluster of servers typically allows the distribution and launch in parallel, on several servers separate from the cluster, of different computer tasks associated with the same program or the same computer application (also designated by "work" or even "job" in English). In the context of current data processing, which can involve very large volumes of data (eg so-called “Big Data” processing), it is not uncommon to encounter clusters of servers comprising thousands or even tens of thousands of machines that need to be administered efficiently.

La distribution des tâches sur les différentes machines d'un cluster est généralement administrée par un système de gestion du cluster. Des systèmes de gestion de clusters connus sont par exemple le système Borg proposé par Google ou encore le système Hadoop Yarn proposé par The Apache Software Foundation. Ces systèmes sont capables d'administrer des clusters regroupant un nombre très important de machines, et de lancer en parallèle sur ces machines des centaines de milliers de tâches appartenant à plusieurs milliers d'applications logicielles différentes.The distribution of tasks on the different machines of a cluster is generally administered by a cluster management system. Known cluster management systems are for example the Borg system offered by Google or the Hadoop Yarn system offered by The Apache Software Foundation. These systems are capable of administering clusters grouping together a very large number of machines, and of launching in parallel on these machines hundreds of thousands of tasks belonging to several thousands of different software applications.

Dans ce contexte, les systèmes de gestion des clusters sont très souvent confrontés à des tâches qui doivent être lancées en rafales sur les clusters. Il leur est donc nécessaire pour traiter efficacement ces tâches de prendre une décision très rapidement quant à leur distribution sur les différentes machines des clusters. A cet effet, les systèmes de gestion de clusters de l'état de la technique allouent les ressources d'un cluster aux différentes tâches d'un programme (autrement dit, associent à ces différentes tâches différents serveurs du cluster capables de fournir les ressources nécessaires à leur exécution et réservent sur ces serveurs les ressources requises) sur la base des ressources réservées par l'utilisateur du cluster qui demande l'exécution de son programme.In this context, cluster management systems are very often confronted with tasks which must be launched in bursts on the clusters. It is therefore necessary for them to efficiently process these tasks to make a decision very quickly as to their distribution on the various machines of the clusters. To this end, the prior art cluster management systems allocate the resources of a cluster to the different tasks of a program (in other words, associate with these different tasks different servers of the cluster capable of supplying the necessary resources. on their execution and reserve the required resources on these servers) on the basis of the resources reserved by the user of the cluster who requests the execution of his program.

Ainsi à titre d'exemple, le système de gestion de cluster Hadoop Yarn définit, pour chaque serveur S d'un cluster Hadoop et chaque ressource informatique R offerte par le serveur, une capacité limite CL_R. On considère ici par souci de simplification que tous les serveurs S ont la même capacité limite pour la ressource R. La ressource informatique R peut être de nature diverse comme par exemple de la mémoire, du CPU (Central Processing Unit), de l'espace disque, un accès réseau, etc. Pour décider quelle ressource allouer sur quel serveur du cluster à une tâche j d'un programme (ou job), le système de gestion de cluster Hadoop Yarn détermine rapidement quels sont les serveurs capables d'exécuter cette tâche j, autrement dit, quels sont les serveurs qui disposent des ressources nécessaires à son exécution au vu des besoins en ressource R déclarés par l'utilisateur du programme. Il utilise à cet effet la capacité limite CL_R de chaque serveur, les besoins R_RJ de la tâche j en ressource R déclarés par l'utilisateur du programme, et la quantité totale T_R de ressource R déjà réservées sur chaque serveur. Un serveur est alors considéré comme apte à exécuter une tâche j seulement si pour ce serveur :Thus by way of example, the Hadoop Yarn cluster management system defines, for each server S of a Hadoop cluster and each IT resource R offered by the server, a limit capacity CL_R. For the sake of simplification, it is considered here that all the servers S have the same limit capacity for the resource R. The computer resource R can be of diverse nature such as for example memory, CPU (Central Processing Unit), space disk, network access, etc. To decide which resource to allocate on which server of the cluster to a task j of a program (or job), the Hadoop Yarn cluster management system quickly determines which servers are capable of executing this task j, in other words, which are servers which have the resources necessary for its execution in view of the R resource requirements declared by the program user. To this end, it uses the limit capacity CL_R of each server, the needs R_RJ of task j in resource R declared by the user of the program, and the total amount T_R of resource R already reserved on each server. A server is then considered capable of executing a task j only if for this server:

R_R_j+T_R < CL_R.R_R_j + T_R <CL_R.

Un serveur est alors sélectionné par le système de gestion Hadoop Yarn parmi les serveurs aptes à exécuter la tâche j, en fonction de critères prédéterminés, non détaillés ici.A server is then selected by the Hadoop Yarn management system from among the servers able to execute task j, according to predetermined criteria, not detailed here.

Ce mode de fonctionnement n'est pas sans contrainte pour les utilisateurs du cluster.This mode of operation is not without constraints for users of the cluster.

En effet, cela impose aux utilisateurs de spécifier les besoins en ressources des différentes tâches de leurs programmes de façon suffisamment précise pour ne pas bloquer inutilement des ressources au niveau du cluster ni, au contraire, risquer de voir leurs tâches ne pas être traitées ou être traitées de façon moins performante parce qu'elles requièrent plus de ressources que celles déclarées par l'utilisateur. Une telle estimation des besoins des tâches de leurs programmes est particulièrement difficile pour les utilisateurs, d'autant plus que ces besoins sont susceptibles d'évoluer dans le temps. Dans ce contexte, il est classique que les utilisateurs surestiment les besoins en ressources des tâches de leurs programmes, ce qui conduit à une sous-utilisation des ressources du cluster.Indeed, this requires users to specify the resource requirements of the different tasks of their programs in a sufficiently precise manner so as not to unnecessarily block resources at the cluster level nor, on the contrary, risk seeing their tasks not being processed or being processed less efficiently because they require more resources than those declared by the user. Such an estimation of the needs of the tasks of their programs is particularly difficult for users, especially since these needs are likely to evolve over time. In this context, it is classic for users to overestimate the resource requirements of the tasks of their programs, which leads to an under-utilization of the resources of the cluster.

Objet et résumé de l'inventionSubject and summary of the invention

L'invention permet notamment de pallier les inconvénients précités en proposant un procédé de mise à jour, pour au moins un serveur d'un cluster de serveurs d'au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée d'une ressource informatique sur le serveur ou une capacité maximale du serveur pour ladite ressource informatique, ladite au moins une valeur courante étant destinée à être prise en compte par un dispositif de gestion du cluster de serveurs pour sélectionner, sur réception d'une requête d'exécution d'une tâche informatique associée à une quantité prédéterminée de ladite ressource informatique requise initialement pour son exécution, un serveur dit cible du cluster pour exécuter cette tâche informatique, ledit procédé étant tel que ladite mise à jour est réalisée à chaque détection d'un événement parmi un ensemble prédéfini d'événements et :The invention makes it possible in particular to overcome the aforementioned drawbacks by proposing an updating method, for at least one server of a cluster of servers, of at least one current value of a variable denoted V chosen from among an estimate of a quantity already used of an IT resource on the server or a maximum capacity of the server for said IT resource, said at least one current value being intended to be taken into account by a server cluster management device to select, on receipt of a request for the execution of an IT task associated with a predetermined quantity of said IT resource initially required for its execution, a so-called target server of the cluster for executing this IT task, said method being such that said update is carried out at each detection of an event from a predefined set of events and:

— si l'événement détecté est une obtention d'une mesure d'une utilisation réelle courante de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;If the detected event is a measurement of a current actual use of the computer resource on the server, said updating of the current value of the variable V uses said measurement of the current actual use of the computer resource on the server;

— si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise ladite quantité de la ressource informatique réservée ; et — si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise ladite quantité de la ressource informatique libérée.- if the detected event is a reservation by the management device for a computer task of a quantity of the computer resource on the server, said update of the current value of the variable V uses said quantity of the reserved computer resource ; and - if the detected event is a release by a computer task of a quantity of the computer resource on the server, said updating of the current value of the variable V uses said quantity of the computer resource released.

L'invention vise aussi un procédé de gestion de tâches informatiques comprenant, sur réception par un dispositif de gestion d'un cluster de serveurs d'une requête d'exécution d'une tâche informatique, cette tâche informatique étant associée à une quantité prédéterminée d'une ressource informatique requise initialement pour son exécution :The invention also relates to a method for managing computer tasks comprising, on reception by a device for managing a cluster of servers of a request for execution of a computer task, this computer task being associated with a predetermined quantity of '' an IT resource initially required for its execution:

— une étape de détermination, par le dispositif de gestion du cluster, d'au moins un serveur du cluster apte à exécuter la tâche informatique, cette étape de détermination utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;A step of determining, by the cluster management device, at least one server of the cluster capable of executing the computer task, this step of determining using the predetermined quantity of the computer resource initially required for the execution of the task computing, a maximum capacity of the server for the computing resource and an estimate of a quantity already used of the computing resource on the server;

— une étape de sélection, par le dispositif de gestion du cluster, d'un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé.A step of selection, by the cluster management device, of a server to execute the IT task among said at least one server of the determined cluster.

Ce procédé est remarquable en ce que, pour au moins un serveur du cluster, au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique est mise à jour conformément à un procédé de mise à jour selon l'invention.This method is remarkable in that, for at least one server of the cluster, at least one current value of a variable denoted V chosen from the estimate of the quantity already used of the computer resource on the server and the maximum capacity of the server. for the IT resource is updated in accordance with an updating method according to the invention.

Aucune limitation n'est attachée à la nature des ressources informatiques des serveurs du cluster gérées par le dispositif de gestion du cluster et requises pour l'exécution des tâches informatiques dans le contexte de l'invention. Il peut s'agir de tout type de ressources (i.e. composants matériels ou logiciels) informatiques et/ou réseaux comme par exemple de la mémoire, du CPU, des accès réseaux, de l'espace disque, etc.No limitation is attached to the nature of the computer resources of the servers of the cluster managed by the cluster management device and required for the execution of the computer tasks in the context of the invention. It can be any type of computer and / or network resources (i.e. hardware or software components) such as memory, CPU, network access, disk space, etc.

En outre, l'invention est décrite en référence à une unique ressource ; toutefois le même procédé peut être utilisé pour prendre en compte plusieurs ressources, en l'appliquant à chaque ressource individuellement. C'est lors de la sélection à proprement parler du serveur sur lequel exécuter la tâche que la pluralité des ressources sera prise en compte en choisissant un serveur disposant de chacun des ressources nécessaires pour l'exécution de la tâche.In addition, the invention is described with reference to a single resource; however the same method can be used to take into account several resources, by applying it to each resource individually. It is during the actual selection of the server on which to execute the task that the plurality of resources will be taken into account by choosing a server having each of the resources necessary for the execution of the task.

L'invention propose donc une solution qui permet de tenir compte de l'utilisation courante et réelle (i.e. effective) des ressources au niveau des serveurs d'un cluster pour gérer l'attribution des ressources au sein de ce cluster.The invention therefore proposes a solution which makes it possible to take account of the current and real (i.e. effective) use of resources at the level of the servers of a cluster to manage the allocation of resources within this cluster.

Cette solution s'appuie avantageusement sur le mécanisme actuel d'allocation de ressources appliqué par les systèmes de gestion de clusters de l'état de la technique, ce qui permet d'assurer une réponse rapide du dispositif de gestion notamment lorsque des tâches en rafales doivent être lancées par celui-ci sur le cluster. En effet, sans connaissance a priori sur l'utilisation réelle des ressources par une tâche informatique, le dispositif de gestion réserve pour cette tâche au niveau du serveur sur lequel il la lance, une quantité de ressource égale au besoin déclaré par l'utilisateur à l'origine de la tâche informatique (quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique au sens de l'invention).This solution is advantageously based on the current resource allocation mechanism applied by the prior art cluster management systems, which makes it possible to ensure a rapid response from the management device, particularly when tasks are in bursts. must be launched by it on the cluster. Indeed, without a priori knowledge of the actual use of resources by an IT task, the management device reserves for this task at the level of the server on which it launches, a quantity of resource equal to the need declared by the user to the origin of the computer task (predetermined quantity of the computer resource initially required for the execution of the computer task within the meaning of the invention).

Le mécanisme de l'état de la technique est toutefois adapté de sorte à prendre en compte, après le lancement d'une tâche par le dispositif de gestion sur un serveur du cluster, l'utilisation réelle des ressources par cette tâche sur le serveur.The state-of-the-art mechanism is however adapted so as to take into account, after the launch of a task by the management device on a server of the cluster, the actual use of resources by this task on the server.

Ceci offre la possibilité au dispositif de gestion, si cette utilisation réelle est inférieure aux besoins de la tâche déclarés par son utilisateur, d'attribuer les ressources non utilisées par la tâche à d'autres tâches informatiques présentées ultérieurement au dispositif de gestion. Cette prise en compte est réalisée via la mise à jour, à partir de mesures effectuées directement sur les serveurs, des quantités utilisées par le dispositif de gestion pour décider de l'attribution des ressources, à savoir de l'estimation de la quantité déjà utilisée de la ressource informatique requise par ia tâche sur le serveur et/ou de la capacité maximale du serveur pour cette ressource. Dans un mode particulier de réalisation, l'obtention des mesures d'utilisation courante de la ressource peut être périodique.This offers the possibility to the management device, if this actual use is less than the needs of the task declared by its user, to allocate the resources not used by the task to other computer tasks presented subsequently to the management device. This is taken into account by updating, from measurements carried out directly on the servers, the quantities used by the management device to decide on the allocation of resources, namely the estimation of the quantity already used the IT resource required by the task on the server and / or the maximum server capacity for this resource. In a particular embodiment, obtaining the measurements of current use of the resource can be periodic.

En outre, conformément à l'invention, d'autres événements affectant les ressources disponibles sur le serveur déclenchent une mise à jour de la valeur courante de la variable V considérée. Ces événements sont la réservation sur le serveur, par le dispositif de gestion, d'une quantité de la ressource considérée pour d'autres tâches, ainsi que la libération d'une quantité de cette ressource sur le serveur par des tâches qui ont fini de s'exécuter sur celui-ci.In addition, in accordance with the invention, other events affecting the resources available on the server trigger an update of the current value of the variable V considered. These events are the reservation on the server, by the management device, of a quantity of the resource considered for other tasks, as well as the release of a quantity of this resource on the server by tasks which have finished run on it.

Ceci permet de prendre en compte les tâches informatiques qui sont positionnées de façon asynchrone sur le serveur par le dispositif de gestion entre deux remontées de mesures d'utilisation réelle de la ressource sur le serveur (ces remontées n'étant généralement pas continues mais périodiques ou à des instants prédéterminés), ainsi que celles qui se terminent sur le serveur. La prise en compte des tâches achevées a un intérêt privilégié lorsqu'une tâche informatique lancée sur un serveur se termine très rapidement, typiquement en un temps inférieur à la période de remontée des mesures d'utilisation réelle faites sur le serveur le cas échéant. Cela permet d'éliminer le reliquat de ressource réservé pour cette tâche sur le serveur et qui n'est plus utilisé par ce serveur sans pour autant être répercuté dans la mesure.This makes it possible to take into account the computer tasks which are positioned asynchronously on the server by the management device between two feedbacks of measurements of real use of the resource on the server (these feedbacks are generally not continuous but periodic or at predetermined times), as well as those that end on the server. Taking into account completed tasks has a privileged interest when an IT task launched on a server ends very quickly, typically in a time less than the reporting period of the actual usage measurements made on the server if necessary. This eliminates the remaining resource reserved for this task on the server and which is no longer used by this server without being reflected in the measurement.

L'invention rend donc possible la répercussion en temps réel des différentes variations susceptibles d'affecter la quantité de ressource disponible sur le serveur dans la quantité prise en compte par le dispositif de gestion pour répondre à une requête d'exécution d'une tâche informatique. Le dispositif de gestion du cluster dispose en effet d'une représentation plus précise de la quantité de ressource réellement utilisée sur le serveur à chaque instant, ou tout du moins au moment où il reçoit une requête d'exécution d'une tâche.The invention therefore makes it possible to pass on in real time the various variations likely to affect the amount of resource available on the server in the amount taken into account by the management device to respond to a request for the execution of an IT task. . The cluster management device has a more precise representation of the amount of resource actually used on the server at all times, or at least when it receives a request to execute a task.

Le dispositif de gestion du cluster peut ainsi simultanément, grâce à l'invention, apprendre comment les ressources sont effectivement utilisées sur les serveurs tout en étant capable de prendre des décisions rapidement pour allouer des ressources aux tâches informatiques qui lui sont présentées. Cette prise de décision rapide est réalisée instantanément sur la base des ressources qui sont réservées par les utilisateurs pour ces tâches sans attendre de savoir comment ces tâches vont se comporter effectivement. L'invention résout ainsi le double problème d'adresser des rafales de tâches sans avoir de connaissance de leur utilisation future des ressources du cluster tout en permettant d'allouer à d'autres tâches des ressources non utilisées du cluster.The cluster management device can thus simultaneously, thanks to the invention, learn how the resources are actually used on the servers while being able to make decisions quickly to allocate resources to the computer tasks presented to it. This rapid decision-making is carried out instantly on the basis of the resources which are reserved by the users for these tasks without waiting to know how these tasks will actually behave. The invention thus solves the double problem of addressing bursts of tasks without having knowledge of their future use of the resources of the cluster while allowing to allocate to other tasks unused resources of the cluster.

L'invention propose donc une solution compatible avec des clusters de grande dimension et des applications logicielles comprenant un nombre volumineux de tâches informatiques à exécuter sur ces clusters, et qui permet de corriger progressivement une estimation erronée ou peu précise des besoins en ressources de ces tâches par leurs utilisateurs. Les contraintes imposées aux utilisateurs des clusters peuvent être ainsi relâchées.The invention therefore provides a solution compatible with large clusters and software applications comprising a large number of computer tasks to be executed on these clusters, and which makes it possible to gradually correct an erroneous or imprecise estimate of the resource needs of these tasks. by their users. The constraints imposed on cluster users can thus be relaxed.

Par ailleurs, les ressources des clusters sont mieux utilisées tout en tentant d'assurer la bonne exécution des tâches sur ces clusters : on limite en effet, grâce à l'invention, les temps d'attente prolongés pour l'exécution d'une tâche informatique ou l'éviction d'une tâche informatique notamment en cas de ressources insuffisantes attribuées à cette tâche en tenant compte de l'utilisation réelle des ressources sur les serveurs du cluster. Il convient de noter qu'un temps d'attente prolongé ou l'éviction d'une tâche est toujours possible, toutefois il ou elle est contrebalancé(e) par le fait qu'un plus grand nombre de tâches peut être lancé simultanément sur le cluster du fait d'une meilleure gestion des ressources de ce dernier. Les performances du cluster sont ainsi globalement améliorées.Furthermore, the resources of the clusters are better used while trying to ensure the correct execution of the tasks on these clusters: in fact, thanks to the invention, the prolonged waiting times for the execution of a task are limited IT or crowding out an IT task, in particular in the event of insufficient resources allocated to this task, taking into account the actual use of resources on the cluster servers. It should be noted that a prolonged waiting time or crowding out a task is always possible, however he or she is offset by the fact that a greater number of tasks can be launched simultaneously on the cluster due to better management of the latter's resources. The performance of the cluster is thus improved overall.

En outre, l'invention permet de s'adapter à une éventuelle variation dans le temps des besoins en ressources des tâches lancées sur les serveurs des clusters.In addition, the invention makes it possible to adapt to a possible variation over time of the resource requirements of the tasks launched on the servers of the clusters.

On note que la mise à jour de la capacité maximale du serveur pour la ressource plutôt que de l'estimation de la quantité déjà utilisée de la ressource informatique requise par la tâche sur le serveur permet avantageusement d'utiliser comme dispositif de gestion du cluster l'un des systèmes de gestion de l'état de la technique. En effet, la capacité maximale de chaque serveur est une information qui est remontée aujourd'hui périodiquement par ce serveur au système de gestion du cluster dans l'état de la technique. En mettant à jour cette capacité au niveau du serveur pour qu'elle reflète l'utilisation réelle de la ressource, on s'assure que le système de gestion du cluster prend en compte cette utilisation réelle pour l'attribution des ressources du cluster de façon totalement transparente pour lui. Autrement dit, ceci permet d'envisager une implémentation dans laquelle le fonctionnement du système de gestion centralisé du cluster reste le même (et donc dans laquelle il est possible d'utiliser des systèmes de gestion de l'état de la technique, tels que les systèmes Borg ou Hadoop Yarn mentionnés précédemment), et où seuls les serveurs du cluster doivent être adaptés pour prendre en compte dans la capacité maximale qu'ils remontent au système de gestion du cluster, l'utilisation réelle de leurs ressources. Une telle implémentation est particulièrement intéressante car elle permet une installation progressive de l'invention sur l'ensemble des serveurs du cluster tout en gardant inchangé le système de gestion du cluster. Or la mise à jour des serveurs s'avère en pratique une tâche bien plus simple qu'une mise à jour du système de gestion du cluster qui en soi est souvent un module déjà très complexe.It should be noted that updating the maximum capacity of the server for the resource rather than estimating the quantity already used of the computer resource required by the task on the server advantageously makes it possible to use as a device for managing the cluster l 'one of the state of the art management systems. Indeed, the maximum capacity of each server is information which is transmitted periodically today by this server to the cluster management system in the state of the art. By updating this capacity at the server level to reflect the actual use of the resource, we ensure that the cluster management system takes into account this real use for the allocation of cluster resources in a way completely transparent to him. In other words, this makes it possible to envisage an implementation in which the functioning of the centralized management system of the cluster remains the same (and therefore in which it is possible to use state of the art management systems, such as the Borg or Hadoop Yarn systems mentioned above), and where only the servers in the cluster must be adapted to take into account in the maximum capacity that they go back to the cluster management system, the actual use of their resources. Such an implementation is particularly interesting because it allows a progressive installation of the invention on all of the servers of the cluster while keeping the cluster management system unchanged. Updating servers is in practice a much simpler task than updating the cluster management system, which in itself is often an already very complex module.

En outre, dans cette variante, l'invention peut s'appuyer sur la signalisation (i.e. protocole de communication) déjà définie entre les serveurs du cluster et le système de gestion du cluster.In addition, in this variant, the invention can rely on the signaling (i.e. communication protocol) already defined between the servers of the cluster and the management system of the cluster.

Dans un mode particulier de réalisation, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, la mise à jour de la valeur courante de la variable V utilise en outre au moins une valeur de la variable V notée Vpast mise à jour à un instant précédent.In a particular embodiment, if the event detected is the obtaining of the measurement of the current actual use of the computer resource on the server, the updating of the current value of the variable V also uses at least a value of the variable V denoted Vpast updated at a previous instant.

Dans ce mode de réalisation, lors de la mise à jour la mesure de l'utilisation réelle courante de la ressource informatique peut être notamment pondérée par un facteur réel a compris entre 0 et 1, et ladite au moins une valeur Vpast être pondérée par un facteur égal à (Ια).In this embodiment, during the update, the measurement of the current actual use of the computer resource can in particular be weighted by a real factor a between 0 and 1, and said at least one value Vpast be weighted by a factor equal to (Ια).

Ce mode de réalisation, qui met en œuvre une moyenne mobile de type exponentielle, permet de lisser dans le temps la prise en compte de l'utilisation réelle au niveau du serveur de la ressource par rapport à la quantité de ressource initialement réservée. Ce lissage donne la possibilité d'une prise en compte progressive de l'utilisation réelle des ressources au niveau de chaque serveur tout en évitant des fluctuations transitoires brusques qui pourraient entraîner une allocation moins efficace des ressources par le dispositif de gestion du cluster. En effet, plus le facteur a est choisi proche de 0, plus on tient compte longtemps de la quantité de ressources réservées et on retarde l'utilisation des ressources disponibles dans le cluster par le dispositif de gestion. Au contraire, en choisissant un facteur a proche de 1, le dispositif de gestion peut utiliser les ressources disponibles plus tôt dans le temps. On note que le facteur a peut varier dans le temps.This embodiment, which implements a moving average of exponential type, makes it possible to smooth over time the taking into account of the real use at the server level of the resource relative to the quantity of resource initially reserved. This smoothing gives the possibility of a progressive taking into account of the real use of resources at the level of each server while avoiding sudden transient fluctuations which could lead to a less efficient allocation of resources by the cluster management device. In fact, the closer the factor a is chosen to 0, the longer one takes into account the quantity of resources reserved and the use of the resources available in the cluster by the management device is delayed. On the contrary, by choosing a factor a close to 1, the management system can use the resources available earlier in the time. It is noted that the factor a can vary over time.

Bien entendu, d'autres manières de prendre en compte la mesure de l'utilisation réelle de la ressource informatique et le cas échéant ladite au moins une valeur mise à jour à un instant précédent peuvent être envisagées. On peut s'appuyer par exemple sur le principe d'une moyenne mobile arithmétique ou pondérée de mesures obtenues à différents instants et évaluée sur une fenêtre glissante de dimension prédéterminée dont l'extrémité est positionnée sur l'instant courant, etc. Dans le cas d'une moyenne pondérée, on peut envisager d'appliquer des poids décroissants au fur et à mesure que l'ancienneté des mesures augmente.Of course, other ways of taking into account the measurement of the actual use of the computer resource and, where appropriate, said at least one value updated at a previous instant can be envisaged. We can rely for example on the principle of an arithmetic or weighted moving average of measurements obtained at different times and evaluated on a sliding window of predetermined size whose end is positioned at the current instant, etc. In the case of a weighted average, we can consider applying decreasing weights as the age of the measurements increases.

A titre d'exemple, dans une variante de réalisation de l'invention dans laquelle la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation :By way of example, in an alternative embodiment of the invention in which the updated variable V is the estimate EU_R of the quantity already used of the computer resource on the server, if the event detected is the obtaining from the measurement of the current actual use of the computer resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation:

EU_R(n) = max((l — a)EU_R(n - 1) + aU_R(n),U_R(n)) où n désigne un entier supérieur à 1, EU_R(n - 1) est la valeur de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur mise à jour à un instant précédent, et U_R(ri) désigne la mesure obtenue de l'utilisation réelle courante de la ressource informatique sur le serveur.EU_R (n) = max ((l - a) EU_R (n - 1) + aU_R (n), U_R (n)) where n denotes an integer greater than 1, EU_R (n - 1) is the value of the estimation of the quantity already used of the computer resource on the server updated at a previous instant, and U_R (ri) designates the measurement obtained from the current actual use of the computer resource on the server.

Cette variante a une application privilégiée lorsque la ressource informatique en question est de la mémoire. En effet, les contraintes en terme de ressource mémoire sont des contraintes relativement fortes dans le sens où une tâche peut être évincée d'une machine sur laquelle elle est exécutée si elle requiert à un instant donné plus de mémoire que la machine en dispose à cet instant. En forçant la mise à jour de la valeur EU_R(n) à une valeur supérieure ou égale à la ressource mémoire U_R(n) effectivement utilisée sur le serveur lorsque la valeur de (1 - a)EU_R (n — 1) + aU_R(n) ne reflète de façon insuffisante l'occupation réelle de la mémoire sur le serveur, on s'assure que le dispositif de gestion n'alloue pas indûment à de nouvelles tâches de la mémoire sur le serveur qui pourrait manquer ensuite aux tâches informatiques s'exécutant déjà sur le serveur et s'avérer préjudiciable pour le traitement de celles-ci.This variant has a privileged application when the IT resource in question is memory. Indeed, the constraints in terms of memory resource are relatively strong constraints in the sense that a task can be ousted from a machine on which it is executed if it requires at a given instant more memory than the machine has available for this purpose. instant. By forcing the update of the value EU_R (n) to a value greater than or equal to the memory resource U_R (n) actually used on the server when the value of (1 - a) EU_R (n - 1) + aU_R ( n) does not sufficiently reflect the actual occupation of the memory on the server, it is ensured that the management device does not unduly allocate new tasks to the memory on the server which could then be missed by the computer tasks s 'already running on the server and prove to be harmful for the processing of these.

Dans un autre mode de réalisation de l'invention, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, cette mesure correspond à une utilisation de la ressource informatique sur le serveur par une ou plusieurs tâches informatiques s'exécutant sur le serveur et toutes gérées par le dispositif de gestion du cluster.In another embodiment of the invention, if the detected event is the obtaining of the measurement of the current actual use of the computer resource on the server, this measurement corresponds to a use of the computer resource on the server by one or more IT tasks running on the server and all managed by the cluster management device.

Sur un serveur peuvent en effet s'exécuter en plus des tâches informatiques lancées sur ce serveur par le dispositif de gestion du cluster, d'autres processus tels que typiquement des processus internes au serveur lancés par exemple par son système d'exploitation. Dans ce mode de réalisation, on s'assure que seules les tâches gérées et positionnées à proprement parler par le dispositif de gestion du cluster sont prises en compte par celui-ci lors de l'allocation des ressources aux tâches qui lui sont présentées. Autrement dit, ce mode de réalisation permet une intervention en force du dispositif de gestion par rapport aux droits (i.e. quantités de ressource) qui lui sont réservés sur le serveur.On a server can indeed be executed in addition to the computer tasks launched on this server by the cluster management device, other processes such as typically processes internal to the server launched for example by its operating system. In this embodiment, it is ensured that only the tasks managed and positioned properly speaking by the cluster management device are taken into account by the latter when allocating resources to the tasks presented to it. In other words, this embodiment allows a forceful intervention of the management device in relation to the rights (i.e. quantities of resource) reserved for it on the server.

Une façon de mettre en œuvre ce mode de réalisation est par exemple la suivante :One way of implementing this embodiment is for example as follows:

— la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur comprend une pluralité de valeurs notées U_R(n,j), j=l,...J, associées respectivement à une pluralité de tâches informatiques Tj, j=l,...J, positionnées par le dispositif de gestion du cluster sur le serveur, J et n désignant des entiers supérieurs ou égaux à 1, chaque valeur U_R(n,f) correspondant à une mesure de l'utilisation réelle de la ressource informatique sur le serveur par la tâche Tj ;The measurement of the current actual use of the computer resource on the server comprises a plurality of values denoted U_R (n, j), j = l, ... J, associated respectively with a plurality of computer tasks Tj, j = l, ... J, positioned by the cluster management device on the server, J and n designating integers greater than or equal to 1, each value U_R (n, f) corresponding to a measure of the actual use of the IT resource on the server by the task Tj;

— ladite mise à jour (F30) comprend :- said update (F30) includes:

o une première étape d'évaluation pour chaque tâche Tj, d'une valeur courante EU_R(n,j) d'une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur par la tâche informatique Tj selon l'équation :a first evaluation step for each task Tj, of a current value EU_R (n, j) of an estimate of an amount already used of the computer resource on the server by the computer task Tj according to the equation:

EU_R(n,j) = max((l — a)EU_R (n — l,y) + aU_R(n,j), U_R(n,j)) ou selon l'équation :EU_R (n, j) = max ((l - a) EU_R (n - l, y) + aU_R (n, j), U_R (n, j)) or according to the equation:

EU_R(n,f) = (1 - a)EU_R (n - IJ) + aU_R(n,f) ouEU_R (n, f) = (1 - a) EU_R (n - IJ) + aU_R (n, f) or

EU_R (n - i,;') désigne une valeur évaluée à un instant précédent de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur par cette tâche informatique Tj ; et a est un facteur réel compris entre 0 et 1 ;EU_R (n - i ,; ') designates a value evaluated at a previous instant of the estimation of the quantity already used of the computer resource on the server by this computer task Tj; and a is a real factor between 0 and 1;

une deuxième étape d'évaluation de la valeur courante notée EU_R(n) de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur selon l'équation :a second step of evaluation of the current value noted EU_R (n) of the estimation of the quantity already used of the computer resource on the server according to the equation:

jj

EU_R(n) = ^EU_R(n,j') i=i ou selon l'équation :EU_R (n) = ^ EU_R (n, j ') i = i or according to the equation:

EU_R(ri) = maxEU_R (ri) = max

Figure FR3060791A1_D0003

où J désigne le nombre de tâches informatiques positionnées sur le serveur par le dispositif de gestion du cluster au moment de la deuxième étape d'évaluation.where J denotes the number of IT tasks positioned on the server by the cluster management device at the time of the second evaluation step.

Dans cette variante, on a donc accès à des informations plus précises sur l'utilisation réelle du serveur, puisque ce sont des mesures de l'utilisation réelle du serveur pour chaque tâche informatique positionnée sur le serveur (c'est-à-dire s'exécutant effectivement sur celui-ci ou pour laquelle une quantité de la ressource a été réservée par le dispositif de gestion sur le serveur) qui sont disponibles et utilisées lors de la mise à jour de la valeur EU_R(n). De cette sorte, lorsqu'une tâche disparaît et libère de la ressource sur le serveur, cela est pris en compte instantanément dans sa contribution à la quantité EU_R(n) (la somme réalisée pour évaluer EU_R(n) ne tient en effet compte que des tâches positionnées sur le serveur à cet instant, c'est-à-dire au moment de l'évaluation de EU_R(n)).In this variant, we therefore have access to more precise information on the real use of the server, since these are measures of the real use of the server for each computer task positioned on the server (i.e. 'actually running on it or for which a quantity of the resource has been reserved by the management device on the server) which are available and used when updating the value EU_R (n). In this way, when a task disappears and frees up the resource on the server, this is taken into account instantly in its contribution to the quantity EU_R (n) (the sum made to evaluate EU_R (n) only takes account of tasks positioned on the server at this time, that is to say at the time of the evaluation of EU_R (n)).

On note toutefois que cette variante requiert des calculs supplémentaires pour mettre à jour la quantité EU_R(n), liés à la gestion individuelle des tâches Tj, j=l,...,J. Ces calculs peuvent être mis en œuvre préférentiellement localement au niveau de chaque serveur puis être remontés au dispositif de gestion du cluster par les nœuds.We note however that this variant requires additional calculations to update the quantity EU_R (n), linked to the individual management of tasks Tj, j = l, ..., J. These calculations can preferably be implemented locally at the level of each server and then be returned to the cluster management device by the nodes.

Dans un autre mode de réalisation de l'invention dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation :In another embodiment of the invention in which the updated variable V is the estimate EU_R of the quantity already used of the computer resource on the server, and if the event detected is the obtaining of the measurement of the current actual use of the computer resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation:

EU_R(ri) = U_R(ri) + DR_R(ri) où U_R(n) désigne une mesure courante de l'utilisation réelle de la ressource informatique sur le serveur, et DR_R(n) désigne une valeur courante d'une quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur.EU_R (ri) = U_R (ri) + DR_R (ri) where U_R (n) denotes a current measure of the actual use of the computer resource on the server, and DR_R (n) denotes a current value of a quantity of the IT resource reserved for at least one IT task by the management device on the server.

En outre, dans ce mode de réalisation, le procédé peut comprendre en outre :In addition, in this embodiment, the method can further comprise:

— une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur est obtenue selon l'équation :A step for updating the current value DR_R (n) of the quantity of the IT resource reserved for at least one IT task by the management device on the server is obtained according to the equation:

DR_R(n) = (1 - P)DR_R(n - 1) où β désigne un facteur réel compris entre 0 et 1 et DR_R(n - 1) désigne une quantité de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent ;DR_R (n) = (1 - P) DR_R (n - 1) where β denotes a real factor between 0 and 1 and DR_R (n - 1) denotes a quantity of the IT resource reserved by the management device on the server obtained at a previous instant;

— une étape de détection de la mise à jour de la valeur courante DR_R(n) ; et — une étape de mise à jour de la valeur courante de la variable EU_R selon l'équation :- a step of detecting the update of the current value DR_R (n); and - a step of updating the current value of the variable EU_R according to the equation:

EU_R(n) = U_R(n) + DR_R(n).EU_R (n) = U_R (n) + DR_R (n).

Dans ce mode de réalisation, la pondération (par un facteur (l - /?) ici) est appliquée non plus sur la mesure de l'utilisation réelle des ressources sur le serveur mais sur les ressources qui sont réservées par le dispositif de gestion du cluster sur ce serveur. Autrement dit, on effectue un lissage des quantités de ressource réservées et non plus de l'utilisation réelle de la ressource. Ce mode de réalisation assure que le dispositif de gestion du cluster prend en compte, lors de l'allocation de ressource à une nouvelle tâche, une quantité de cette ressource utilisée sur le serveur toujours au moins égale à son utilisation réelle (autrement dit, on s'affranchit dans ce mode de réalisation de recourir à une fonction « max » comme dans les exemples précédemment décrits).In this embodiment, the weighting (by a factor (l - /?) Here) is applied no longer on the measurement of the actual use of the resources on the server but on the resources which are reserved by the device for managing the cluster on this server. In other words, the reserved resource quantities are smoothed and no longer the actual use of the resource. This embodiment ensures that the cluster management device takes into account, when allocating resources to a new task, a quantity of this resource used on the server always at least equal to its actual use (in other words, we in this embodiment eliminates the need to use a “max” function as in the examples described above).

Dans un autre mode de réalisation, le procédé de mise à jour comprend en outre :In another embodiment, the updating method further comprises:

— si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité R_R_Tnew de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Tnew et une quantité DR_R(n - 1) de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent, — si l'événement détecté est une libération par une tâche informatique d'une quantité R_R_Told de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Told et la quantité DR_R(n - 1) ;- if the detected event is a reservation by the management device for a computer task of a quantity R_R_Tnew of the computer resource on the server, a step of updating the current value DR_R (n) of the quantity of the IT resource reserved for at least one IT task by the management device on the server using said quantity R_R_Tnew and a quantity DR_R (n - 1) of the IT resource reserved by the management device on the server obtained at a previous instant, - if the detected event is a release by an IT task of an amount R_R_Told of the IT resource on the server, a step of updating the current value DR_R (n) of the amount of the IT resource reserved for at least a computer task by the management device on the server using said quantity R_R_Told and quantity DR_R (n - 1);

et dans lequel ladite mise à jour de la valeur courante de la variable EU_R utilise ladite quantité de la ressource informatique réservée selon l'équation :and in which said updating of the current value of the variable EU_R uses said quantity of the computer resource reserved according to the equation:

EU_R(n) = U_R(ri) + DR_R(n).EU_R (n) = U_R (ri) + DR_R (n).

Le choix de l'un ou l'autre des modes de réalisation précédemment décrits peut dépendre de différents paramètres, comme notamment du contexte dans lequel est mise en œuvre l'invention ou encore d'un compromis entre complexité d'implémentation et performance de l'allocation de ressources réalisée par le dispositif de gestion.The choice of one or other of the embodiments described above may depend on different parameters, such as in particular the context in which the invention is implemented or even a compromise between complexity of implementation and performance of the allocation of resources by the management system.

Dans un mode particulier de réalisation, le procédé de mise à jour est mis en œuvre par le dispositif de gestion du cluster.In a particular embodiment, the updating method is implemented by the cluster management device.

Corrélativement, dans ce mode de réalisation, l'invention vise également un dispositif de gestion d'un cluster de serveurs comprenant :Correlatively, in this embodiment, the invention also relates to a device for managing a cluster of servers comprising:

— un module de réception ;- a reception module;

— un module de détermination, activé sur réception par le module de réception d'une requête d'exécution d'une tâche informatique, ladite tâche informatique étant associée à une quantité prédéterminée d'une ressource informatique requise initialement pour son exécution, le module de détermination étant configuré pour déterminer au moins un serveur du cluster apte à exécuter la tâche informatique en utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;A determination module, activated on reception by the reception module of a request to execute an IT task, said IT task being associated with a predetermined quantity of an IT resource initially required for its execution, the determination being configured to determine at least one server of the cluster able to execute the computer task using the predetermined quantity of the computer resource initially required for the execution of the computer task, a maximum capacity of the server for the computer resource and an estimate d 'an already used amount of IT resources on the server;

— un module de sélection configuré pour sélectionner un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé par le module de détermination ;- a selection module configured to select a server to execute the computer task among said at least one server of the cluster determined by the determination module;

Le dispositif de gestion selon l'invention est remarquable en ce qu'il comprend en outre :The management device according to the invention is remarkable in that it further comprises:

— un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et — un module de mise à jour activé pour au moins un serveur du cluster, et configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection d'un événement parmi l'ensemble prédéfini d'événements par le module de détection, et configuré pour :- a detection module configured to detect a predefined set of events; and - an update module activated for at least one server of the cluster, and configured to update at least one current value of a variable denoted V chosen from the estimate of the quantity already used of the computer resource on the server and the maximum capacity of the server for the IT resource, said update module being activated on each detection of an event from the predefined set of events by the detection module, and configured for:

o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;o if the detected event is a measurement (U_R (n)) of a current actual use of the computer resource on the server, update the current value of the variable V using said measurement of the current actual use of the computer resource on the server;

o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variableo if the detected event is a reservation by the management device for a computer task of a quantity of the computer resource on the server, update the current value of the variable V using said quantity of the reserved computer resource; and o if the detected event is a release by a computer task of a quantity of the computer resource on the server, update the current value of the variable

V en utilisant ladite quantité de la ressource informatique libérée.V using said quantity of the computer resource released.

Dans un autre mode de réalisation, le procédé de mise à jour est mise en œuvre par le serveur. Le procédé de gestion comprend alors en outre une étape de transmission de ladite au moins une valeur mise à jour par le serveur au dispositif de gestion du cluster.In another embodiment, the updating method is implemented by the server. The management method then further comprises a step of transmitting said at least one value updated by the server to the cluster management device.

Corrélativement, dans ce mode de réalisation, l'invention vise aussi un serveur appartenant à un cluster de serveurs géré par un dispositif de gestion, ledit serveur étant apte à exécuter au moins une tâche informatique gérée par ledit dispositif de gestion, ladite au moins une tâche informatique utilisant lors de son exécution au moins une ressource informatique du serveur, ce serveur comprenant des modules activés pour au moins un intervalle de temps et comprenant :Correlatively, in this embodiment, the invention also relates to a server belonging to a cluster of servers managed by a management device, said server being able to execute at least one computer task managed by said management device, said at least one computer task using at least one computer resource from the server during its execution, this server comprising modules activated for at least one time interval and comprising:

— un module de mesure configuré pour mesurer une utilisation réelle de la ressource informatique sur le serveur ;- a measurement module configured to measure an actual use of the IT resource on the server;

— un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et — un module de mise à jour configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur et une capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection par le module de détection d'un événement parmi l'ensemble prédéfini d'événements et configuré pour :- a detection module configured to detect a predefined set of events; and an update module configured to update at least one current value of a variable denoted V chosen from an estimate of an amount already used of the computer resource on the server and a maximum capacity of the server for the resource. IT, said update module being activated on each detection by the event detection module from among the predefined set of events and configured for:

o si l'événement détecté est une obtention d'une mesure d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;o if the detected event is a measurement of a current actual use of the computer resource on the server, update the current value of the variable V using said measure of the current actual use of the resource computer on the server;

o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variableo if the detected event is a reservation by the management device for a computer task of a quantity of the computer resource on the server, update the current value of the variable V using said quantity of the reserved computer resource; and o if the detected event is a release by a computer task of a quantity of the computer resource on the server, update the current value of the variable

V en utilisant ladite quantité de la ressource informatique libérée ; et — un module de transmission, configuré pour transmettre au dispositif de gestion ladite valeur courante de la variable V mise à jour.V using said quantity of the computer resource released; and a transmission module, configured to transmit to the management device said current value of the updated variable V.

Comme mentionné précédemment, ce mode de réalisation peut permettre de faciliter l'implémentation progressive de l'invention en limitant les développements nécessaires à sa mise en œuvre réalisés sur le dispositif de gestion du cluster.As mentioned previously, this embodiment can make it possible to facilitate the progressive implementation of the invention by limiting the developments necessary for its implementation carried out on the cluster management device.

Dans un mode particulier de réalisation, les différentes étapes du procédé de mise à jour et/ou les différentes étapes du procédé de gestion sont déterminées par des instructions de programmes d'ordinateurs.In a particular embodiment, the different steps of the updating method and / or the different steps of the management method are determined by instructions of computer programs.

En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un dispositif de gestion, dans un serveur ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d’un procédé de mise à jour tel que décrit cidessus.Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented in a management device, in a server or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of an updating process as described above.

L'invention vise également un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un dispositif de gestion ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de gestion tel que décrit ci-dessus.The invention also relates to a computer program on an information medium, this program being capable of being implemented in a management device or more generally in a computer, this program comprising instructions adapted to the implementation steps of a management method as described above.

Chacun de ces programmes peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.Each of these programs can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any what other desirable form.

L'invention vise aussi un support d'informations ou d'enregistrement lisible par un ordinateur, et comportant des instructions d’un programme d'ordinateur tel que mentionné cidessus.The invention also relates to an information or recording medium readable by a computer, and comprising instructions of a computer program as mentioned above.

Le support d'informations ou d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronîque, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.The information or recording medium can be any entity or device capable of storing the program. For example, the support may include a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a floppy disk or a disc. hard.

D’autre part, le support d'informations ou d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.On the other hand, the information or recording medium can be a transmissible medium such as an electrical or optical signal, which can be routed via an electrical or optical cable, by radio or by other means. The program according to the invention can in particular be downloaded from a network of the Internet type.

Alternativement, le support d'informations ou d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.Alternatively, the information or recording medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the process in question.

L'invention vise également un système informatique comprenant :The invention also relates to a computer system comprising:

— un cluster de serveurs comprenant une pluralité de serveurs, chaque serveur comprenant au moins une ressource informatique permettant l'exécution de tâches informatiques ;A cluster of servers comprising a plurality of servers, each server comprising at least one IT resource allowing the execution of IT tasks;

— un dispositif de gestion du cluster de serveurs ;- a server cluster management system;

dans lequel le dispositif de gestion du cluster est conforme à l'invention et/ou au moins un serveur du cluster est conforme à l'invention.wherein the cluster management device is in accordance with the invention and / or at least one server in the cluster is in accordance with the invention.

On peut également envisager, dans d’autres modes de réalisation, que le procédé de mise à jour, le procédé de gestion, le dispositif de gestion, le serveur et le système informatique selon l'invention présentent en combinaison tout ou partie des caractéristiques précitées.It is also conceivable, in other embodiments, that the updating method, the management method, the management device, the server and the computer system according to the invention have all or some of the above characteristics in combination. .

Brève description des dessinsBrief description of the drawings

D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :Other characteristics and advantages of the present invention will emerge from the description given below, with reference to the appended drawings which illustrate an embodiment thereof devoid of any limiting character. In the figures:

— la figure 1 représente, de façon schématique, un système informatique conforme à l'invention, dans un mode particulier de réalisation, le système informatique comprenant un cluster de serveurs et un dispositif de gestion du cluster ;- Figure 1 shows, schematically, a computer system according to the invention, in a particular embodiment, the computer system comprising a cluster of servers and a cluster management device;

— la figure 2 représente l'architecture matérielle du dispositif de gestion du cluster de la figure 1 ;- Figure 2 shows the hardware architecture of the cluster management device of Figure 1;

— la figure 3A représente, sous forme d'ordinogramme, les différentes étapes d'un procédé de gestion tel qu'il est mis en œuvre dans un mode particulier de réalisation par le dispositif de gestion de la figure 1 ;- Figure 3A shows, in the form of a flowchart, the different steps of a management method as it is implemented in a particular embodiment by the management device of Figure 1;

— la figure 3B représente, sous forme d'ordinogramme les différentes étapes d'un procédé de mise à jour tel qu'il est mis en œuvre dans un mode particulier de réalisation par le dispositif de gestion de la figure 1 ; et — la figure 3C représente, sous forme d'ordinogramme les différentes étapes d'un procédé de mise à jour dans une variante de réalisation.FIG. 3B represents, in the form of a flowchart, the different steps of an updating method as it is implemented in a particular embodiment by the management device of FIG. 1; and FIG. 3C represents, in the form of a flowchart, the different steps of an updating method in an alternative embodiment.

Description détaillée de l'inventionDetailed description of the invention

La figure 1 représente, dans son environnement, un système informatique 1, conforme à l'invention, dans un premier mode de réalisation.FIG. 1 represents, in its environment, a computer system 1, in accordance with the invention, in a first embodiment.

Conformément à l'invention, le système informatique 1 comprend — un cluster 2 de serveurs comprenant une pluralité de serveurs SI, S2,..., SK, K désignant un entier supérieur à 1, reliés en réseau. Chaque serveur Sk, k=l,...,K comprend diverses ressources informatiques (matérielles et/ou logicielles) permettant l'exécution de tâches informatiques. Ces ressources sont par exemple de la mémoire, de l'espace disque, du CPU, des accès réseaux, etc. Aucune limitation n'est attachée à la nature des ressources informatiques proposées par les serveurs SI,...,SK du cluster 2. Toutefois, pour mieux illustrer l'invention, on s'attache ici à une ressource informatique particulière R qui consiste en de la mémoire ; et — un dispositif 3 de gestion du cluster 2 de serveurs, conforme à l'invention.According to the invention, the computer system 1 comprises - a cluster 2 of servers comprising a plurality of servers SI, S2, ..., SK, K designating an integer greater than 1, connected in network. Each server Sk, k = l, ..., K includes various computer resources (hardware and / or software) allowing the execution of computer tasks. These resources are for example memory, disk space, CPU, network access, etc. No limitation is attached to the nature of the IT resources offered by the servers SI, ..., SK of the cluster 2. However, to better illustrate the invention, we attach here to a particular IT resource R which consists of memory; and a device 3 for managing the cluster 2 of servers, in accordance with the invention.

Le dispositif 3 de gestion du cluster 2 est configuré pour, sur réception d'une requêteThe cluster management device 3 is configured to, on receipt of a request

REQ en provenance d'un dispositif client 4 (ex. ordinateur) d'un utilisateur du cluster 2 demandant l'exécution d'au moins une tâche informatique T, allouer des ressources du cluster 2 à ce client pour l'exécution de cette tâche. Plus spécifiquement, sur réception de la requête REQ, le dispositif 3 de gestion du cluster 2 identifie un serveur Sk du cluster 2 apte à exécuter la tâche informatique T, c'est-à-dire un serveur Sk disposant des ressources nécessaires à son exécution (mémoire, CPU, etc.), puis lance la tâche informatique T sur ce serveur Sk pour qu'elle y soit exécutée.REQ from a client device 4 (eg computer) of a user of cluster 2 requesting the execution of at least one IT task T, allocate resources of cluster 2 to this client for the execution of this task . More specifically, on reception of the REQ request, the device 3 for managing the cluster 2 identifies a server Sk of the cluster 2 capable of executing the computer task T, that is to say a server Sk having the resources necessary for its execution (memory, CPU, etc.), then launches the computer task T on this Sk server so that it is executed there.

Aucune limitation n'est attachée à la nature de la tâche informatique T à exécuter sur le cluster 2. Il peut s'agir de tout type de tâche associée à une application logicielle APP installée sur le dispositif client 4 ou à n'importe quel programme informatique de manière générale. De façon connue un tel programme informatique comprend une pluralité de tâches informatiques à exécuter, et qui peuvent être soumises en rafales au dispositif 3 de gestion du cluster 2 pour être exécutées en parallèle sur différents serveurs du cluster 2. On s'intéresse ici plus particulièrement au traitement réalisé par le dispositif 3 de gestion sur l'une de ces tâches, à savoir sur la tâche T. Un traitement similaire est appliqué sur l'ensemble des tâches contenues dans la requête REQ.No limitation is attached to the nature of the computer task T to be executed on cluster 2. It can be any type of task associated with an APP software application installed on the client device 4 or with any program. IT in general. In a known manner, such a computer program comprises a plurality of computer tasks to be executed, which can be subjected in bursts to the device 3 for managing the cluster 2 in order to be executed in parallel on different servers of the cluster 2. We are concerned here more particularly to the processing performed by the management device 3 on one of these tasks, namely on the task T. A similar processing is applied to all of the tasks contained in the request REQ.

Chacune des tâches envoyées par l'application logicielle APP au dispositif 3 de gestion du cluster 2 a des besoins en ressources informatiques pour permettre son exécution sur le cluster 2. Ces besoins sont spécifiés ici par l'utilisateur du dispositif client 4 pour chacune des tâches et pour chacune des ressources. Pour la ressource informatique R et la tâche T, l'utilisateur du dispositif client 4 spécifie une quantité R_R_T de mémoire requise « initialement » pour l'exécution de la tâche T. La quantité R_R_T peut être déterminée de manière grossière par l'utilisateur du dispositif client 4, sur la base de ses connaissances des opérations mises en œuvre par la tâche informatique T et la consommation en terme de mémoire requise par ces opérations. On note que bien que l'utilisateur du dispositif client 4 tente dans la mesure du possible de fournir une quantité R_R_T proche de l'utilisation réelle de la ressource R par la tâche informatique T, cette quantité R_R_T est difficile en pratique à estimer précisément pour l'utilisateur : elle est généralement surestimée par l'utilisateur de sorte à s'assurer que la tâche informatique T se voit allouer une quantité suffisante de mémoire par le dispositif 3 de gestion du cluster 2 pour pouvoir être exécutée dans de bonnes conditions. La quantité R_R_T ainsi prédéterminée est transmise ici dans la requête REQ d'exécution de la tâche informatique T adressée au dispositif 3 de gestion du cluster 2.Each of the tasks sent by the software application APP to the device 3 for managing the cluster 2 has IT resource requirements to enable its execution on the cluster 2. These needs are specified here by the user of the client device 4 for each of the tasks and for each of the resources. For the computer resource R and the task T, the user of the client device 4 specifies an amount R_R_T of memory required "initially" for the execution of the task T. The amount R_R_T can be roughly determined by the user of the client device 4, based on its knowledge of the operations implemented by the computer task T and the consumption in terms of memory required by these operations. It is noted that although the user of the client device 4 tries as far as possible to provide a quantity R_R_T close to the real use of the resource R by the computer task T, this quantity R_R_T is difficult in practice to estimate precisely for the user: it is generally overestimated by the user so as to ensure that the computer task T is allocated a sufficient amount of memory by the device 3 for managing the cluster 2 so that it can be executed in good conditions. The quantity R_R_T thus predetermined is transmitted here in the request REQ for execution of the computer task T addressed to the device 3 for managing the cluster 2.

Dans le mode de réalisation décrit ici, le dispositif 3 de gestion du cluster 2 a l'architecture matérielle d'un ordinateur, telle qu'illustrée à la Figure 2. Il comprend notamment un processeur 5, une mémoire vive 6, une mémoire morte 7, une mémoire flash non volatile 8 ainsi que des moyens de communication 9 lui permettant de communiquer notamment d'une part avec le dispositif client 4 et d'autre part avec les serveurs Sk, k=l,...,K du cluster 2. Ces moyens de communication 9 comprennent par exemple une carte réseau, bien connue en soi.In the embodiment described here, the device 3 for managing the cluster 2 has the hardware architecture of a computer, as illustrated in FIG. 2. It includes in particular a processor 5, a random access memory 6, a read only memory 7, a non-volatile flash memory 8 as well as communication means 9 enabling it to communicate in particular on the one hand with the client device 4 and on the other hand with the servers Sk, k = l, ..., K of the cluster 2. These communication means 9 comprise for example a network card, well known in itself.

La mémoire morte 7 du dispositif 3 de gestion du cluster 2 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 8 et sur lequel est enregistré ici un programme d'ordinateur PROG conforme à l'invention.The read only memory 7 of the device 3 for managing the cluster 2 constitutes a recording medium in accordance with the invention, readable by the processor 8 and on which is recorded here a computer program PROG in accordance with the invention.

Le programme d'ordinateur PROG définit des modules fonctionnels (et logiciels ici), configurés pour mettre en œuvre les étapes du procédé de mise à jour et les étapes du procédé de gestion de tâches informatiques selon l'invention. Ces modules fonctionnels s'appuient sur et/ou commandent les éléments matériels 5-9 du dispositif 3 de gestion cités précédemment. Ils comprennent notamment ici, comme illustré sur la figure 1 :The computer program PROG defines functional modules (and software here), configured to implement the steps of the updating method and the steps of the method of managing computer tasks according to the invention. These functional modules are based on and / or control the hardware elements 5-9 of the management device 3 mentioned above. They include in particular here, as illustrated in FIG. 1:

— un module 3A de réception de requêtes en provenance de dispositifs clients comme le dispositif client 4, ce module 3A s'appuyant sur les moyens de communication 9 ;A module 3A for receiving requests from client devices such as the client device 4, this module 3A relying on the communication means 9;

— un module 3B de détermination, activé sur réception par le module 3A de réception d'une requête d'exécution d'une tâche informatique, le module de détermination étant configuré pour déterminer au moins un serveur du cluster 2 apte à exécuter la tâche informatique ;A module 3B for determining, activated on reception by the module 3A for receiving a request to execute an IT task, the determining module being configured to determine at least one server of cluster 2 capable of executing the IT task ;

— un module 3C de sélection configuré pour sélectionner un serveur pour exécuter la tâche informatique parmi les serveurs du cluster déterminés par le module 3B de détermination ;A selection module 3C configured to select a server to execute the computer task among the servers of the cluster determined by the determination module 3B;

— un module 3D de détection, configuré pour détecter un ensemble prédéfini d'événements relatifs à la ressource R et détaillés ultérieurement ; et — un module 3E de mise à jour, configuré pour mettre à jour à chaque détection d'événement par le module 3D de détection, une ou plusieurs valeurs utilisées par le module 3B de détermination pour déterminer les serveurs susceptibles d'exécuter la tâche informatique en utilisant les mesures d'utilisation réelle de la ressource informatique R obtenues par le module 3D d'obtention.- a 3D detection module, configured to detect a predefined set of events relating to the resource R and detailed later; and - an update module 3E, configured to update at each event detection by the 3D detection module, one or more values used by the determination module 3B to determine the servers capable of executing the computer task using the measurements of real use of the IT resource R obtained by the 3D obtaining module.

Les fonctions de ces différents modules sont décrites plus en détail maintenant, en référence à la figure 3 (constituée des figures 3A et 3B) et aux étapes du procédé de mise à jour et du procédé de gestion de tâches informatiques selon l'invention, telles qu'elles sont mises en œuvre, dans le premier mode particulier de réalisation, par le dispositif 3 de gestion du cluster 2.The functions of these different modules are now described in more detail, with reference to FIG. 3 (consisting of FIGS. 3A and 3B) and to the steps of the updating method and of the method for managing computer tasks according to the invention, such as that they are implemented, in the first particular embodiment, by the device 3 for managing the cluster 2.

Comme illustré sur la figure 3, le procédé de gestion de tâches informatiques selon l'invention s'appuie, dans le premier mode de réalisation décrit ici, sur deux processus qui se déroulent en parallèle :As illustrated in FIG. 3, the method for managing computer tasks according to the invention is based, in the first embodiment described here, on two processes which take place in parallel:

— un processus PI de traitement asynchrone, illustré sur la figure 3A, qui est déclenché par le dispositif 3 de gestion du cluster 2 sur réception par son module 3A de réception de chaque requête d'exécution de tâche(s) informatique(s) sur le cluster 2. Ce processus PI vise à attribuer à chaque tâche informatique des ressources informatiques sur un serveur du cluster 2 afin de permettre son exécution ; et — un processus P2 de mise à jour, illustré sur la figure 3B, qui est mis en œuvre ici en continu par le dispositif 3 de gestion du cluster 2. Plus particulièrement ici, les mises à jour visent des valeurs utilisées par le dispositif 3 de gestion du cluster 2 pour sélectionner un serveur apte à exécuter une tâche informatique qui lui est confiée. Ces mises à jour sont effectuées dans le premier mode de réalisation sur détection de différents événements appartenant à un ensemble prédéterminé d'événements. Cet ensemble comprend ici trois événements, à savoir, la remontée (périodique) par les serveurs du cluster 2 de mesures d'utilisation de leurs ressources, le positionnement de tâches et la réservation de ressources en découlant sur des serveurs, et la libération de ressources sur les serveurs. Les valeurs mises à jour lors du processus P2 sont prises en compte préférentiellement dès leurs disponibilités par le processus PI pour le traitement des requêtes reçues après chaque mise à jour.An asynchronous processing PI process, illustrated in FIG. 3A, which is triggered by the device 3 for managing the cluster 2 upon reception by its module 3A for reception of each request for execution of computer task (s) on cluster 2. This PI process aims to allocate to each IT task computer resources on a server of cluster 2 in order to allow its execution; and - an update process P2, illustrated in FIG. 3B, which is implemented here continuously by the device 3 for managing the cluster 2. More particularly here, the updates target values used by the device 3 management of cluster 2 to select a server capable of executing an IT task entrusted to it. These updates are carried out in the first embodiment on detection of different events belonging to a predetermined set of events. This set includes here three events, namely, the (periodic) feedback by the servers of cluster 2 of measures of use of their resources, the positioning of tasks and the reservation of resources arising therefrom on servers, and the release of resources. on the servers. The values updated during the P2 process are preferably taken into account as soon as they are available by the PI process for the processing of requests received after each update.

Nous allons maintenant décrire plus en détail chacun de ces processus.We will now describe each of these processes in more detail.

En référence à la figure 3A, on suppose que le dispositif 3 de gestion du cluster 2 reçoit, par l'intermédiaire de ses moyens de communication 9 et de son module de réception 3A, une requête REQ d'exécution d'une tâche informatique T du dispositif client 4 (étape E10). Cette requête REQ comprend, comme mentionné précédemment, une quantité R_R_T de ressource R requise initialement pour que la tâche informatique T puisse s'exécuter convenablement, cette quantité R_R_T ayant été prédéterminée par l'utilisateur du dispositif client 4.With reference to FIG. 3A, it is assumed that the device 3 for managing the cluster 2 receives, via its communication means 9 and its reception module 3A, a request REQ for executing a computer task T of the client device 4 (step E10). This REQ request comprises, as mentioned previously, a quantity R_R_T of resource R initially required for the computer task T to be able to execute properly, this quantity R_R_T having been predetermined by the user of the client device 4.

Sur réception de la requête REQ(T,R_R_T), le dispositif 3 de gestion du cluster 2, par l'intermédiaire de son module 3B de détermination, détermine ici parmi les serveurs S1,...,SK du cluster 2 quels sont ceux qui sont aptes à exécuter la tâche T, compte tenu des besoins R_R_T en ressource R spécifiés par l'utilisateur. Autrement dit, le module 3B de détermination détermine quel(s) serveur(s) dispose d'une quantité de ressource R suffisante pour exécuter la tâche informatique T. On note que cette détermination n'a pas besoin d'être exhaustive, et une liste de serveurs réduite à un unique serveur peut être suffisante.On receipt of the REQ request (T, R_R_T), the device 3 for managing the cluster 2, by means of its determination module 3B, here determines among the servers S1, ..., SK of the cluster 2 which are those which are able to execute the task T, taking into account the needs R_R_T in resource R specified by the user. In other words, the determination module 3B determines which server (s) has a sufficient amount of resource R to execute the computer task T. It is noted that this determination need not be exhaustive, and a a reduced list of servers to a single server may be sufficient.

A cet effet, pour chaque serveur Sk du cluster 2, k=l,...,K (étape d'initialisation E20, étape test E50 puis étape d'incrémentation E60), le module 3B de détermination détermine si le serveur Sk vérifie l'inégalité (eql) suivante (étape test E30) :To this end, for each server Sk of cluster 2, k = l, ..., K (initialization step E20, test step E50 then incrementation step E60), the determination module 3B determines whether the server Sk checks the following inequality (eql) (test step E30):

R_R_T + EU_R(Sk) < CL_R(Sli) (eql) dans laquelle :R_R_T + EU_R (Sk) <CL_R (Sli) (eql) in which:

— CL_R(Sk) désigne la capacité maximale du serveur Sk pour la ressource informatique R (i.e. quantité maximale de ressource R disponible sur le serveur Sk). Cette capacité maximale est remontée ici périodiquement au dispositif 3 de gestion par chaque serveur Sk ; et — EU_R(Sk) désigne une estimation d'une quantité déjà utilisée de la ressource informatique R sur le serveur Sk.- CL_R (Sk) designates the maximum capacity of the Sk server for the IT resource R (i.e. maximum quantity of R resource available on the Sk server). This maximum capacity is raised here periodically to the management device 3 by each server Sk; and - EU_R (Sk) designates an estimate of a quantity already used of the IT resource R on the server Sk.

Si le serveur Sk vérifie l'inégalité (eql) (réponse oui à l'étape test E30), il est identifié par le module 3B de détermination comme un serveur susceptible d'exécuter la tâche T (étape E40).If the server Sk checks the inequality (eql) (answer yes to the test step E30), it is identified by the determination module 3B as a server capable of executing the task T (step E40).

Sinon (réponse non à l'étape test E30 et étape test E50), le module 3B de détermination teste un nouveau serveur parmi les serveurs non encore testés du cluster 2 (réponse non à étape test E50 et étape d'incrémentation E60).Otherwise (answer no to test step E30 and test step E50), the determination module 3B tests a new server from among the servers not yet tested in cluster 2 (answer no to test step E50 and incrementation step E60).

Dans le premier mode de réalisation décrit ici, une fois que tous les serveurs Sk, k=l,..,K du cluster 2 ont été testés (réponse oui à l'étape test E50), le module 3C de sélection sélectionne un serveur SkO parmi les serveurs identifiés comme étant aptes à exécuter la tâche informatique T compte-tenu de ses besoins R_R_T en ressource R initialement fournis par l'utilisateur (étape E70). Aucune limitation n'est attachée aux critères utilisés par le dispositif 3 de gestion du cluster 2 pour sélectionner le serveur SkO. Ce choix peut être fait par exemple par rapport aux autres ressources requises pour l'exécution de la tâche et disponibles sur le serveur SkO, par rapport à des contraintes géographiques, etc.In the first embodiment described here, once all the servers Sk, k = l, .., K of cluster 2 have been tested (answer yes in test step E50), the selection module 3C selects a server SkO among the servers identified as being able to execute the computer task T taking into account its needs R_R_T in resource R initially supplied by the user (step E70). No limitation is attached to the criteria used by the cluster management device 3 to select the SkO server. This choice can be made for example in relation to the other resources required for the execution of the task and available on the SkO server, in relation to geographic constraints, etc.

Suite à cette sélection, le dispositif 3 de gestion du cluster 2 ordonne (ou déclenche) le lancement de la tâche T sur le serveur SkO sélectionné (étape E80). En d'autres mots, il positionne la tâche T sur le serveur SkO et réserve sur ce serveur la quantité R_R_T de ressource R en vue de son exécution.Following this selection, the device 3 for managing the cluster 2 orders (or triggers) the launch of the task T on the selected SkO server (step E80). In other words, it positions the task T on the SkO server and reserves on this server the quantity R_R_T of resource R for execution.

Le dispositif 3 de gestion du cluster 2 procède ainsi pour chaque tâche informatique qui lui est soumise.The device 3 for managing the cluster 2 thus proceeds for each IT task submitted to it.

On note que le processus asynchrone Pl qui vient d'être décrit en référence à la figure 3A et qui est mis en œuvre par le dispositif 3 de gestion du cluster 2 se rapproche des traitements mis en œuvre par les systèmes de gestion de cluster de l'état de la technique, et notamment par les systèmes Borg et Hadoop Yarn cités précédemment. Dans les traitements mis en œuvre par ces systèmes de l'état de la technique, l'estimation EU_R(Sk) de la quantité de ressource R déjà utilisée sur le serveur Sk est prise égale, dans l'équation (eql), à la quantité Q_R(Sk) de ressource R initialement réservée (i.e. allouée) par le système de gestion sur le serveur Sk pour l'exécution des tâches reçues antérieurement et toujours en cours de traitement par le serveur Sk, c'est-à-dire toujours positionnées sur le serveur Sk (ce nombre de tâches positionnées est supposé égal à J0, J0 désignant un entier supérieur à 0). Cette quantité Q_R(Sk) se base sur les déclarations des besoins R_R_Tj en ressource R fournis par les utilisateurs pour ces tâches antérieures Tj, j=l,...,JO, autrement dit, elle est égale à la somme des besoins R_R_Tj, j=l,...,JO en ressource R déclarés par les utilisateurs à l'origine de ces J0 tâches Tj, j=l,...,JO, soit encore :We note that the asynchronous process P1 which has just been described with reference to FIG. 3A and which is implemented by the device 3 for managing the cluster 2 is similar to the treatments implemented by the cluster management systems of the state of the art, and in particular by the Borg and Hadoop Yarn systems mentioned above. In the treatments implemented by these prior art systems, the estimate EU_R (Sk) of the quantity of resource R already used on the server Sk is taken equal, in equation (eql), to the quantity Q_R (Sk) of resource R initially reserved (ie allocated) by the management system on the server Sk for the execution of the tasks previously received and still being processed by the server Sk, that is to say always positioned on the Sk server (this number of positioned tasks is assumed to be equal to J0, J0 designating an integer greater than 0). This quantity Q_R (Sk) is based on the declarations of the needs R_R_Tj in resource R supplied by the users for these previous tasks Tj, j = l, ..., JO, in other words, it is equal to the sum of the needs R_R_Tj, j = l, ..., JO in resource R declared by the users at the origin of these J0 tasks Tj, j = l, ..., JO, again:

Q_R(Sk) = Σ'°, R.RTj.Q_R (Sk) = Σ '°, R.RTj.

En d'autres mots encore, les systèmes de gestion de l'état de la technique tels que ceux précités appliquent, pour l'attribution d'une ressource R à une tâche informatique T entrante qui leur est soumise, l'inégalité suivante (eql') :In other words again, the state of the art management systems such as those mentioned above apply, for the allocation of a resource R to an incoming computer task T which is submitted to them, the following inequality (eql '):

R.R.T + Q.R (Sk) < CL.R (Sk) (eq 1 ')R.R.T + Q.R (Sk) <CL.R (Sk) (eq 1 ')

Conformément à l'invention, le dispositif 3 de gestion du cluster 2 se distingue des systèmes de gestion de l'état de la technique en ce que certaines valeurs utilisées dans l'équation (eql), et en particulier la valeur EU_R(Sk) et/ou la valeur de capacité limite CL_R(Sk), sont mises à jour sur détection de trois événements prédéterminés (définissant un ensemble prédéterminé d'événements au sens de l'invention) (étape F10). Ces trois événements comprennent :According to the invention, the device 3 for managing the cluster 2 differs from the state of the art management systems in that certain values used in the equation (eql), and in particular the value EU_R (Sk) and / or the limit capacity value CL_R (Sk), are updated on detection of three predetermined events (defining a predetermined set of events within the meaning of the invention) (step F10). These three events include:

— l'obtention de mesures d'utilisation réelle (courante) de la ressource informatique R sur les serveurs Sk, k=l,...,K du cluster 2 serveur ;- obtaining measurements of actual (current) use of the IT resource R on the servers Sk, k = l, ..., K of the cluster 2 server;

— la réservation par le dispositif 3 de gestion du cluster pour une tâche informatique d'une quantité de la ressource informatique R sur un serveur Sk, k=l,...,K du cluster 2 ; et — la libération par une tâche informatique d'une quantité de la ressource informatique R sur un serveur Sk, k=l,...,K du cluster 2.The reservation by the cluster management device 3 for an IT task of a quantity of the IT resource R on a server Sk, k = l, ..., K of the cluster 2; and - the release by a computer task of a quantity of the computer resource R on a server Sk, k = l, ..., K of the cluster 2.

Cette mise à jour est illustrée à la figure 3B décrite maintenant (processus continu P2) pour la quantité EU_R(Sk) (variable V au sens de l'invention).This update is illustrated in FIG. 3B now described (continuous process P2) for the quantity EU_R (Sk) (variable V within the meaning of the invention).

La prise en compte des trois événements précités permet au dispositif 3 de gestion du cluster 2 d'avoir une information plus précise sur la quantité de ressource R disponible sur chaque serveur lors de l'attribution des tâches informatiques via le processus PI. Chaque événement désigné par EV détecté parmi ces trois événements entraîne une mise à jour de la valeur courante de la variable V considérée (ici EU_R(Sk)). On note dans la suite de la description V(n) la valeur courante mise à jour de la variable V, n désignant un entier supérieur ou égal à 0 indexant la mise à jour (en d'autres mots, chaque événement détecté incrémente l'entier n (étapes d'initialisation F00 puis d'incrémentation F20)). Ainsi, lorsque cette variable est EU_R(Sk), la valeur courante de cette variable est notée EU_R(n,Sk). Il en est de même pour les autres variables considérées dans la description. On note qu'une valeur dite courante désigne une valeur disponible ou que l'on modifie à un instant considéré dit courant (c'est-à-dire à un instant en cours de réalisation). Dans le cas d'une mesure, celle-ci peut avoir été réalisée à un instant précédent (notamment en cas de périodicité de la mesure) ; si tel est le cas, la mesure courante désigne la mesure qui est disponible au moment courant où on l'utilise.Taking into account the three aforementioned events allows the device 3 for managing the cluster 2 to have more precise information on the quantity of resource R available on each server during the allocation of the computer tasks via the PI process. Each event designated by EV detected among these three events results in an update of the current value of the variable V considered (here EU_R (Sk)). We note in the following description V (n) the current updated value of the variable V, n designating an integer greater than or equal to 0 indexing the update (in other words, each detected event increments the integer n (initialization steps F00 then incrementation F20)). Thus, when this variable is EU_R (Sk), the current value of this variable is noted EU_R (n, Sk). It is the same for the other variables considered in the description. It is noted that a so-called current value designates an available value or which one modifies at a time considered said current (that is to say at a time in progress). In the case of a measurement, it may have been carried out at a previous instant (in particular in the case of periodicity of the measurement); if this is the case, the current measurement designates the measurement that is available at the current time when it is used.

Conformément à l'invention, suivant l'événement détecté, une mise à jour différente de la valeur courante de la variable V est envisagée. Nous allons détailler maintenant ces trois mises à jour.According to the invention, according to the detected event, an update different from the current value of the variable V is envisaged. We will now detail these three updates.

Comme indiqué précédemment, dans le premier mode de réalisation décrit ici, on suppose que la remontée des mesures effectuées sur les serveurs Sk, k=l,...,K vers le dispositif 3 de gestion du cluster 2 est réalisée de façon périodique, selon une période Tupd. Par souci de simplification, on considère ici une même période Tupd pour tous les serveurs du cluster toutefois l'invention s'applique également à des périodes distinctes d'un serveur à l'autre. En outre, l'invention s'applique également lorsque les mesures sont remontées à des instants prédéterminés, pas nécessairement espacés de façon régulière, ou de façon totalement asynchrone.As indicated above, in the first embodiment described here, it is assumed that the feedback of the measurements made on the servers Sk, k = l, ..., K to the device 3 for managing the cluster 2 is carried out periodically, according to a Tupd period. For the sake of simplification, the same period Tupd is considered here for all the servers of the cluster, however the invention also applies to distinct periods from one server to another. In addition, the invention also applies when the measurements are raised at predetermined times, not necessarily spaced regularly, or in a completely asynchronous manner.

Cette obtention périodique des mesures d'utilisation réelle de la ressource R par le dispositif 3 de gestion est détectée par le dispositif 3 de gestion du cluster (réponse oui à l'étape F10 avec FV=UPD-U). Une telle mesure peut être réalisée par chaque serveur Sk au moyen d'outils connus en soi, comme par exemple au moyen d'une commande « top » lancée par le système d'exploitation de chaque serveur Sk périodiquement. On note U_R(n,Sk) la mesure de l'utilisation réelle de la ressource informatique R réalisée sur le serveur Sk et disponible à l'instant courant au niveau du dispositif 3 de gestion du cluster 2.This periodic obtaining of measurements of actual use of the resource R by the management device 3 is detected by the cluster management device 3 (answer yes in step F10 with FV = UPD-U). Such a measurement can be carried out by each Sk server by means of tools known per se, such as for example by means of a “top” command launched by the operating system of each Sk server periodically. We denote by U_R (n, Sk) the measurement of the real use of the IT resource R carried out on the server Sk and available at the current time at the level of the device 3 for managing the cluster 2.

Chacune des mesures U_R(n,Sk), k=l,...,K obtenue par le dispositif 3 de gestion du cluster 2 est utilisée par le dispositif 3 de gestion du cluster comme une mesure de l'utilisation réelle courante de la ressource informatique R sur le serveur Sk.Each of the measurements U_R (n, Sk), k = l, ..., K obtained by the device 3 for managing the cluster 2 is used by the device 3 for managing the cluster as a measure of the current actual use of the IT resource R on the Sk server.

A partir de cette mesure, le dispositif 3 de gestion du cluster 2, via son module 3E de mise à jour, met à jour, dans le premier mode de réalisation décrit ici, la valeur courante de l'estimation EU_R(Sk) de la quantité déjà utilisée de la ressource informatique R sur le serveur Sk destinée à être prise en compte par le dispositif 3 de gestion au cours de l'étape E30 du processus PI (étape F30).From this measurement, the device 3 for managing the cluster 2, via its updating module 3E, updates, in the first embodiment described here, the current value of the estimate EU_R (Sk) of the quantity already used of the computer resource R on the server Sk intended to be taken into account by the management device 3 during step E30 of the process PI (step F30).

Dans le premier mode de réalisation décrit ici, le module 3E de mise à jour calcule la valeur courante EU_R(n,Sk) selon l'équation (eq2) suivante (étape F30) :In the first embodiment described here, the update module 3E calculates the current value EU_R (n, Sk) according to the following equation (eq2) (step F30):

EU_R(n,Sk) = (1 - a)EU_R(n - l,S/c) + ai/_R(n,Sk)(eq2) où a désigne un facteur de pondération réel compris entre 0 et 1. On note que dans cette équation, EU_R(0,Sk) est initialisé à la quantité de le ressource R réservée sur le serveur Sk à un instant t=0 pour l'ensemble des tâches positionnées sur ce serveur par le dispositif 3 de gestion du cluster 2.EU_R (n, Sk) = (1 - a) EU_R (n - l, S / c) + ai / _R (n, Sk) (eq2) where a denotes a real weighting factor between 0 and 1. We note that in this equation, EU_R (0, Sk) is initialized to the quantity of the resource R reserved on the server Sk at an instant t = 0 for all the tasks positioned on this server by the device 3 for managing the cluster 2 .

On note que l'équation (eq2) permet de mettre à jour l'estimation de la quantité déjà utilisée de la ressource informatique R sur le serveur Sk en calculant la valeur EU_R(n,Sk) à l'instant courant à partir d'une valeur vpast(n) = EU_R(n- l,Sk) calculée (mise à jour) à un instant précédent (en l'espèce ici, lors de sa précédente mise à jour). Elle comprend une moyenne mobile exponentielle paramétrée par le facteur a. Plus le facteur a est choisi proche de 0, plus longtemps le dispositif 3 de gestion du cluster tient compte de la quantité de ressources réservée et retarde le moment où il utilise des ressources libres des serveurs qui semblent « indûment » réservées. Au contraire, plus le facteur a est choisi proche de 1, plus le dispositif 3 de gestion du cluster oublie rapidement ces ressources réservées par les tâches, prenant le risque que ces ressources soient en fait nécessaires aux tâches pour lesquelles elles avaient été réservées mais utilisées ultérieurement. Le choix du facteur a résulte donc d'un compromis entre ces différentes considérations.We note that equation (eq2) makes it possible to update the estimate of the quantity already used of the IT resource R on the server Sk by calculating the value EU_R (n, Sk) at the current time from a value vpast (n) = EU_R (n- l, Sk) calculated (update) at a previous instant (in this case here, during its previous update). It includes an exponential moving average parameterized by the factor a. The closer the factor a is chosen to 0, the longer the cluster management device 3 takes into account the quantity of resources reserved and delays the moment when it uses free resources from the servers which seem "unduly" reserved. On the contrary, the closer the factor a is chosen to 1, the more quickly the cluster management device 3 forgets these resources reserved by the tasks, taking the risk that these resources are in fact necessary for the tasks for which they had been reserved but used later. The choice of factor a therefore results from a compromise between these different considerations.

L'équation (eq2) permet avantageusement d'ajuster (i.e. de mettre à jour) le niveau EU_R(n,Sk) d'utilisation de la ressource R utilisé par le dispositif 3 de gestion du cluster 2 pour l'allocation des ressources aux tâches informatiques qui lui sont confiées en tenant compte de l'utilisation réelle des ressources sur les serveurs du cluster 2. Ceci permet, si une tâche s'exécutant sur un serveur Sk du cluster 2 requiert moins de ressource R pour s'exécuter que les besoins en cette ressource annoncés initialement par l'utilisateur dans la requête d'exécution de cette tâche, d'allouer à d'autres tâches de la ressource R non utilisée sur le serveur Sk, ou inversement de stopper l'allocation de ressource R à des tâches entrantes si le serveurs Sk n'a plus de ressource R disponible. On obtient donc une meilleure allocation par le dispositif 3 de gestion des ressources du cluster 2, tout en s'assurant d'une bonne exécution des tâches sur le cluster.Equation (eq2) advantageously makes it possible to adjust (ie to update) the level EU_R (n, Sk) of use of the resource R used by the device 3 for managing cluster 2 for the allocation of resources to IT tasks entrusted to it, taking into account the actual use of resources on the servers of cluster 2. This allows, if a task executing on a Sk server of cluster 2 requires less R resource to execute than the needs in this resource initially announced by the user in the request to execute this task, to allocate to other tasks the resource R not used on the Sk server, or conversely to stop the allocation of resource R to incoming tasks if the Sk servers have no more R resources available. A better allocation is therefore obtained by the device 3 for managing the resources of the cluster 2, while ensuring proper execution of the tasks on the cluster.

Dans le premier mode de réalisation décrit ici, la mise à jour de la valeur courante de la variable EU_R(Sk) au moyen de l'équation (eq2) est réalisée de façon périodique, à chaque remontée de mesures reçue par le dispositif 3 de gestion du cluster 2. En d'autres mots, l'événement d'obtention de mesures (EV=UPD-U) par le dispositif 3 de gestion se reproduit de façon périodique.In the first embodiment described here, the updating of the current value of the variable EU_R (Sk) by means of the equation (eq2) is carried out periodically, with each feedback of measurements received by the device 3 of cluster management 2. In other words, the event of obtaining measurements (EV = UPD-U) by the management device 3 occurs periodically.

En plus de cette mise à jour périodique, conformément à l'invention, d'autres événements (EV=RESA et EV=FREE sur la figure 3B) sont susceptibles de déclencher des mises à jour asynchrones de la valeur courante de la variable V=EU_R(Sk) pour les différents serveurs Sk, k=l,.,.,K. Plus précisément, ces mises à jour asynchrones sont déclenchées par le module 3E de mise à jour à chaque fois que celui-ci détecte l'un et/ou l'autre des deux événements suivants pour l'un des serveurs Sk :In addition to this periodic update, in accordance with the invention, other events (EV = RESA and EV = FREE in FIG. 3B) are likely to trigger asynchronous updates of the current value of the variable V = EU_R (Sk) for the different Sk servers, k = l,.,., K. More specifically, these asynchronous updates are triggered by the update module 3E each time that it detects one and / or the other of the following two events for one of the Sk servers:

— la réservation par le dispositif 3 de gestion d'une quantité de la ressource R sur le serveur Sk, pour l'exécution d'une tâche informatique Tnew (suite à l'application du processus PI représenté sur la figure 3A par le dispositif 3 de gestion sur la tâche Tnew) (branche EV=RESA sur la figure 3B). La quantité de ressource réservée pour cette tâche Tnew par le dispositif 3 de gestion sur le serveur Sk correspond aux besoins R_R_Tnew en ressource R requis initialement par l'utilisateur dans la requête d'exécution de cette tâche transmise au dispositif 3 de gestion. Dans la suite de la description, on désigne cet événement par EV=RESA ;The reservation by the device 3 for managing a quantity of the resource R on the server Sk, for the execution of a computer task Tnew (following the application of the process PI shown in FIG. 3A by the device 3 management on the Tnew task) (EV branch = RESA in FIG. 3B). The quantity of resource reserved for this task Tnew by the management device 3 on the server Sk corresponds to the needs R_R_Tnew in resource R initially required by the user in the execution request for this task transmitted to the management device 3. In the following description, this event is designated by EV = RESA;

— la libération par une tâche informatique Told d'une quantité de la ressource R sur le serveur Sk, du fait notamment de l'achèvement de cette tâche Told ou de son interruption branche EV=FREE sur la figure 3B). Dans la suite de la description, on désigne par EV=FREE cet événement.- The release by a computer task Told of a quantity of the resource R on the server Sk, due in particular to the completion of this task Told or to its branch interruption EV = FREE in FIG. 3B). In the following description, this event is designated EV = FREE.

Pour chaque serveur Sk concerné pour lequel un événement EV=RESA est détecté par le dispositif 3 de gestion (via son module de détection 3D) en association avec une tâche Tnew (réponse oui à l'étape de détection F10, branche EV=RESA), la valeur courante de la variable EU_R(Sk) est mise à jour par le module 3E de mise à jour selon l'équation (eq3-RESA) suivante (étape F40) :For each Sk server concerned for which an EV = RESA event is detected by the management device 3 (via its 3D detection module) in association with a Tnew task (answer yes to the detection step F10, EV branch = RESA) , the current value of the variable EU_R (Sk) is updated by the update module 3E according to the following equation (eq3-RESA) (step F40):

EU_R (n,Sk) = EU_R(n — 1, S k) + R_R_Tnew (eq3-RESA)EU_R (n, Sk) = EU_R (n - 1, S k) + R_R_Tnew (eq3-RESA)

Le dispositif 3 de gestion du cluster 2 étant à l'origine du positionnement (attribution) des tâches sur les différents serveurs Sk du cluster, il peut informer sans délai via son module de sélection 3C, le module de détection 3D de la réservation de nouvelles ressources sur un serveur Sk.The device 3 for managing the cluster 2 being at the origin of the positioning (allocation) of the tasks on the various Sk servers of the cluster, it can immediately inform via its selection module 3C, the 3D detection module of the reservation of new resources on a Sk server.

Pour chaque serveur Sk concerné pour lequel un événement EV=FREE est détecté par le dispositif 3 de gestion en association avec une tâche Told (réponse oui à l'étape de détection F10, branche EV=FREE), la valeur courante de la variable EU_R(Sk) est mise à jour par le module 3E de mise à jour selon l'équation (eq3-FREE) suivante (étape F50) :For each Sk server concerned for which an EV = FREE event is detected by the management device 3 in association with a Told task (answer yes to the detection step F10, branch EV = FREE), the current value of the variable EU_R (Sk) is updated by the update module 3E according to the following equation (eq3-FREE) (step F50):

EU_R(n,Sk) = EU_R(n - 1,5/c) - (1 - a')noldR_R_Told (eq3-FREE) où nold indexe le nombre de mises à jour de EU_R réalisées sur détection de l'événement UPD-U (nouvelle mesure remontée au dispositif 3 de gestion de l'utilisation réelle de la ressource) depuis l'instant où la quantité de ressource R_R_Told a été réservée pour la tâche Told sur le serveur Sk jusqu'à sa libération, la quantité R_R_Told correspondant aux besoins initialement requis en ressource R déclarés par l'utilisateur dans la requête d'exécution de la tâche Told adressée au dispositif 3 de gestion.EU_R (n, Sk) = EU_R (n - 1.5 / c) - (1 - a ') nold R_R_Told (eq3-FREE) where nold indexes the number of updates to EU_R performed on detection of the event UPD -U (new measurement back to device 3 for managing the real use of the resource) from the moment when the quantity of resource R_R_Told was reserved for the Told task on the Sk server until its release, the quantity R_R_Told corresponding to the initial resource requirements R declared by the user in the request to execute the Told task addressed to the management device 3.

Dans l'équation (eq3)-FREE, le facteur (1 - a)noldR_R_Told permet de tenir compte du reliquat de ressource R qui est libérée par la tâche Told au niveau du serveur Sk du fait de la fin de son exécution par le serveur Sk. On note que la prise en compte de ce reliquat présente un intérêt privilégié pour des tâches dont l'exécution est de courte durée (par exemple inférieure à la période de mise à jour Tupd).In equation (eq3) -FREE, the factor (1 - a) nold R_R_Told takes account of the balance of resource R that is released by the Told task at the server Sk due to the end of its execution by the Sk server. Note that taking this balance into account is of special interest for tasks whose execution is short-lived (for example less than the Tupd update period).

Les mises à jour asynchrones de la variable EU_R(Sk) ainsi effectuées à chaque détection d'un événement EV=RESA et/ou EV=FREE visent à tenir compte des tâches allouées à chaque serveur Sk par le dispositif 3 de gestion du cluster 2 et des tâches qui se sont achevées sur chaque serveur Sk entre deux remontées de mesures du serveur Sk (et donc entre deux mises à jour périodiques de la variable EU_R(Sk)).The asynchronous updates of the variable EU_R (Sk) thus carried out upon each detection of an event EV = RESA and / or EV = FREE aim to take account of the tasks allocated to each Sk server by the device 3 for managing the cluster 2 and tasks that ended on each Sk server between two measurements feedback from the Sk server (and therefore between two periodic updates of the EU_R (Sk) variable).

On note que, comme mentionné précédemment, les événements EV=RESA peuvent être détectés aisément par le dispositif 3 de gestion du cluster 2, celui-ci étant en charge de l'allocation des ressources aux tâches informatiques qui lui sont confiées. Les événements EV=FREE sont détectés ici par les serveurs Sk sur lesquelles les tâches Told avaient été distribuées (positionnées) et remontées par ces serveurs au dispositif 3 de gestion du cluster 2 (accompagnées des indices nold correspondant). La réception par le dispositif 3 de gestion d'une notification d'un serveur Sk de l'achèvement d'une tâche Told constitue une détection d'un événement EV=FREE pour ce serveur Sk au sens de l'invention. Le dispositif 3 de gestion dispose alors des informations nécessaires pour évaluer le facteur (l - a')noldR_R_Told.It is noted that, as mentioned previously, the EV = RESA events can be easily detected by the device 3 for managing the cluster 2, the latter being in charge of allocating resources to the computer tasks entrusted to it. EV = FREE events are detected here by the Sk servers on which the Told tasks had been distributed (positioned) and relayed by these servers to the cluster management device 3 (accompanied by the corresponding nold indices). The reception by the device 3 of management of a notification from a Sk server of the completion of a Told task constitutes a detection of an EV = FREE event for this Sk server within the meaning of the invention. 3 The management device then has the information necessary to evaluate the factor (l - a ') nold R_R_Told.

La valeur courante EU_R(n,Sk) mise à jour de la variable EU_R(Sk) est utilisée dès qu'elle est disponible (i.e. dès sa mise à jour terminée) par le module de détermination 3B du dispositif 3 de gestion du cluster 2 dans le cadre du processus PI, et plus précisément dans l'inégalité (eql) pour sélectionner un serveur du cluster 2 apte à exécuter une nouvelle tâche entrante reçue à compter de cette mise à jour.The current value EU_R (n, Sk) updated from the variable EU_R (Sk) is used as soon as it is available (ie as soon as it is updated) by the determination module 3B of the device 3 for managing the cluster 2 as part of the PI process, and more specifically in inequality (eql) to select a server in cluster 2 able to execute a new incoming task received as of this update.

Les étapes F10 à F50 du processus P2 sont ensuite réitérées à chaque détection d'un événement EV=UPD-U, RESA ou FREE par le module de détection 3D.The steps F10 to F50 of the process P2 are then reiterated each time an event EV = UPD-U, RESA or FREE is detected by the 3D detection module.

Dans une première variante de ce premier mode de réalisation, le module 3E de mise à jour utilise lors de l'étape F30 pour calculer la valeur courante EU_R(n,Sk) l'équation (eq2') suivante à la place de l'équation (eq2) :In a first variant of this first embodiment, the updating module 3E uses during step F30 to calculate the current value EU_R (n, Sk) the following equation (eq2 ') in place of the equation (eq2):

EU_R(n,Sk) = max((l - a)EU_R (n - 1,57c) + aU_R(n,Sk), U_R(n,Sk/) (eq2') où max(x,y) désigne la fonction qui fournit la valeur maximale parmi les valeurs x et y. Les processus de mise à jour décrits aux étapes F40 et F50 restent par ailleurs identiques à celui décrit précédemment.EU_R (n, Sk) = max ((l - a) EU_R (n - 1.57c) + aU_R (n, Sk), U_R (n, Sk /) (eq2 ') where max (x, y) denotes the function which provides the maximum value among the x and y values The update processes described in steps F40 and F50 also remain identical to that described previously.

Cette première variante de réalisation permet de tenir compte plus rapidement de l'utilisation réelle des ressources sur le serveur Sk.This first alternative embodiment makes it possible to take into account more quickly the real use of resources on the Sk server.

Dans une deuxième variante du premier mode de réalisation illustrée à la figure 3C, le module 3E de mise à jour utilise pour calculer la valeur courante EU_R(n,Sk) l'équation (eq2) suivante à la place de l'équation (eq2) (étape G30) :In a second variant of the first embodiment illustrated in FIG. 3C, the updating module 3E uses to calculate the current value EU_R (n, Sk) the following equation (eq2) in place of the equation (eq2 ) (step G30):

EU_R(n,Sk) = DR_R(n,Sk) + U_R(n,Sk) (eq2) où DR_R(n,Sk) désigne une valeur courante lissée de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif 3 de gestion sur le serveur Sk à l'instant courant. La valeur lissée DR_R(n,Sk) est calculée ici par le module 3E de mise à jour lors de l'étape G30, dans la deuxième variante, selon l'équation (eq4) suivante :EU_R (n, Sk) = DR_R (n, Sk) + U_R (n, Sk) (eq2) where DR_R (n, Sk) denotes a smoothed current value of the quantity of the IT resource reserved for at least one IT task per the management device 3 on the server Sk at the current time. The smoothed value DR_R (n, Sk) is calculated here by the update module 3E during step G30, in the second variant, according to the following equation (eq4):

DR_R(n,Sk) = (1 - (i)DR_R(n - i.Sk) (eq4) où β est un facteur de pondération réel compris entre 0 et 1. On note que le choix du facteur de pondération β répond à un compromis similaire à celui évoqué précédemment pour le choix du facteur de pondération a (i.e. rapidité d'oubli des ressources réservées versus utilisation réelle constatée de ces ressources). Dans cette équation, DR_R(0,Sk) est initialisé à la quantité de le ressource R réservée sur le serveur Sk à l'instant t=0 pour l'ensemble des tâches positionnées sur ce serveur.DR_R (n, Sk) = (1 - (i) DR_R (n - i.Sk) (eq4) where β is a real weighting factor between 0 and 1. We note that the choice of weighting factor β corresponds to a compromise similar to that mentioned above for the choice of the weighting factor a (ie speed of forgetting the reserved resources versus actual use observed of these resources). In this equation, DR_R (0, Sk) is initialized to the quantity of the resource R reserved on the server Sk at time t = 0 for all the tasks positioned on this server.

On suppose ici que la valeur de la variable DR_R est mise à jour périodiquement selon la même période Tupd que la remontée des mesures vers le dispositif 3 de gestion.It is assumed here that the value of the variable DR_R is updated periodically according to the same period Tupd as the feedback of the measurements to the management device 3.

Toutefois cette hypothèse n'est pas limitative en soi, et la mise à jour de la valeur de DR_R selon l'équation (eq4) peut être réalisée selon une autre période, asynchrone par rapport à la remontée de U_R(n,Sk). Chaque mise à jour de la valeur de DR_R(Sk) entraîne alors une mise à jour de la valeur de EU-R(Sk). Il s'agit donc d'un autre événement (événement EV=UPD-D représenté en pointillés sur la figure 3C), au même titre que les événements EV=UPD-U, EV=RESA et EV=FREE décrits précédemment, susceptible dans la deuxième variante décrite ici d'être détecté par le module de détection 3D et de déclencher une mise à jour de la valeur courante de la variable V(=EU-R(Sk) ici) (étape G40).However this assumption is not limiting in itself, and the update of the value of DR_R according to the equation (eq4) can be carried out according to another period, asynchronous compared to the rise of U_R (n, Sk). Each update of the value of DR_R (Sk) then results in an update of the value of EU-R (Sk). It is therefore another event (event EV = UPD-D shown in dotted lines in FIG. 3C), in the same way as the events EV = UPD-U, EV = RESA and EV = FREE described above, likely in the second variant described here to be detected by the 3D detection module and to trigger an update of the current value of the variable V (= EU-R (Sk) here) (step G40).

En outre, dans cette deuxième variante, lors de la détection d'un événement EV=RESA ou EV=FREE, la valeur de DR_R est mise à jour suivant les équations (eq5-RESA) pour la détection d'un événement EV=RESA (étape G50) et (eq5-FREE) pour la détection d'un événement EV=FREE (étape G60) suivantes :In addition, in this second variant, when an EV = RESA or EV = FREE event is detected, the value of DR_R is updated according to the equations (eq5-RESA) for the detection of an EV = RESA event (step G50) and (eq5-FREE) for the detection of an EV = FREE event (step G60) as follows:

D_R(n,Sk) = D_R(n - ï,Sk) + R_R_Tnew (eq5-RESA) etD_R (n, Sk) = D_R (n - ï, Sk) + R_R_Tnew (eq5-RESA) and

D_R(n,Sk) = D_R(n - l.Sk) - (1 - a)nol“R_R_Told (eq5-FREE) où nold indexe le nombre de mises à jour de D_R réalisées sur détection de l'événement UPD-U (nouvelle mesure remontée au dispositif 3 de gestion de l'utilisation réelle de la ressource) depuis l'instant où la quantité de ressource R_R_Told a été réservée pour la tâche Told sur le serveur Sk jusqu'à sa libération, la quantité R_R_Told correspondant aux besoins initialement requis en ressource R déclarés par l'utilisateur dans la requête d'exécution de la tâche Told adressée au dispositif 3 de gestion.D_R (n, Sk) = D_R (n - l.Sk) - (1 - a) nol “R_R_Told (eq5-FREE) where nold indexes the number of updates of D_R carried out on detection of the UPD-U event (new measurement returned to the device 3 for managing the real use of the resource) from the moment when the quantity of resource R_R_Told has been reserved for the task Told on the server Sk until its release, the quantity R_R_Told corresponding to initial requirements for resource R declared by the user in the request to execute the Told task addressed to the management device 3.

La valeur courante de EU-R est ensuite mise à jour durant les étapes G50 et G60 suivant l'équation (eq2) où U_R(n,Sk) désigne la valeur courante disponible au niveau du dispositif 3 de gestion de la mesure d'utilisation réelle de la ressource R.The current value of EU-R is then updated during steps G50 and G60 according to equation (eq2) where U_R (n, Sk) designates the current value available at the level of the device 3 for managing the usage measurement resource R.

Dans une troisième variante du premier mode de réalisation, chaque mesure de l'utilisation réelle de la ressource informatique R est réalisée sur chaque serveur Sk du cluster 2, k=l,...,K, pour chaque tâche distincte Tj exécutée par ce serveur Sk utilisant la ressource informatique R, j=O,...,Jl, J1 désignant un entier supérieur à 0 dénombrant les tâches positionnées sur le serveur Sk lors de la mesure. On se limite ici aux seules tâches Tj exécutées par le serveur Sk et gérées par le dispositif 3 de gestion du cluster 2 (c'est-à-dire qui ont été lancées sur le serveur Sk sur instruction du dispositif 3 de gestion du cluster 2 après exécution du processus PI).In a third variant of the first embodiment, each measurement of the actual use of the computer resource R is carried out on each server Sk of the cluster 2, k = l, ..., K, for each separate task Tj executed by this Sk server using the IT resource R, j = O, ..., Jl, J1 designating an integer greater than 0 enumerating the tasks positioned on the Sk server during the measurement. We are limited here only to the tasks Tj executed by the server Sk and managed by the device 3 for managing the cluster 2 (that is to say which were launched on the server Sk on instruction from the device 3 for managing the cluster 2 after execution of the PI process).

On désigne par U_R(n,Sk,j) la mesure de l'utilisation réelle de la ressource informatique R réalisée sur le serveur Sk pour la tâche Tj à l'issue de l'intervalle de temps t(n-l). Chaque mesure U_R(n,Sk,j) réalisée sur un serveur Sk est envoyée à l'issue de l'intervalle de temps t(n) au dispositif 3 de gestion du cluster 2, et obtenue au cours de l'étape F20 par le module 3D d'obtention du dispositif 3 de gestion du cluster 2. Chaque mesure U_R(n,Sk,j) est utilisée par le dispositif 3 de gestion du cluster comme une mesure de l'utilisation réelle de la ressource informatique R sur le serveur Sk par la tâche Tj pour l'intervalle de temps t(n).U_R (n, Sk, j) denotes the measurement of the actual use of the computer resource R carried out on the server Sk for the task Tj at the end of the time interval t (n-l). Each measurement U_R (n, Sk, j) carried out on a server Sk is sent at the end of the time interval t (n) to the device 3 for managing the cluster 2, and obtained during step F20 by the 3D module for obtaining the device 3 for managing the cluster 2. Each measurement U_R (n, Sk, j) is used by the device 3 for managing the cluster as a measure of the actual use of the computer resource R on the server Sk by the task Tj for the time interval t (n).

A partir de ces mesures, le dispositif 3 de gestion du cluster 2, via son module 3E de mise à jour, évalue dans la troisième variante, au cours de l'étape F30, une estimation EU_R(n,Sk,j) de la quantité déjà utilisée de la ressource informatique R sur chaque serveur Sk par chaque tâche informatique Tj gérée par le dispositif 3 de gestion du cluster 2 et exécutée sur le serveur Sk en utilisant l'équation (eq6) suivante :On the basis of these measurements, the device 3 for managing the cluster 2, via its updating module 3E, evaluates in the third variant, during step F30, an estimate EU_R (n, Sk, j) of the quantity already used of the computer resource R on each server Sk by each computer task Tj managed by the device 3 for managing the cluster 2 and executed on the server Sk using the following equation (eq6):

EU_R(n,Sk,j) = (1 - a)EU_R (n - l,Sk,j) + aU_R(n,Sk,j) (eq 6) ou l'équation (eq6') suivante :EU_R (n, Sk, j) = (1 - a) EU_R (n - l, Sk, j) + aU_R (n, Sk, j) (eq 6) or the following equation (eq6 '):

EU_R(n,Sk,j) = max((l - a)EU_R (n - l.Sk.f) + aU_R(n,Sk,j), U_R(n,Sk,j)) (eq 6') dans lesquelles a est un facteur de pondération réel compris entre 0 et 1, choisi comme décrit précédemment dans les autres variantes de réalisation. On note que dans cette troisième variante, EU_R(nOj,j) est initialisé à la quantité R_R_Tj de ressource informatique R requise initialement pour l'exécution de la tâche Tj, nOj désignant l'indice de mise à jour correspondant à l'attribution de la tâche informatique Tj au serveur Sk par le dispositif 3 de gestion.EU_R (n, Sk, j) = max ((l - a) EU_R (n - l.Sk.f) + aU_R (n, Sk, j), U_R (n, Sk, j)) (eq 6 ') in which a is an actual weighting factor between 0 and 1, chosen as described previously in the other alternative embodiments. We note that in this third variant, EU_R (nOj, j) is initialized to the quantity R_R_Tj of IT resource R initially required for the execution of the task Tj, nOj designating the update index corresponding to the allocation of the computer task Tj to the server Sk by the management device 3.

Puis, dans la troisième variante décrite ici, au cours de l'étape F30, le module 3E de mise à jour évalue à partir des valeurs EU_R(n,Sk,j) obtenues pour chacune des tâches Tj la quantité EU_R(n,Sk) selon l'équation (eq2') suivante :Then, in the third variant described here, during step F30, the updating module 3E evaluates from the values EU_R (n, Sk, j) obtained for each of the tasks Tj the quantity EU_R (n, Sk ) according to the following equation (eq2 '):

JlactJlact

EU_R(n,Sk)= EU_R(n,Sk,f) (eq2'j 7=o ou selon l'équation (eq2(4)) suivante :EU_R (n, Sk) = EU_R (n, Sk, f) (eq2'j 7 = o or according to the following equation (eq2 (4) ):

EU_R(n,Sk) = max^a EU_R(n,Sk,j) ,Σ^ U_R(n,Sk,j)) (eq2(4)) dans lesquelles Jlact désigne le nombre de tâches positionnées sur le serveur Sk (c'est-à-dire attribuées au serveur Sk par le dispositif 3 de gestion) parmi les J1 tâches pour lesquelles des mesures ont été remontées au dispositif 3 de gestion.EU_R (n, Sk) = max ^ a EU_R (n, Sk, j), Σ ^ U_R (n, Sk, j)) (eq2 (4) ) in which Jlact designates the number of tasks positioned on the Sk server ( that is to say allocated to the server Sk by the management device 3) among the J1 tasks for which measurements have been reported to the management device 3.

Dans le premier mode de réalisation et dans ses trois variantes précédemment décrites, c'est le dispositif 3 de gestion du cluster 2 qui, à partir des mesures remontées par les serveurs Sk, k=l,...,K du cluster 2, met à jour la valeur de la quantité EU_R(Sk) utilisée par le module 3B de détermination du dispositif 3 de gestion du cluster 2 pour sélectionner un serveur du cluster pour exécuter une tâche entrante.In the first embodiment and in its three variants described above, it is the device 3 for managing the cluster 2 which, from the measurements reported by the servers Sk, k = l, ..., K of the cluster 2, updates the value of the quantity EU_R (Sk) used by the module 3B for determining the device 3 for managing the cluster 2 to select a server of the cluster to execute an incoming task.

Dans un second mode de réalisation, chaque serveur Sk du cluster 2 est un serveur conforme à l'invention. Il comprend :In a second embodiment, each server Sk of cluster 2 is a server according to the invention. He understands :

— un module de mesure, configuré pour mesurer, périodiquement ici, l'utilisation réelle de sa ressource informatique R ;- a measurement module, configured to measure, periodically here, the actual use of its IT resource R;

— un module de détection configuré pour détecter un ensemble prédéfini d'événements (UPD-U, RESA et FREE) ; et — un module de mise à jour configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur et une capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection par le module de détection d'un événement parmi l'ensemble prédéfini d'événements et configuré pour :- a detection module configured to detect a predefined set of events (UPD-U, RESA and FREE); and an update module configured to update at least one current value of a variable denoted V chosen from an estimate of an amount already used of the computer resource on the server and a maximum capacity of the server for the resource. IT, said update module being activated on each detection by the event detection module from among the predefined set of events and configured for:

o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;o if the detected event is a measurement (U_R (n)) of a current actual use of the computer resource on the server, update the current value of the variable V using said measurement of the current actual use of the computer resource on the server;

o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique libérée ; et — un module de transmission, configuré pour transmettre au dispositif de gestion ladite valeur courante de la variable V mise à jour.o if the detected event is a reservation by the management device for a computer task of a quantity of the computer resource on the server, update the current value of the variable V using said quantity of the reserved computer resource; and if the detected event is a release by a computer task of a quantity of the computer resource on the server, updating the current value of the variable V by using said quantity of the released computer resource; and a transmission module, configured to transmit to the management device said current value of the updated variable V.

Plus précisément, dans le second mode de réalisation, sur chaque détection d'un événement EV (EV=UPD-U, RESA, FREE ou UPD-D comme dans le premier mode de réalisation) chaque serveur Sk estime via son module de mise à jour la quantité courante EU_R(n,Sk) déjà utilisée de sa ressource informatique R. Il peut procéder à cet effet par exemple de façon similaire ou identique à ce qui a été décrit précédemment dans le premier mode de réalisation et mis en œuvre par le dispositif 3 de gestion en référence aux figures 3B et 3C.More precisely, in the second embodiment, on each detection of an EV event (EV = UPD-U, RESA, FREE or UPD-D as in the first embodiment) each Sk server estimates via its update module update the current quantity EU_R (n, Sk) already used of its IT resource R. It can do this for example in a similar or identical way to what was described previously in the first embodiment and implemented by the management device 3 with reference to FIGS. 3B and 3C.

Puis, à partir de la quantité EU_R(n,Sk) ainsi estimée par le serveur Sk, le module de mise à jour du serveur Sk met à jour la valeur de sa capacité maximale CL_R(Sk) pour la ressource R et pour l'intervalle de temps t(n) selon l'équation (eq7) suivante :Then, from the quantity EU_R (n, Sk) thus estimated by the server Sk, the update module of the server Sk updates the value of its maximum capacity CL_R (Sk) for the resource R and for the time interval t (n) according to the following equation (eq7):

CL_R(n,Sk~) = CL_R(Sk) + Q_R(n,Sk) - EU(n,Sk) (eq7) où Q_R(n,Sk) désigne la quantité de ressource R réservée initialement par le dispositif 3 de gestion sur le serveur Sk pour l'exécution des tâches positionnées sur le serveur Sk à l'instant courant de mise à jour. Cette quantité Q_R(n,Sk) est donnée par, compte-tenu des besoins R_R_Tj, en ressource R déclarés par les utilisateurs à l'origine de ces tâches :CL_R (n, Sk ~) = CL_R (Sk) + Q_R (n, Sk) - EU (n, Sk) (eq7) where Q_R (n, Sk) designates the quantity of resource R initially reserved by the management device 3 on the Sk server for the execution of tasks positioned on the Sk server at the current update time. This quantity Q_R (n, Sk) is given by, taking into account the needs R_R_Tj, in resource R declared by the users at the origin of these tasks:

Q_R(n,Sk) = Σ^Γ^-β-Ό· où J2(n) désigne le nombre de tâches Tl,...,TJ2(n) positionnées sur le serveur Sk à l'instant courant de mise à jour.Q_R (n, Sk) = Σ ^ Γ ^ -β-Ό · where J2 (n) designates the number of tasks Tl, ..., TJ2 (n) positioned on the Sk server at the current update time .

La valeur courante de la capacité maximale CL_R(n,Sk) du serveur Sk pour la ressource R est alors remontée (périodiquement par exemple ici) par le serveur Sk au dispositif 3 de gestion du cluster 2, par exemple en utilisant le protocole de communication déjà utilisé dans les systèmes informatiques s'appuyant sur un système de gestion Hadoop Yarn.The current value of the maximum capacity CL_R (n, Sk) of the server Sk for the resource R is then raised (periodically for example here) by the server Sk to the device 3 for managing the cluster 2, for example using the communication protocol already used in IT systems based on a Hadoop Yarn management system.

Le dispositif 3 de gestion du cluster 2 utilise alors la valeur mise à jour CL_R(n,Sk) de la capacité maximale CL_R(Sk) du serveur Sk dans l'équation (eql') mentionnée précédemment pour déterminer, pour une tâche entrante T qui lui est soumise les serveurs Sk, k=l,...,K du cluster 2 aptes à exécuter cette tâche.The device 3 for managing the cluster 2 then uses the updated value CL_R (n, Sk) of the maximum capacity CL_R (Sk) of the server Sk in the equation (eql ') mentioned above to determine, for an incoming task T submitted to it by the servers Sk, k = l, ..., K of cluster 2 capable of performing this task.

Il convient de noter que ce second mode de réalisation ne requiert aucune modification du traitement réalisé aujourd'hui par les systèmes de gestion de l'état de la technique (i.e. ils utilisent l'équation (eql')). Ainsi, dans ce second mode de réalisation, le dispositif 3 de gestion du cluster 2 peut être un système de gestion Hadoop Yarn ou un système de gestion Borg déjà connus. Seuls les serveurs Sk du cluster 2 doivent être modifiés pour implémenter l'invention. Ces modifications peuvent toucher tout ou partie des serveurs du cluster 2.It should be noted that this second embodiment does not require any modification of the processing carried out today by the state of the art management systems (i.e. they use the equation (eql ')). Thus, in this second embodiment, the device 3 for managing the cluster 2 can be a Hadoop Yarn management system or a Borg management system already known. Only the Sk servers of cluster 2 must be modified to implement the invention. These modifications can affect all or part of the servers in cluster 2.

Dans les deux modes de réalisation décrits ici, ainsi que dans leurs variantes, on a considéré pour mettre à jour la quantité EU_R(n,Sk) une moyenne mobile exponentielle. Toutefois cette hypothèse n'est pas limitative en soi, et d'autres types de lissage ou de moyennes glissantes peuvent être envisagés pour calculer la quantité EU_R(n,Sk). Ainsi par exemple, dans une variante de réalisation, on peut considérer une moyenne arithmétique des mesures d'utilisation réelle remontées sur une fenêtre glissante comprenant N intervalles de temps précédents l'intervalle de temps t(n).In the two embodiments described here, as well as in their variants, an exponential moving average has been considered in order to update the quantity EU_R (n, Sk). However, this assumption is not limiting in itself, and other types of smoothing or sliding averages can be considered to calculate the quantity EU_R (n, Sk). Thus, for example, in an alternative embodiment, we can consider an arithmetic average of the actual use measurements reported on a sliding window comprising N time intervals preceding the time interval t (n).

Dans une autre variante encore, on peut considérer une moyenne MMP(n,Sfc) mobile pondérée des mesures d'utilisation réelle remontées sur une fenêtre glissante comprenant N intervalles de temps précédant l'instant courant de mise à jour, telle que par exemple ;In yet another variant, it is possible to consider a weighted moving average MMP (n, Sfc) of the actual use measurements reported on a sliding window comprising N time intervals preceding the current update time, such as for example;

MMDC CkA — N'u-R (n.SIC)+(N'-1) U_R(n—l,Sk)+· +U_R(n-N, + l,5fc)MMDC CkA - N ' u - R (n.SIC) + (N'-1) U_R (n — l, Sk) + · + U_R (nN , + l, 5fc)

MMP{n,Sk) - w'+(n'-i)+-+i où N' est le maximum du nombre de mesures U_R(n,Sk) disponibles précédant la mesure U_R(n,Sk) et de N. Cette moyenne MMP(n,Sk) s'écrit de façon équivalente, après avoir obtenu N mesures U_R(m,Sk), sous la forme :MMP {n, Sk) - w '+ (n'-i) + - + i where N' is the maximum of the number of measurements U_R (n, Sk) available preceding the measurement U_R (n, Sk) and N. This average MMP (n, Sk) is written in an equivalent manner, after having obtained N measurements U_R (m, Sk), in the form:

M MP (n, S k) = MMP (η - l.Sk) + u-R^Sk^^n On note que dans cette moyenne pondérée, les mesures U_R(n,Sk) ont d'autant plus de poids qu'elles sont récentes.M MP (n, S k) = MMP (η - l.Sk) + u - R ^ Sk ^^ n We note that in this weighted average, the measurements U_R (n, Sk) are all the more significant as 'They are recent.

La valeur EU_R(n,Sk) peut alors être calculée selon l'équation suivante, à la réception d'une nouvelle mesure U_R(n,Sk) (détection d'un événement EV=UPD-U) :The value EU_R (n, Sk) can then be calculated according to the following equation, on receipt of a new measurement U_R (n, Sk) (detection of an EV event = UPD-U):

n-ln-l

EU_R(n,Sk) = MMP(n,Sk) + Σ Σ (k + N - n) * R_R_Tj k=n—N+l ai~k EU_R (n, Sk) = MMP (n, Sk) + Σ Σ (k + N - n) * R_R_Tj k = n — N + l a i ~ k

N' dj>n où aj indexe le début de la tâche Tj et dj la fin de la tâche Tj sur le serveur Sk.N 'dj> n where aj indexes the start of the Tj task and dj the end of the Tj task on the Sk server.

La valeur EU_R(n,Sk') peut en outre être mise à jour de la façon suivante lors de la détection d'un événement EV=RESA :The EU_R (n, Sk ') value can also be updated as follows when an EV = RESA event is detected:

FÎ/J?(n,Sk) = EU_R(n,Sk) + R_R_TnewFÎ / J? (N, Sk) = EU_R (n, Sk) + R_R_Tnew

Ces exemples ne sont donnés qu'à titre illustratif et d'autres exemples encore peuvent être envisagés pour mettre à jour la valeur EU_R(n,Sk).These examples are only given by way of illustration and still other examples can be envisaged to update the value EU_R (n, Sk).

Claims (17)

REVENDICATIONS 1. Procédé de mise à jour, pour au moins un serveur (Sk) d'un cluster de serveurs, d'au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée d'une ressource informatique sur le serveur ou une capacité maximale du serveur pour ladite ressource informatique, ladite au moins une valeur courante étant destinée à être prise en compte par un dispositif de gestion du cluster de serveurs pour sélectionner, sur réception d'une requête d'exécution d'une tâche informatique associée à une quantité prédéterminée de ladite ressource informatique (R) requise initialement pour son exécution, un serveur dit cible du cluster pour exécuter cette tâche informatique, ledit procédé étant tel que ladite mise à jour est réalisée à chaque détection (F10) d'un événement (EV) parmi un ensemble prédéfini d'événements et :1. Method for updating, for at least one server (Sk) of a cluster of servers, with at least one current value of a variable denoted V chosen from an estimate of an already used quantity of a resource computing on the server or a maximum capacity of the server for said computing resource, said at least one current value being intended to be taken into account by a server cluster management device for selecting, on receipt of a request for execution of 'an IT task associated with a predetermined quantity of said IT resource (R) initially required for its execution, a so-called target server of the cluster to execute this IT task, said method being such that said update is carried out on each detection (F10 ) an event (EV) from a predefined set of events and: — si l'événement détecté (UPD-U) est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, ladite mise à jour (F30,G30) de la valeur courante de la variable V utilise ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;- if the detected event (UPD-U) is a obtaining of a measurement (U_R (n)) of a current actual use of the computer resource on the server, said update (F30, G30) of the value current of the variable V uses said measure of the current actual use of the computer resource on the server; — si l'événement détecté (RESA) est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour (F40,G50) de la valeur courante de la variable V utilise ladite quantité de la ressource informatique réservée ; et — si l'événement détecté (FREE) est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour (F50,G60) de la valeur courante de la variable V utilise ladite quantité de la ressource informatique libérée.- if the detected event (RESA) is a reservation by the management device for an IT task of a quantity of the IT resource on the server, said update (F40, G50) of the current value of the variable V uses said quantity of the reserved computer resource; and - if the detected event (FREE) is a release by a computer task of a quantity of the computer resource on the server, said update (F50, G60) of the current value of the variable V uses said quantity of the IT resource released. 2. Procédé de mise à jour selon la revendication 1 dans lequel si l'événement détecté (UPD-U) est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise en outre au moins une valeur de la variable V notée Vpast mise à jour à un instant précédent.2. The updating method according to claim 1, in which if the detected event (UPD-U) is the obtaining of the measurement of the current actual use of the computer resource on the server, said updating of the current value of the variable V also uses at least one value of the variable V denoted Vpast updated at a previous instant. 3. Procédé de mise à jour selon la revendication 2 dans lequel si l'événement détecté (UPD-U) est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, lors de ladite mise à jour la mesure de l'utilisation réelle courante de la ressource informatique est pondérée par un facteur réel a compris entre 0 et 1, et ladite au moins une valeur Vpast est pondérée par un facteur égal à (1-a).3. The updating method according to claim 2, in which if the detected event (UPD-U) is the obtaining of the measurement of the current actual use of the computer resource on the server, during said updating. the measurement of the current actual use of the computer resource is weighted by a real factor a between 0 and 1, and said at least one value Vpast is weighted by a factor equal to (1-a). 4. Procédé de mise à jour selon la revendication 3 dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation :4. The updating method according to claim 3, in which the variable V update is the estimate EU_R of the quantity already used of the computer resource on the server, and if the event detected is the obtaining of the measurement. of the current actual use of the computer resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation: EU_R(n) = max((l — a)EU_R(n — 1) + aU_R(n), U_R(nj) où n désigne un entier supérieur à 1, EU_R(n — 1) est la valeur de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur mise à jour à un instant précédent, et U_R(n) désigne la mesure obtenue de l'utilisation réelle courante de la ressource informatique sur le serveur.EU_R (n) = max ((l - a) EU_R (n - 1) + aU_R (n), U_R (nj) where n denotes an integer greater than 1, EU_R (n - 1) is the value of the estimate of the quantity already used of the computer resource on the server updated at a previous instant, and U_R (n) denotes the measurement obtained from the current actual use of the computer resource on the server. 5. Procédé de mise à jour selon la revendication 1 dans lequel, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, cette mesure correspond à une utilisation de la ressource informatique sur le serveur par une ou plusieurs tâches informatiques s'exécutant sur le serveur et toutes gérées par le dispositif de gestion du cluster.5. The updating method according to claim 1, in which, if the event detected is the obtaining of the measurement of the current actual use of the computer resource on the server, this measurement corresponds to a use of the computer resource. on the server by one or more IT tasks running on the server and all managed by the cluster management device. 6. Procédé de mise à jour selon la revendication 5 dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur :6. Method for updating according to claim 5, in which the variable V updated is the estimate EU_R of the quantity already used of the computer resource on the server, and if the event detected is the obtaining of the measurement. the actual current use of the IT resource on the server: — la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur comprend une pluralité de valeurs notées U_R(nJ), j=l,...J, associées respectivement à une pluralité de tâches informatiques Tj, j=l,..J, positionnées par le dispositif de gestion du cluster sur le serveur, J et n désignant des entiers supérieurs ou égaux à 1, chaque valeur U_R(nJ) correspondant à une mesure de l'utilisation réelle de la ressource informatique sur le serveur par la tâche Tj ;The measurement of the current actual use of the computer resource on the server comprises a plurality of values denoted U_R (nJ), j = l, ... J, associated respectively with a plurality of computer tasks Tj, j = l, ..J, positioned by the cluster management device on the server, J and n designating integers greater than or equal to 1, each value U_R (nJ) corresponding to a measure of the actual use of the IT resource on the server by the task Tj; — ladite mise à jour (F30) comprend :- said update (F30) includes: o une première étape d'évaluation pour chaque tâche Tj, d'une valeur courante EU_R(n,j) d'une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur par la tâche informatique Tj selon l'équation :a first evaluation step for each task Tj, of a current value EU_R (n, j) of an estimate of an amount already used of the computer resource on the server by the computer task Tj according to the equation: EU_R(n,f) = max((l — a)EU_R (n — IJ) + aU_R(nJ), U_R(njj) ou selon l'équation :EU_R (n, f) = max ((l - a) EU_R (n - IJ) + aU_R (nJ), U_R (njj) or according to the equation: EU_R(nJ) = (1 - a)EU_R (n - l,y) + aU_R(nJ) où :EU_R (nJ) = (1 - a) EU_R (n - l, y) + aU_R (nJ) where: EU_R (n - l,y) désigne une valeur évaluée à un instant précédent de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur par cette tâche informatique Tj ; et a est un facteur réel compris entre 0 et 1 ;EU_R (n - l, y) designates a value evaluated at a previous instant of the estimation of the quantity already used of the IT resource on the server by this IT task Tj; and a is a real factor between 0 and 1; ο une deuxième étape d'évaluation de la valeur courante notée EU_R(ri) de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur selon l'équation :ο a second step of evaluation of the current value noted EU_R (ri) of the estimation of the quantity already used of the computer resource on the server according to the equation: EU )EU) _R(n) = ^EU_R(n,j) /=i ou selon l'équation :_R (n) = ^ EU_R (n, j) / = i or according to the equation: EU_R(n) = maxl '^EU_R(n,j)U_R(n,f)EU_R (n) = maxl '^ EU_R (n, j) U_R (n, f) V=i 7=1 / où J désigne le nombre de tâches informatiques positionnées sur le serveur par le dispositif de gestion du cluster au moment de la deuxième étape d'évaluation.V = i 7 = 1 / where J denotes the number of computer tasks positioned on the server by the cluster management device at the time of the second evaluation step. 7. Procédé de mise à jour selon la revendication 1 dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation :7. The updating method according to claim 1, in which the updated variable V is the estimate EU_R of the quantity already used of the computer resource on the server, and if the event detected is the obtaining of the measurement. of the current actual use of the computer resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation: EU_R(n) = U_R(n) + DR_R(n) où U_R(n) désigne une mesure courante de l'utilisation réelle de la ressource informatique sur le serveur, et DR_R(n) désigne une valeur courante d'une quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur.EU_R (n) = U_R (n) + DR_R (n) where U_R (n) denotes a current measure of the actual use of the computer resource on the server, and DR_R (n) denotes a current value of a quantity of the IT resource reserved for at least one IT task by the management device on the server. 8. Procédé de mise à jour selon la revendication 7 comprenant en outre :8. Updating method according to claim 7, further comprising: — une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur est obtenue selon l'équation :A step for updating the current value DR_R (n) of the quantity of the IT resource reserved for at least one IT task by the management device on the server is obtained according to the equation: DR_R(n) = (1 - p)DR_R(n - 1) où β désigne un facteur réel compris entre 0 et 1 et DR_R(n - 1) désigne une quantité de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent ;DR_R (n) = (1 - p) DR_R (n - 1) where β denotes a real factor between 0 and 1 and DR_R (n - 1) denotes a quantity of the IT resource reserved by the management device on the server obtained at a previous instant; — une étape de détection (G10) de la mise à jour (UPD-D) de la valeur courante DR_R(n) ; et — une étape de mise à jour (G40) de la valeur courante de la variable EU_R selon l'équation :- a detection step (G10) of the update (UPD-D) of the current value DR_R (n); and - an update step (G40) of the current value of the variable EU_R according to the equation: EU_R (n) = U_R(n) + DR_R(n).EU_R (n) = U_R (n) + DR_R (n). 9. Procédé de mise à jour selon la revendication 7 ou 8 comprenant en outre :9. Updating method according to claim 7 or 8 further comprising: — si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité R_R_Tnew de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Tnew et une quantité DR_R(n - l) de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent, — si l'événement détecté est une libération par une tâche informatique d'une quantité R_R_Told de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Told et la quantité DR_R(n - 1) ;- if the detected event is a reservation by the management device for a computer task of a quantity R_R_Tnew of the computer resource on the server, a step of updating the current value DR_R (n) of the quantity of the IT resource reserved for at least one IT task by the management device on the server using said quantity R_R_Tnew and a quantity DR_R (n - l) of the IT resource reserved by the management device on the server obtained at a previous instant, - if the detected event is a release by an IT task of an amount R_R_Told of the IT resource on the server, a step of updating the current value DR_R (n) of the amount of the IT resource reserved for at least a computer task by the management device on the server using said quantity R_R_Told and quantity DR_R (n - 1); et dans lequel ladite mise à jour de la valeur courante de la variable EU_R utilise ladite quantité de la ressource informatique réservée selon l'équation :and in which said updating of the current value of the variable EU_R uses said quantity of the computer resource reserved according to the equation: EU_R(n) = U_R(n) + DR_R(n).EU_R (n) = U_R (n) + DR_R (n). 10. Procédé de gestion de tâches informatiques comprenant, sur réception (E10) par un dispositif (3) de gestion d'un cluster (2) de serveurs (S1,S2,...,SK) d'une requête (REQ(T,R_R_T)) d'exécution d'une tâche informatique (T), cette tâche informatique étant associée à une quantité prédéterminée (R_R_T) d'une ressource informatique (R) requise initialement pour son exécution :10. Method for managing computer tasks comprising, on reception (E10) by a device (3) for managing a cluster (2) of servers (S1, S2, ..., SK) of a request (REQ ( T, R_R_T)) of execution of a computer task (T), this computer task being associated with a predetermined quantity (R_R_T) of a computer resource (R) initially required for its execution: — une étape de détermination (E40), par le dispositif de gestion du cluster, d'au moins un serveur du cluster apte à exécuter la tâche informatique, cette étape de détermination utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;A step of determining (E40), by the cluster management device, of at least one server of the cluster capable of executing the computer task, this step of determining using the predetermined quantity of the computer resource initially required for the execution from the IT task, a maximum capacity of the server for the IT resource and an estimate of an already used amount of the IT resource on the server; — une étape de sélection (E70), par le dispositif de gestion du cluster, d'un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé ;A step of selection (E70), by the cluster management device, of a server to execute the IT task among said at least one server of the determined cluster; ledit procédé étant caractérisé en ce que, pour au moins un serveur du cluster, au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique est mise à jour conformément à un procédé de mise à jour selon l'une quelconque des revendications 1 à 9.said method being characterized in that, for at least one server of the cluster, at least one current value of a variable denoted V chosen from the estimate of the quantity already used of the computer resource on the server and the maximum capacity of the server for the computer resource is updated according to an updating method according to any one of claims 1 to 9. 11. Procédé de gestion selon la revendication 10 dans lequel le procédé de mise à jour est mis en œuvre par le dispositif (3) de gestion du cluster.11. The management method as claimed in claim 10, in which the updating method is implemented by the device (3) for managing the cluster. 12. Procédé de gestion selon la revendication 10 dans lequel le procédé de mise à jour est mis en œuvre par ledit au moins un serveur (Sk), ledit procédé de gestion comprenant en outre une étape de transmission de ladite valeur courante de la variable V mise à jour par ledit au moins un serveur au dispositif de gestion du cluster.12. Management method according to claim 10 wherein the updating method is implemented by said at least one server (Sk), said management method further comprising a step of transmitting said current value of the variable V said at least one server updates the cluster management device. 13. Programme d'ordinateur (PROG) comportant des instructions pour l'exécution des étapes du procédé de mise à jour selon l'une quelconque des revendications 1 à 9 ou des instructions pour l'exécution des étapes du procédé de gestion selon la revendication 10 lorsque ledit programme est exécuté par un ordinateur.13. Computer program (PROG) comprising instructions for the execution of the steps of the update method according to any one of claims 1 to 9 or instructions for the execution of the steps of the management method according to claim 10 when said program is executed by a computer. 14. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de mise à jour selon l'une quelconque des revendications 1 à 9 ou des instructions pour l'exécution des étapes du procédé de gestion selon la revendication 10.14. recording medium readable by a computer on which a computer program is recorded comprising instructions for the execution of the steps of the updating method according to any one of claims 1 to 9 or instructions for the execution of the steps of the management method according to claim 10. 15. Dispositif de gestion (3) d'un duster (2) de serveurs (S1,...,SK) comprenant :15. Management device (3) for a duster (2) of servers (S1, ..., SK) comprising: — un module (3A) de réception ;- a reception module (3A); — un module (3B) de détermination, activé sur réception par le module de réception d'une requête d'exécution d'une tâche informatique, ladite tâche informatique étant associée à une quantité prédéterminée d'une ressource informatique requise initialement pour son exécution, le module de détermination étant configuré pour déterminer au moins un serveur du duster apte à exécuter la tâche informatique en utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;A determination module (3B), activated on reception by the reception module of a request for execution of an IT task, said IT task being associated with a predetermined quantity of an IT resource initially required for its execution, the determination module being configured to determine at least one server of the duster capable of performing the computer task using the predetermined quantity of the computer resource initially required for the execution of the computer task, a maximum capacity of the server for the computer resource and an estimate of a quantity already used of the computer resource on the server; — un module (3C) de sélection configuré pour sélectionner un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé par le module de détermination ;- a selection module (3C) configured to select a server to execute the IT task among said at least one server in the cluster determined by the determination module; ledit dispositif de gestion étant caractérisé en ce qu'il comprend en outre :said management device being characterized in that it further comprises: — un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et — un module de mise à jour activé pour au moins un serveur du cluster, et configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection d'un événement parmi l'ensemble prédéfini d'événements par le module de détection, et configuré pour :- a detection module configured to detect a predefined set of events; and - an update module activated for at least one server of the cluster, and configured to update at least one current value of a variable denoted V chosen from the estimate of the quantity already used of the computer resource on the server and the maximum capacity of the server for the IT resource, said update module being activated on each detection of an event from the predefined set of events by the detection module, and configured for: o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;o if the detected event is a measurement (U_R (n)) of a current actual use of the computer resource on the server, update the current value of the variable V using said measurement of the current actual use of the computer resource on the server; o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour ia valeur courante de la variableo if the detected event is a reservation by the management device for a computer task of a quantity of the computer resource on the server, update the current value of the variable V using said quantity of the reserved computer resource; and o if the detected event is a release by a computer task of a quantity of the computer resource on the server, update the current value of the variable V en utilisant ladite quantité de la ressource informatique libérée.V using said quantity of the computer resource released. 16. Serveur (Sk) appartenant à un cluster (2) de serveurs géré par un dispositif (3) de gestion, ledit serveur étant apte à exécuter au moins une tâche informatique gérée par ledit dispositif de gestion, ladite au moins une tâche informatique utilisant lors de son exécution au moins une ressource informatique du serveur, ledit serveur comprenant :16. Server (Sk) belonging to a cluster (2) of servers managed by a management device (3), said server being able to execute at least one IT task managed by said management device, said at least one IT task using during its execution at least one computer resource of the server, said server comprising: — un module de mesure configuré pour mesurer une utilisation réelle de la ressource informatique sur le serveur ;- a measurement module configured to measure an actual use of the IT resource on the server; — un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et — un module de mise à jour configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur et une capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection par le module de détection d'un événement parmi l'ensemble prédéfini d'événements et configuré pour :- a detection module configured to detect a predefined set of events; and an update module configured to update at least one current value of a variable denoted V chosen from an estimate of an amount already used of the computer resource on the server and a maximum capacity of the server for the resource. IT, said update module being activated on each detection by the event detection module from among the predefined set of events and configured for: o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;o if the detected event is a measurement (U_R (n)) of a current actual use of the computer resource on the server, update the current value of the variable V using said measurement of the current actual use of the computer resource on the server; o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variableo if the detected event is a reservation by the management device for a computer task of a quantity of the computer resource on the server, update the current value of the variable V using said quantity of the reserved computer resource; and o if the detected event is a release by a computer task of a quantity of the computer resource on the server, update the current value of the variable V en utilisant ladite quantité de la ressource informatique libérée ; et — un module de transmission, configuré pour transmettre au dispositif de gestion ladite valeur courante de la variable V mise à jour.V using said quantity of the computer resource released; and a transmission module, configured to transmit to the management device said current value of the updated variable V. 17. Système informatique (1) comprenant :17. Computer system (1) comprising: — un cluster (2) de serveurs comprenant une pluralité de serveurs, chaque serveur comprenant au moins une ressource informatique permettant l'exécution de tâches informatiques ;- a cluster (2) of servers comprising a plurality of servers, each server comprising at least one IT resource allowing the execution of IT tasks; — un dispositif (3) de gestion du cluster de serveurs ;- a device (3) for managing the server cluster; dans lequel ledit dispositif de gestion du cluster est conforme à la revendication 15 et/ou au moins un serveur du cluster est conforme à la revendication 16.wherein said cluster management device is in accordance with claim 15 and / or at least one server in the cluster is in accordance with claim 16. 1/3 v1/3 v
FR1662694A 2016-12-16 2016-12-16 UPDATE METHOD AND DEVICE Active FR3060791B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1662694A FR3060791B1 (en) 2016-12-16 2016-12-16 UPDATE METHOD AND DEVICE
PCT/FR2017/053585 WO2018109407A1 (en) 2016-12-16 2017-12-14 Method and device for updating

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1662694 2016-12-16
FR1662694A FR3060791B1 (en) 2016-12-16 2016-12-16 UPDATE METHOD AND DEVICE

Publications (2)

Publication Number Publication Date
FR3060791A1 true FR3060791A1 (en) 2018-06-22
FR3060791B1 FR3060791B1 (en) 2020-02-28

Family

ID=58669884

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1662694A Active FR3060791B1 (en) 2016-12-16 2016-12-16 UPDATE METHOD AND DEVICE

Country Status (2)

Country Link
FR (1) FR3060791B1 (en)
WO (1) WO2018109407A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324872B (en) * 2018-09-21 2020-12-25 北京隆普智能科技有限公司 Method and system for verifying virtual machine change request

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066331A1 (en) * 2003-09-19 2005-03-24 Shuji Inoue Dynamic resource management for distributed retrieval system for security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066331A1 (en) * 2003-09-19 2005-03-24 Shuji Inoue Dynamic resource management for distributed retrieval system for security

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YAO YI ET AL: "OpERA: Opportunistic and Efficient Resource Allocation in Hadoop YARN by Harnessing Idle Resources", 2016 25TH INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION AND NETWORKS (ICCCN), IEEE, 1 August 2016 (2016-08-01), pages 1 - 9, XP032961038, DOI: 10.1109/ICCCN.2016.7568553 *

Also Published As

Publication number Publication date
WO2018109407A1 (en) 2018-06-21
FR3060791B1 (en) 2020-02-28

Similar Documents

Publication Publication Date Title
US11171845B2 (en) QoS-optimized selection of a cloud microservices provider
FR2982971A1 (en) METHOD AND SYSTEM FOR PROVIDING AN APPLICATION BY A VIRTUAL MACHINE AND COMPUTER-READABLE STORAGE MEDIUM FOR EXECUTING THE METHOD
FR2934447A1 (en) METHOD OF COMMUNICATING BETWEEN A PLURALITY OF NODES, THE NODES BEING ORGANIZED FOLLOWING A RING
FR2958059A1 (en) METHOD, COMPUTER PROGRAM, AND TASK EXECUTION VALIDATION DEVICE IN EVOLUTIVE COMPUTER SYSTEMS
WO2014072628A1 (en) Method, device and computer programme for the placement of tasks in a multi-core system
EP3338409A1 (en) Method for dynamically managing a network service in a communication network
WO2016198762A1 (en) Method and system for determining a target configuration of servers for deployment of a software application
WO2021260312A1 (en) Method for scheduling tasks in a processing system, associated scheduling device
FR3060791A1 (en) METHOD AND DEVICE FOR UPDATING
EP2667302B1 (en) Method for managing the starting of instances of applications on virtual machines of a distributed network
FR2907623A1 (en) DIGITAL RIGHTS MANAGEMENT BASED ON MODIFICATIONS TO THE ENVIRONMENT OF A DEVICE.
WO2016092218A1 (en) Means for determining a level of relevance of a resource in an information-processing system
FR3078462A1 (en) METHOD AND DEVICE FOR CONTROLLING ACCESS TO A RESOURCE OF A COMPUTER SYSTEM BY SOFTWARE APPLICATIONS
FR2995424A1 (en) METHOD AND DEVICE FOR DEPTH TIME DEPTH FOR A PROCESSING UNIT IN AN INFORMATION PROCESSING SYSTEM
FR3064772A1 (en) METHOD FOR ASSISTING DETECTION OF SERVICES DENIS ATTACKS
EP3539259B1 (en) Method and device for updating a predictive model of a variable relating to a mobile terminal
EP3437406B1 (en) Method for managing the allocation of carrier frequencies
FR2854753A1 (en) Low resolution version digital document archiving method for use in multi-resolution digital document distribution system server, involves sending request to processing system destination for obtaining low resolution version of document
EP4113297A1 (en) Method for managing work in a computer system and associated system
EP3893470B1 (en) Method for optimising update of connected objects and application module
EP2402871A1 (en) Management of the place of storage of data in a distributed storage system
EP2860630A1 (en) Data transfer method in a dynamic environment
FR3053199A1 (en) STATISTICAL SERVER FOR OPTIMIZING CUSTOMER-SERVER REQUESTS
EP3228070B1 (en) Method of managing contents in a contents distribution network
WO2024083978A1 (en) Method for processing a request to execute a service in a communication network, and corresponding method for validating the request, intermediate entity, validating entity, system and computer program

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20180622

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8