L’essor de l’informatique en nuage a permis aux administrations et entreprises de stocker d’énormes jeux de données. Aujourd’hui, l’un des goulots d’étranglement majeurs pour les performances de traitement de ces données est le ramasse-miette des machines virtuelles langage comme la machine virtuelle Java. Les ramasse-miettes doivent aujourd’hui scanner des tas de plusieurs dizaines de giga-octets de mémoire, ce qui engendre des temps de pause intolérable pour l’utilisateur. Une étude récente que nous avons menée conjointement avec l’université de Neuchatel a montré que la base de donnée NoSQL Cassandra pouvait présenter des temps de pause allant jusqu’à 6 minutes avec un tas d’un centaine de giga-octets. Le but du stage est de proposer et d’étudier un nouvel algorithme de ramasse-miette pouvant supporter de grandes charges mémoire. L’algorithme part du principe que le ramasse-miette peut scanner les objets parallèlement à l’application si ces objets ne sont pas accédés par l’application en même temps. Le but du stage va donc être de trouver un algorithme permettant de séparer le tas en deux parties, l’une avec les objets accédés par l’application, l’autre avec les objets non-accédés. Les développements seront effectués dans la machine virtuelle de recherche VMKit en C++. Il est donc demandé au candidat d’avoir un excellent niveau de programmation et des connaissances en collection mémoire.