Software transactional memory for distributed and event-based systems

Heiko Sturzrehm · 2010

Avec la disponibilité de systèmes multi-cœur, de nouveaux mécanismes de contrôle de concurrence ont été développés. Un de ces mécanismes, la mémoire transactionnelle logicielle (STM), utilise une approche optimise pour l’exécution du fragment de code à l’intérieur d’une transaction. Dans cette thèse, nous proposons l’application de la technologie STM conjointement avec les traitements de flux d’événements (ESP). Dans des applications ESP, les événements fluent à travers un réseau de composantes qui exécutent différents types d’opérations sur les transactions, comme par exemple du filtrage de l’agrégation ou des transformations. Notre approche simplifie la parallélisation des composantes avec état, en réduisant la complexité ainsi que la sensibilité aux erreurs de la programmation parallèle. En plus, nous proposons une STM distribuée directionnelle qui permet de passer des transactions d’une composante aux composantes en aval attachées. Pour souligner les avantages de nos approches et développements, nous présentons plusieurs scénarios d’utilisation. En outre, nous présentons notre travail de recherche, visant à construire un support STM peu pesant pour le langage de programmation C en utilisant LLVM. Le framework finalement obtenu permet de produire des applications extrêmement efficientes basées sur des STM, sans que le développeur doive s’occuper trop des aspects de la programmation parallèle. Le système est très flexible et peut être appliqué à un grand nombre d’STMs basées sur C. Finalement, dans le troisième aspect de cette thèse, nous analysons l’approche des STMs pour résoudre des problèmes de concurrence et nous proposons le motif de conception «Transactional Object». Le but de cette proposition est de présenter aux designers d’applications ainsi qu’aux programmeurs un plan détaillé pour développer et travailler avec des STMs.

Read the paper · More papers on PaperTik