June 13, 2020

Transactions: myths, surprises and opportunities

Youtube

Speaker

Martin Kleppmann

Thoughts

This was the first talk from Martin that I saw, he is very thoughtful and explains complex ideas somehow easily. I think because of Datomic I got more interest in databases, I did the Day of Datomic course in person at Cognitect and it was very nice to meet so many people interested in databases.

Looks like the software engineers in general does not like this subject very much, however seems like the job of building and dealing with "information systems" will require you to know more and more about these tools.

I will keep watching materials from Martin now. Luckily, I already had his book. Looking forward to read it.

Quotes

Durability:

  • archive tape

  • fysnc to disk

  • replication

Consistency:

  • Not related to C in CAP theorem

  • "tossed in to make the acronym work" (? lol)

  • property of how the application use the database not the database itself

Atomicity:

  • not about concurrency!

  • handling faults (crashes)

  • transactions = (multi-object) atomicity, rollback writes on abort

  • Abortability is better name rather than Atomicity

Isolation:

  • Serializable?

  • Read committed. You read only after the operation has been committed.

  • Snapshot isolation. Try to prevent read skew

  • Repeatable read. Try to prevent read skew

Recommendations

  1. Create transaction boundaries in your applications.

  2. Avoid transactions across services

  3. Learn the isolation levels defaults of your database and the implications

Tags: database distributed