Microtune est un agent autonome, qui controle dynamiquement la taille du cache mémoire utilisé par une base de données relationnelle (testé sur MariaDB).
Son objectif (FinOps) est de réduire au maximum l’emprunte mémoire tout en respectant une contrainte de latence maximum à ne pas dépasser. Cet agent travaille de manière externe à la base de donnée avec un lien SQL pour changer le paramètre tampon mémoire. Pendant le réglage en ligne (ex. BDD en production), il ne nécessite pas d’accéder à l’information de latence vue par l’application cliente.
Ce projet est un POC réalisé dans le cadre de travaux de recherche mené conjointement avec des experts en base de données et de techniques d’apprentissage par renforcement ainsi qu’un algorithme de « Bandits ». Le dépôt GitHub contient le jeu de données utilisé pour l’apprentissage de l’agent et la reproduction des expérimentations décrites dans le papier de recherche permettant de comparer divers algorithmes comme LinUCB, NeuralLinUCB, PPO, DQN, A2C (tous les algos NN fournis par Stablebaseline3). Le code source est sous licence MIT et les jeux de données sont sous licence CC-BY-SA-4.0
Le code source est disponible sur GitHub sous les licences MIT et CC-BY-SA-4.0.