Database School

Try Hard Studios

Join database educator Aaron Francis as he gets schooled by database professionals.

  1. 14H AGO

    Rewriting SQLite from prison with Preston Thorpe

    In this episode of Database School, Aaron talks with Preston Thorpe, a senior engineer at Turso who is currently incarcerated, about his incredible journey from prison to rewriting SQLite in Rust. They dive deep into concurrent writes, MVCC, and the challenges of building a new database from scratch while discussing redemption, resilience, and raw technical brilliance. Follow Preston and Turso:LinkedIn: https://www.linkedin.com/in/PThorpe92Preston's Blog: https://pthorpe92.devGitHub: https://github.com/PThorpe92Turso: https://turso.tech Follow Aaron:Twitter/X:  https://twitter.com/aarondfrancis Database School: https://databaseschool.comDatabase School YouTube Channel: https://www.youtube.com/@UCT3XN4RtcFhmrWl8tf_o49g  (Subscribe today)LinkedIn: https://www.linkedin.com/in/aarondfrancisWebsite: https://aaronfrancis.com - find articles, podcasts, courses, and more. Chapters:00:00 - Intro and Preston’s story02:13 - How Preston learned programming in prison06:06 - Making his parents proud and turning life around09:01 - Getting his first job at Unlock Labs10:47 - Discovering Turso and contributing to open source12:53 - From contributor to senior engineer at Turso22:27 - What Preston works on inside Turso24:00 - Challenges of rewriting SQLite in Rust26:00 - Why concurrent writes matter27:57 - How Turso implements concurrent writes35:02 - Maintaining SQLite compatibility37:03 - MVCC explained simply43:40 - How Turso handles MVCC and logging46:03 - Open source contributions and performance work46:23 - Implementing live materialized views50:55 - The DBSP paper and incremental computation52:55 - Sync and offline capabilities in Turso56:45 - Change data capture and future possibilities1:02:01 - Implementing foreign keys and fuzz testing1:06:02 - Rebuilding SQLite’s virtual machine1:08:10 - The quirks of SQLite’s codebase1:10:47 - Preston’s upcoming release and what’s next1:14:02 - Gratitude, reflection, and closing thoughts

    1h 18m
  2. OCT 23

    A million transactions per second: building TigerBeetle with Joran Greef

    In this episode, Aaron talks with Joran Greef, CEO and creator of TigerBeetle, the world’s first financial transactions database. Joran takes us on a deep dive of on how TigerBeetle brings double-entry accounting principles directly into the database layer to achieve extreme correctness, performance, and fault tolerance at scale. Follow Joran and TigerBeetle:Twitter/X: https://twitter.com/jorandirkgreefWebsite: https://tigerbeetle.comGitHub: https://github.com/tigerbeetle/tigerbeetleTiger Style: https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.mdYouTube: https://www.youtube.com/@UC3TlyQ3h6lC_jSWust2leGg  Follow Aaron:Twitter/X:  https://twitter.com/aarondfrancis Database School: https://databaseschool.comDatabase School YouTube Channel: https://www.youtube.com/@UCT3XN4RtcFhmrWl8tf_o49g  (Subscribe today)LinkedIn: https://www.linkedin.com/in/aarondfrancisWebsite: https://aaronfrancis.com - find articles, podcasts, courses, and more. Chapters:00:00 - Introduction and crossover between accounting and databases01:50 - Meet Joran Greef and the origins of TigerBeetle02:55 - What makes TigerBeetle different from general purpose databases04:38 - The founding story and the 5,000-year history of transactions07:42 - How modern commerce became highly transactional10:06 - Recognizing the limits of general purpose databases13:18 - From distributed systems to payment infrastructure17:01 - Discovering bottlenecks in traditional database performance19:58 - Why traditional databases can’t scale for microtransactions23:05 - Introducing double-entry accounting concepts25:20 - How double-entry accounting mirrors database design31:35 - Modeling ledgers and event sourcing in Tiger Beetle35:02 - Why TigerBeetle outperforms Postgres and MySQL40:05 - Batching transactions for massive throughput47:09 - Client-side batching and zero-copy efficiency50:04 - Handling contention and concurrency internally56:03 - Ensuring correctness and atomicity in transactions57:17 - Designing for mission-critical systems and reliability1:00:50 - Building safety through deterministic simulation testing1:04:55 - Detecting and recovering from storage faults1:10:00 - How TigerBeetle prevents data corruption1:17:01 - Distributed replication and self-healing data1:20:08 - Who’s using TigerBeetle and how it’s structured as a company1:24:01 - How to learn more and get involved with TigerBeetle1:26:15 - Closing thoughts and where to find Joran online

    1h 28m
  3. SEP 22

    PlanetScale Postgres with CEO Sam Lambert

    Sam Lambert, my former boss at PlanetScale, talks to me about PlanetScale moving from a MySQL company to now also having a Postgres offering. Sam shares why PlanetScale decided to move to Postgres, how MySQL and Postgres are different at a technical level, and how the change has impacted the company culture. Stay to the end for a special surprise! PlanetScale Metal Episode: https://youtu.be/3r9PsVwGkg4Join the waitlist to be notified of the MySQL for Developers release on Database School: https://databaseschool.com/mysql Follow Sam: PlanetScale: https://planetscale.comTwitter: https://twitter.com/isamlambert Follow Aaron:Twitter:  https://twitter.com/aarondfrancis LinkedIn: https://www.linkedin.com/in/aarondfrancisWebsite: https://aaronfrancis.com - find articles, podcasts, courses, and more.Database School: https://databaseschool.comDatabase School YouTube Channel: https://www.youtube.com/@UCT3XN4RtcFhmrWl8tf_o49g (Subscribe today) Chapters:00:00 - Inaugural episode on this channel01:46 - Introducing Sam Lambert and his background03:04 - How PlanetScale built on MySQL and Vitess06:10 - Explaining the layers of PlanetScale’s architecture09:57 - Node lifecycles, failover, and operational discipline12:02 - How Vitess makes sharding work14:21 - PlanetScale’s edge network and resharding19:02 - Why downtime is unacceptable at scale20:04 - From Metal to Postgres: the decision process23:06 - Why Postgres vibes matter for startups27:04 - How PlanetScale adapted its stack for Postgres34:38 - Entering the Postgres ecosystem and extensions41:02 - Permissions, security, and reliability trade-offs45:04 - Building Ni: a Vitess-style system for Postgres53:33 - Why PlanetScale insists on control for reliability1:02:05 - Competing in the broader Postgres landscape1:08:33 - Why PlanetScale stays “just a database”1:12:33 - What GA means for Postgres at PlanetScale1:17:43 - Call to action for new Postgres users1:18:49 - Surprise!1:22:21 - Wrap-up and where to find Sam

    1h 7m
  4. SEP 16

    The database for all your AI needs

    Marcel Kornacker, the creator of Apache Impala and co-creator of Apache Parquet, joins me to talk about his latest project: Pixeltable, a multimodal AI database that combines structured and unstructured data with rich, Python-native workflows. From ingestion to vector search, transcription to snapshots, Pixeltable eliminates painful data plumbing for modern AI teams. Follow Marcel Pixeltable: https://pixeltable.comPixeltable GitHub: https://github.com/pixeltable/pixeltableLinkedIn: https://www.linkedin.com/in/marcelkornacker Follow Aaron Twitter: https://twitter.com/aarondfrancisLinkedIn: https://www.linkedin.com/in/aarondfrancisWebsite: https://aaronfrancis.com – find articles, podcasts, courses, and moreDatabase School: https://databaseschool.com Chapters 0:00 – Introduction0:20 – Meet Marcel Kornacker1:19 – Early career and grad school in databases2:12 – Joining Google and building F13:42 – How F1 used Spanner at Google4:01 – Starting Apache Impala at Cloudera6:02 – Why SQL still matters7:29 – What keeps Marcel fascinated with databases9:37 – The “SQL is dead” waves and shift to AI10:21 – Observing pain points in computer vision pipelines13:02 – Multimodal data challenges and the idea for Pixeltable16:10 – How Pixeltable handles transformations with computed columns26:29 – Example: processing video, audio, and transcripts in Pixeltable33:12 – DAG execution and parallelism explained37:00 – Transactional guarantees in Pixeltable39:00 – Iterators and chunking data for search42:26 – Using embeddings and semantic search47:05 – Updating data and incremental recomputation50:06 – Thoughts on RAG and hybrid search53:14 – Real-world use cases and dataset curation57:00 – Example: labeling food waste on cruise ships1:02:00 – Labeling workflows and syncing annotations1:02:41 – Pixeltable’s roadmap and cloud vision1:07:10 – How to get involved with Pixeltable1:09:03 – Closing and where to find Marcel

    1 hr
  5. AUG 19

    Sharding Postgres without extensions with PgDog founder, Lev Kokotov

    I chat with Lev Kokotov to talk about building PgDog, an open-source sharding solution for Postgres that sits outside the database. Lev shares the journey from creating PgCat to launching PgDog through YC, the technical challenges of sharding, and why he believes scaling Postgres shouldn’t require extensions or rewrites. Follow Lev: Twitter: https://twitter.com/levpgdogPgDog: https://pgdog.dev Follow Aaron: Twitter: https://twitter.com/aarondfrancisLinkedIn: https://www.linkedin.com/in/aarondfrancisWebsite: https://aaronfrancis.com — find articles, podcasts, courses, and more.Database School: https://databaseschool.com Chapters 00:00 - Intro01:27 - Lev’s self-taught to computer science degree journey04:50 - Transition to Postgres discussion05:24 - History of PgCat07:06 - What PG Cat does and key features08:59 - Why Lev built PgCat instead of extending PG Bouncer10:06 - PG Cat’s current status and usage12:20 - Moving from PgCat to PgDog13:09 - Applying to YC as a solo founder16:24 - YC pitch: the market gap for Postgres sharding18:52 - High-level overview of PgDog23:32 - Why PgDog is not an extension25:57 - When to build Postgres extensions vs standalone tools27:49 - PgDog architecture and query parsing30:39 - Handling cross-shard queries and current capabilities33:47 - How PgDog shards an existing large Postgres database36:37 - Parallel replication streams for faster sharding39:07 - Alternate resharding approaches42:52 - Where PgDog draws the orchestration line44:00 - Vision for PgDog Cloud vs bring-your-own-database46:47 - Company status: first hire, design partners, and production use50:45 - How deploys work for customers52:20 - Importance of building closely with design partners54:05 - Paid design partnerships and initial deployments56:23 - Benefit of sitting outside Postgres for compatibility58:32 - Near-term roadmap and long-term vision1:01:03 - Where to find Lev online

    49 min
  6. AUG 8

    Rewriting SQLite from scratch (yes, really)

    Want to learn more about SQLite?  Check out my course on SQLite: https://highperformancesqlite.com/?ref=yt   In this episode of Database School, I chat with Glauber Costa, CEO of Turso, about their audacious decision to rewrite SQLite from the ground up.   We cover the technical motivations, open contribution philosophy, and how deterministic simulation testing is unlocking new levels of reliability.   Get your free SQLite reference guide: https://highperformancesqlite.com/products/sqlite-reference-guide.   Follow Glauber:  Twitter: https://twitter.com/glcst  Turso: https://tur.so/af   Follow Aaron:  Twitter: https://twitter.com/aarondfrancis  LinkedIn: https://www.linkedin.com/in/aarondfrancis  Website: https://aaronfrancis.com - find articles, podcasts, courses, and more.   Database school: https://databaseschool.com   Chapters:  00:00 - Intro to guest Glauber Costa  00:58 - Glauber's background and path to databases  02:23 - Moving to Texas and life changes  05:32 - The origin story of Turso  07:55 - Why fork SQLite in the first place?  10:28 - SQLite’s closed contribution model  12:00 - Launching libSQL as an open contribution fork  13:43 - Building Turso Cloud for serverless SQLite  14:57 - Limitations of forking SQLite  17:00 - Deciding to rewrite SQLite from scratch  19:08 - Branding mistakes and naming decisions  22:29 - Differentiating Turso (the database) from Turso Cloud  24:00 - Technical barriers that led to the rewrite  28:00 - Why libSQL plateaued for deeper improvements  30:14 - Big business partner request leads to deeper rethink  31:23 - The rewrite begins  33:36 - Early community traction and GitHub stars  35:00 - Hiring contributors from the community  36:58 - Reigniting the original vision  39:40 - Turso’s core business thesis  42:00 - Fully pivoting the company around the rewrite  45:16 - How GitHub contributors signal business alignment  47:10 - SQLite’s rock-solid rep and test suite challenges  49:00 - The magic of deterministic simulation testing  53:00 - How the simulator injects and replays IO failures  56:00 - The role of property-based testing  58:54 - Offering cash for bugs that break data integrity  1:01:05 - Deterministic testing vs traditional testing  1:03:44 - What it took to release Turso Alpha  1:05:50 - Encouraging contributors with real incentives  1:07:50 - How to get involved and contribute  1:20:00 - Upcoming roadmap: indexes, CDC, schema changes  1:23:40 - Final thoughts and where to find Turso

    1h 18m
  7. JUL 1

    Vitess for Postgres, with the co-founder of PlanetScale

    Sugu Sougoumarane, co-creator of Vitess and co-founder of PlanetScale, joins me to talk about his time scaling YouTube’s database infrastructure, building Vitess, and his latest project bringing sharding to Postgres with Multigres. This was a fun conversation with technical deep-dives, lessons from building distributed systems, and why he’s joining Supabase to tackle this next big challenge. Sugu’s Vitess videos: https://www.youtube.com/watch?v=6yOjF7qhmyY&list=PLA9CMdLbfL5zHg3oapO0HvtPfVx6_iJy6 The big announcement: https://supabase.com/blog/multigres-vitess-for-postgres Database School: https://databaseschool.com Follow Sugu: Twitter: https://twitter.com/ssougou LinkedIn: https://www.linkedin.com/in/sougou Follow Aaron: Twitter: https://twitter.com/aarondfrancis LinkedIn: https://www.linkedin.com/in/aarondfrancis Website: https://aaronfrancis.com - find articles, podcasts, courses, and more. Chapters: 00:00 - Intro 1:38 - The birth of Vitess at YouTube 3:19 - The spreadsheet that started it all 6:17 - Intelligent query parsing and connection pooling 9:46 - Preventing outages with query limits 13:42 - Growing Vitess beyond a connection pooler 16:01 - Choosing Go for Vitess 20:00 - The life of a query in Vitess 23:12 - How sharding worked at YouTube 26:03 - Hiding the keyspace ID from applications 33:02 - How Vitess evolved to hide complexity 36:05 - Founding PlanetScale & maintaining Vitess solo 39:22 - Sabbatical, rediscovering empathy, and volunteering 42:08 - The itch to bring Vitess to Postgres 44:50 - Why Multigres focuses on compatibility and usability 49:00 - The Postgres codebase vs. MySQL codebase 52:06 - Joining Supabase & building the Multigres team 54:20 - Starting Multigres from scratch with lessons from Vitess 57:02 - MVP goals for Multigres 1:01:02 - Integration with Supabase & database branching 1:05:21 - Sugu’s dream for Multigres 1:09:05 - Small teams, hiring, and open positions 1:11:07 - Community response to Multigres announcement 1:12:31 - Where to find Sugu

    1h 7m
  8. JUN 27

    PlanetScale Metal

    In this episode, I chat with Richard Crowley from PlanetScale about their new offering: PlanetScale Metal. We dive deep into the performance and reliability trade-offs of EBS vs. locally attached NVMe storage, and how Metal delivers game-changing speed for MySQL workloads. Links: Database School: https://databaseschool.comPlanetScale: https://planetscale.comPlanetScale Metal: https://planetscale.com/blog/announcing-metal Follow Richard: Twitter: https://twitter.com/rcrowleyWebsite: https://rcrowley.org Follow Aaron: Twitter: https://twitter.com/aarondfrancisLinkedIn: https://www.linkedin.com/in/aarondfrancisWebsite: https://aaronfrancis.com — find articles, podcasts, courses, and more. Chapters: 00:00 - Intro: What is PlanetScale Metal? 00:39 - Meet Richard Crowley 01:33 - What is Vitess and how does it work? 03:00 - Where PlanetScale fits into the picture 09:03 - Why EBS is the default and its trade-offs 13:03 - How PlanetScale handles durability without EBS 16:03 - The engineering work behind PlanetScale Metal 22:00 - Deep dive into backups, restores, and availability math 25:03 - How PlanetScale replaces instances safely 27:11 - Performance gains with Metal: Latency and IOPS explained 32:03 - Database workloads that truly benefit from Metal 39:10 - The myth of the infinite cloud 41:08 - How PlanetScale plans for capacity 43:02 - Multi-tenant vs. PlanetScale Managed 44:02 - Who should use Metal and when? 46:05 - Pricing trade-offs and when Metal becomes cheaper 48:27 - Scaling vertically vs. sharding 49:57 - What’s next for PlanetScale Metal? 53:32 - Where to learn more

    50 min

Ratings & Reviews

5
out of 5
3 Ratings

About

Join database educator Aaron Francis as he gets schooled by database professionals.

You Might Also Like