[]

Synchronisation fiable et efficace pour le Cloud

Proposé par: Claire Hanen
Directeur de thèse: Jean-Francois Pradat-Peyre
Directeur de thèse: Jean-Francois Pradat-Peyre
Unité de recherche: UMR 7606 Laboratoire d'informatique de Paris 6

Domaine:
Secteur:
Thème:
Sous-thème:

Projet

Comme toute organisation répartie, et c’est le cas du cloud, un fonctionnement efficace et fiable implique une synchronisation entre applications afin de gérer et d’optimiser l’accès concurrents à l’ensemble des données partagées.

Cette synchronisation est faite à l’aide d’algorithmes et de mécanismes qui prennent en compte différents critères dont celui de la mobilité. Ces algorithmes sont donc complexes dans les clouds car ils répondent à de nombreuses exigences en terme de performance, de sécurité et de sûreté de fonctionnement. Aussi, du fait des enjeux importants et des attentes liés à la mise en œuvre d’un cloud, il est nécessaire de pouvoir analyser ces algorithmes et de garantir que seuls des algorithmes soigneusement testés seront mis en service. Ceci pose de nombreux problèmes de recherche que l’état de l’art actuel du domaine ne permet pas de résoudre efficacement.

Le premier pan de la thèse proposée est de développer des méthodes et des outils de vérification et de test adaptés à la vérification d’algorithmes sur de telles architectures mobiles, domaine qui à ce jour reste relativement vierge mais est porteur de nombreuses retombées théoriques et technologiques.

A un niveau plus macroscopique, si les primitives de synchronisation sont nécessaires et permettent d’obtenir le respect de propriétés attendues, certaines primitives et disciplines de synchronisation facilitent ou, au contraire, complexifient la mise au point d’applications reparties basées sur ces primitives. Différentes études ont ainsi montrées que sans discipline, la seule utilisation de verrous ne permet pas facilement de construire des applications réparties à large échelle et qu’il faut se centrer sur la notion d’atomicité et raisonner au niveau moniteur (à la Hoare) plutôt qu’au niveau verrou et sémaphore : sans disciplines, certaines suites d’actions ne sont pas protégées alors qu’elles devraient l’être ou, a contrario, d’autres sont protégées alors que cela n’est pas nécessaire ; ceci conduit selon le cas à un défaut de synchronisation ou à une perte importante de performance.

Le second pan de cette thèse est d’étudier quelles disciplines de synchronisation sont adaptées à des applications du cloud avec comme attendu la définition de paradigmes simples et efficaces pour la construction d’applications pour le cloud fiables et correctes a priori.

Enjeux

Le paradigme du Cloud Computing définit un accès dynamique à un ensemble de ressources de calculs ou de stockages pour lesquels les possibilités de configuration sont considérables. Ces architectures en Clouds sont donc caractérisées par un très fort caractère dynamique : d’une part, les ressources offertes évoluent au cours du temps et, d’autre part, les serveurs offrant les ressources et hébergeant les ressources et les applications peuvent se déplacer en fonction de nombreux paramètres comme la charge, la consommation électrique ou le besoin de proximité politique.

Ainsi, comme toute organisation répartie, et c’est le cas du cloud, un fonctionnement efficace et fiable d’une telle architecture implique une synchronisation entre applications afin de gérer et d’optimiser l’accès concurrents à l’ensemble des données partagées. Cette synchronisation est faite à l’aide d’algorithmes et de mécanismes qui prennent en compte différents critères dont celui de la mobilité. Ces algorithmes sont donc complexes car ils répondent à de nombreuses exigences en terme de performance, de sécurité et de sûreté de fonctionnement. Aussi, du fait des enjeux importants et des attentes liés à la mise en œuvre d’un cloud, il est nécessaire de pouvoir analyser ces algorithmes et de garantir que seuls des algorithmes soigneusement testés seront mis en service. Ceci pose de nombreux problèmes de recherche que l’état de l’art actuel du domaine ne permet pas de résoudre efficacement.

A un niveau plus macroscopique, si les primitives de synchronisation sont nécessaires et permettent d’obtenir le respect de propriétés attendues, certaines primitives et disciplines de synchronisation facilitent ou, au contraire, complexifient la mise au point d’applications reparties basées sur ces primitives. Différentes études ont ainsi montrées que sans discipline, la seule utilisation de verrous ne permet pas facilement de construire des applications réparties à large échelle et qu’il faut se centrer sur la notion d’atomicité et raisonner au niveau moniteur (à la Hoare) plutôt qu’au niveau verrou et sémaphore : sans disciplines, certaines suites d’actions ne sont pas protégées alors qu’elles devraient l’être ou, a contrario, d’autres sont protégées alors que cela n’est pas nécessaire ; ceci conduit selon le cas à un défaut de synchronisation ou à une perte importante de performance.

Ouverture à l'international

Le financement de cette thèse se fait dans le cadre de l’Université Numérique de Région (UNR Ile de France) qui a une politique reconnue d’ouverture à l’internationale

Remarques additionnelles

FINANCEMENT : UNPIdF et INEO GDF SUEZ

CO-ENCADREMENT : Souheib Baarir et Lom Messan Hillah

BIBLIOGRAPHIE :

[1] Takayuki Usui, Reimer Behrends, Jacob Evans, Yannis Smaragdakis, Adaptive locks : Combining transactions and locks for efficient concurrency, Journal of Parallel and Distributed Computing, Volume 70, Issue 10, Transactional Memory, October 2010, Pages 1009-1023, ISSN 0743-7315.

[2]Cormac Flanagan, Stephen N. Freund, Atomizer : A dynamic atomicity checker for multithreaded programs, Science of Computer Programming, Volume 71, Issue 2, 1 April 2008, Pages 89-109, ISSN 0167-6423.

[3]James R. Larus. 2011. Programming the cloud. In Proceedings of the 16th ACM symposium on Principles and practice of parallel programming (PPoPP ’11). ACM, New York, NY, USA

[4]Sérgio Miguel Fernandes and Joao Cachopo. 2011. Lock-free and scalable multi-version software transactional memory. In Proceedings of the 16th ACM symposium on Principles and practice of parallel programming (PPoPP ’11). ACM, New York, NY, USA

Se connecter

Attention! Moteur de recherche efficace!
EDITE de Paris | SPIP | Remarques | Se connecter | Plan du site | Suivre la vie du site Atom 1.0 | | | Facebook | Twitter | LinkedIn