Conception efficace d’un framework de gestion efficaces des I/O pour une JVM

## David Bromberg, Floréal Morandat - Utiliser JNA pour remonter les compteurs matériels - lister ces compteurs et choisir ceux qui semblent pertinents - Ces compteurs étant plate-forme dépendants, créer une classe d’abstraction - On dispose déjà d’une “petite” librairie pour affecter un thread à un coeur - Étendre la librairie pour permettre à un thread de migrer - Prévoir un jeu d’annotation léger (2 semble convenir) pour décrire un l’utilité d’un thread/exécuteur (cad s’il est plutôt calculatoire ou plutôt reseau) - Écrire un Canal Asynchrone (si le temps le permet, l’étendre aux canaux synchrones) pour transférer toutes les requêtes réseau sur un thread particulier (à la MegaPipe [@megapipe] ou IsoStack @isostack) - Écrire des politiques de placement des threads en combinant les 3 points précédents - Injecter ces politiques sur des applications déjà existantes (tomcat, torrent, etc …) - Évaluer ces politiques

Références

Han, S., Marshall, S., Chun, B.-G., & Ratnasamy, S. (2012). MegaPipe: a new programming interface for scalable network I/O. In Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation, OSDI’12 (135–148). Berkeley, CA, USA: USENIX Association. [1] Shalev, L., Satran, J., Borovik, E., & Ben-Yehuda, M. (2010). IsoStack—Highly Efficient Network Processing on Dedicated Cores. In USENIX ATC ’10: USENIX Annual Technical Conference. [1]