Chuzhe Tang | Ad Hoc Transactions in Web Applications: The Good, the Bad, and the Ugly | #8
DisseminateJuly 25, 2022x
8
32:1529.54 MB

Chuzhe Tang | Ad Hoc Transactions in Web Applications: The Good, the Bad, and the Ugly | #8

Summary:

Many transactions in web applications are constructed ad-hoc in the application code. For example, developers might explicitly use locking primitives or validation procedures to coordinate critical code fragments. In this episode, Chuzhe tells us these ad-hoc transactions, database operations coordinated by application code.


Until Chuzhe’s work, little was known about them. In this episode he chats about the first comprehensive study on ad hoc transactions. By studying 91 ad hoc transactions among 8 popular open-source web applications, he and his co-authors found that (i) every studied application uses ad hoc transactions (up to 16 per application), 71 of which play critical roles; (ii) compared with database transactions, concurrency control of ad hoc transactions is much more flexible; (iii) ad hoc transactions are error-prone-53 of them have correctness issues, and 33 of them were confirmed by developers; and (iv) ad hoc transactions have the potential to improve performance in contentious workloads by utilizing application semantics such as access patterns. 


During the interview he discusses the implications of ad hoc transactions to the database research community.


Questions:

0.58: What is concurrency control and why is it important for web applications?

3:00: How do applications today use concurrency control? Do they use classical database transactions? Or do they use other approaches?

4:09: How are these ad-hoc transactions used in practice? What was the primary focus of this paper?

5:13: You mentioned you studied various open-source applications to investigate ad-hoc transactions, which applications did you look at?

6:16: So what did you find when studying these different web applications? What do these ad-hoc transactions look like in the wild? Can you elaborate on how they differ 

8:59: When you compared ad-hoc transactions vs classic transactions? Are comparing potentially incorrect ad-hoc transactions vs correct transactions, if so are performance gains just not accepting it might be potentially incorrect at some point?

10:25: We’ve spoken about how ad-hoc transactions were incorrect. Can we talk about the root cause of this, what were the common mistakes people were making with ad-hoc transactions?

12:16: What was the performance gain of ad-hoc transactions?

15:47: Are there other studies of transactions in the wild? If so, how do their findings compare to yours?

18:38: What does all this mean in practice? Why don’t people just use database transactions? What puts people off using them and thinking I’ll just roll my own?

21:10: Where do you see your findings having the biggest impact?

24:42: What do you have planned for future research?

26:46: What was the most interesting or perhaps unexpected lesson you learnt whilst working on ad-hoc transactions?

29:13: What attracted you to database concurrency control research?

30:53: What is the one key thing the listener should take away from your research?


Links:

Presentation

Paper

Chuzhe's Website

Feral Concurrency Control

What are we doing with our lives? Nobody cares about our concurrency control research



Hosted on Acast. See acast.com/privacy for more information.