Faculté des sciences

Software transactional memory for distributed and event-based systems

Sturzrehm, Heiko ; Felber, Pascal (Dir.) ; Fetzer, Christof (Codir.) ; Guerraoui, Rachid (Codir.) ; Kropf, Peter (Codir.)

Thèse de doctorat : Université de Neuchâtel, 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... Plus

Ajouter à la liste personnelle
    Résumé
    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.
    Summary
    With the availability of end-user multi-core systems, new concurrency control systems have been developed. One of them, software transactional memory (STM) uses optimistic execution of code within transactions. In this thesis, we propose the application of the STM technology with event stream processing(ESP). In ESP applications, events flow through a network of components that perform various types of operations, e.g., filtering, aggregation, transformation. Our approach, simplifie the parallelization of stateful components by reducing the complex and error-prone parallel programing to a minimum. Additionally, we present a directed distributed STM, which can extend the transactions from one component to the attached downstream components. To underline the advantages of our approaches and developments, we depict several use cases as well as a basic guideline for them. Furthermore, we present our work in building a lightweight STM support for the unmanaged programming language C based on LLVM. The resulting framework can produce highly efficient STM-based applications without letting the programmer deal with too much parallelization aspects. The system is very flexibl and can be used with a large group of C-based STMs. In the third aspect of this thesis we analyze the STM approach for solving concurrency problems and propose a “Transactional Object” design pattern. With this proposal we want to support application designers and STM programmers with a blueprint to simplify their work.