Transactions: Over used or misunderstood?
Transaction processing has been at the heart of computing systems for over 4 decades: they provide an easily understood fault tolerance mechanism that ensures data consistency in the presence of failures and concurrent access. Many of the things we do each day are driven by transaction systems, yet others are not when perhaps they should. Why is this? Transactions, and specifically the two-phase commit they typically use, have come in for a lot of bad press over the years, with people citing performance overhead as a sufficient justification for not using them. In this presentation we’ll look at transactions and try to address some of the concerns, whilst at the same time indicating where they should not be used. We’ll also look at how transactions are evolving into new forms to address changes in middleware, such as Web Services, NoSQL, REST and mobile infrastructures.
I work for Red Hat, where I lead JBoss technical direction and research/development. Prior to this I was SOA Technical Development Manager and Director of Standards. I was Chief Architect and co-founder at Arjuna Technologies, an HP spin-off (where I was a Distinguished Engineer). I’ve been working in the area of reliable distributed systems since the mid-80’s. My PhD was on fault-tolerant distributed systems, replication, and transactions. I’m also a professor at Newcastle University.