Available on your favorite podcast platform.
In this episode, we are joined by Blake Miner
IntroductionBlake’s background, what type of work he does, company information, etc.Data has substantial valueWhat is a database?General overview - store data, process it, and look it up laterImportant that data stays intact in the event of a app/system crash, powerloss, etc.
Important that conflicting concurrent changes are handled appropriatelyWhat safety guarantees do I get? -> Transactions / ACID - Atomicity,Consistency, Isolation, Durability
atomicity -> abortability guarantee for a group of writes (i.e. uponfailure)
consistency -> guarantee that certain (app-specific; sometimesdatabase-specific) constraints are not violated
isolation -> describes how database handles concurrent edits of the samedata. Serializable is the strongest guarantee. Snapshot isolation is very
common.
durability -> storage guarantee (i.e. upon commit, data has fsync‘ed todisk). Study: SSDs get 1 bad block in first 4 years; disaster could wipe
out an entire data center; nothing is perfect.
Storage / lookup: Data models / data structuresDerived data; cachingConcurrency; consistency & isolationReactivity/Realtimetradeoffs between reacting to DB changes vs using a message busstreaming platforms such as NATS Jetstream and KafkaSQLTables and rows -> array of structsSQL -> Declarative query language (query engine determines implementationdetails at runtime)
B-tree IndexesNoSQL Databases“NoSQL” -> a marketing termRedisData structure storeIn-memory vs. disk-basedEmbedded databases (i.e. API vs. commands over TCP)Designing Data-Intensive Applications by MartinKleppmann. Blake recommends this book.
Discuss this episode at our