Interesting week going over transaction and locks. All very new material for me, and I’ve had to read and reread some of it to make sure I’m actually understanding it. The assignment itself wasn’t that hard, but there were both typos and inconsistencies that make it difficult to get through it. Of all the weeks, and all the assignments, this has been the most taxing one because of that.
Transactions and locks, and MVCC are subjects I had never studied, or worked with. I’m glad those are solved problems, and that the only part I need to worry about is when/how they should be used which is already hard on its own. They’re not particularly interesting, but I understand why they’re needed. The relevance of keeping data consistent across reads and write.
Understanding that was perhaps the best part of the assignment. Creating the transaction and rollback mechanisms was fun, despite the different setbacks with the unclear assignment. Still, I do think that as much as I’ve learned to like databases and try to understand how they work, DBA work is just not that interesting to me. Mostly because of this type of issues. As developer, I’ll need to learn why this things work the way they do, and how to leverage them on my code. But I would not want to sit down and solve for this sort of optimization or problem in a daily basis.
Still, I’m happy I’ve learned about it. I think transactions, locks, concurrency are very important subjects. Understanding the trade-offs and the performance implications that go along with it are essential for software development, specially in today’s world when the programs we write demand to be both fast, and accurate. ACID as a paradigm is becoming too important to dismiss or gloss over.