Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
15-721 Advanced Database Systems
Image: youtube.com
#35 overall

15-721 Advanced Database Systems

Carnegie Mellon University

12 recommenders · 15 threads · recommended in 7 years, 2017–2023 · score 15.0

Go to course ↗

An advanced graduate course on modern database system internals, covering topics such as concurrency control, query execution, storage, and in-memory and cloud-era database architectures. Lectures by Andy Pavlo are published on YouTube with readings and assignments.

Commenters call it a top-notch, very detailed guide to database internals and design tradeoffs, and praise Andy Pavlo's clear teaching style.

Databases & Data Engineeringadvancedfreevideo lectures#database internals#concurrency control#query execution#in-memory databases#pavlo

Recommendations by year

20062026

What commenters said (16)

  1. Strongly recommendsoxff2022in “Ask HN: Best resources to learn the intricacies of relational databases”

    The first two CMU courses are goated. I recommend reading at least some of the papers Pavlo says to, but if I'd have to recommend a particular one it'd be "Architecture of a Database System": https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf

  2. Strongly recommends___luigi2021in “Why NoSQL”

    I think the author didn't cover a lot of fundamental research behind NoSQL. If you are reading this comment, and want to dive into SQL/NoSQL DB fundamentals, I highly recommend checking CMU DB (Andy Pavlo) lectures [1] [2].

    [1]: https://db.cs.cmu.edu/seminar2020/

    [2]: https://www.youtube.com/playlist?list=PLSE8ODhjZXjagqlf1NxuB...

  3. Strongly recommendsddlutz2020in “Introduction to Hacking PostgreSQL (2007)”

    while not specific to postgres, for general DB internals the CMU courses are top-notch. intro: https://15445.courses.cs.cmu.edu/fall2019/ advanced: https://15721.courses.cs.cmu.edu/spring2020/

  4. Strongly recommendspipu2019in “Intro to Database Systems (Fall 2019) [video]”

    Andy Pavlo's video lectures are very good. Watched both introductory and advanced lectures a year or so ago. Recommended. Previous videos may be found from the channel.

  5. Strongly recommendshugofirth2018in “LearnDB: Learn how to build a database”

    Not a lot of content yet, but building databases (even toys) is an incredibly interesting exercise which I encourage many more people to try out, so +1!

    For anyone else who is interested in learning how to build a database, can I thoroughly recommend following along with Andy Pavlo's Advanced Database Systems course from CMU[1]. Every lecture is accompanied by reading lists, notes, and assignments. Whats more, I find Andy's style to be very easy to parse even on complex topics.

    Even if you think you know a fair bit about this domain, you will likely learn a lot!

    [1]https://www.youtube.com/playlist?list=PLSE8ODhjZXjYplQRUlrgQ...

  6. Recommendspolskibus2023in “Database Fundamentals”

    The „advanced” part of Andy Pavlo’s great great database course discusses classic database design compromises and the tradeoffs, among other things.

    See http://www.cs.cmu.edu/~pavlo/

  7. Recommendsjasonwatkinspdx2021in “An early look at Postgres 14: Performance and monitoring Improvements”

    There's a ton of room for improvement in the architecture of relational databases. This isn't a dig against Postgres, or ignoring how difficult it will be to get a new system to the same level of maturity. But databases designed natively for cloud/clustering, SSDs, (pmem soon perhaps), etc are quite a bit different. There's enormous simplifications and performance gains possible.

    There's been a lot of exciting work in this area over the last decade or so. Andy Pavlo's classes are great surveys of the latest work: https://15721.courses.cs.cmu.edu/spring2020/

    CosmosDB is an example of a relational (multi paradigm properly) database with a quite different architecture vs the classic design, that's moved into production status quite rapidly.

    FaunaDB and CockroachDB are moving with solid momentum too.

  8. Recommendsjasonwatkinspdx2020in “NoisePage – Self-Driving Database Management System”

    So this comes out of Andy Pavlo's group. He teaches an undergrad and graduate level database class each year, and makes nearly all of his course materials available (there's some guest lectures that don't want to be public sadly): http://www.cs.cmu.edu/~pavlo/

    I'd definitely go through the slide decks on concurrency control in both of these classes. They're an amazing resource for anyone interested in database internals. There's a ton of tradeoffs, and a lot of prior research into them. Andy's slide decks are something of a road map to the different choices.

    What you describe is roughly snapshot isolation, which mostly works, but is vulnerable to write skew.

  9. Recommendsjasonwatkinspdx2020in “Improved vacuum in PostgreSQL 13”

    This is somewhat confused/mistaken.

    There are several successful databases that use in page MVCC storage. I'd suggest going through Andy Pavlo's slide decks for a summary: https://15721.courses.cs.cmu.edu/spring2020/, in particular slide 33 from lecture 3 has a summary. Also there are papers wheree his group directly benchmarks the various design alternatives within their test database, Peloton.

    The TL;DR, is there's a lot of details to how this stuff works, many tradeoffs involved, and it's by no means whatsoever clear that Postgres has somehow made the wrong choice.

  10. Recommendspolskibus2020in “Apache Druid vs. Time-Series Databases”

    I recommend watching Andy Pavlo's courses:

    https://15445.courses.cs.cmu.edu/fall2019/

    https://15721.courses.cs.cmu.edu/spring2020/

  11. Recommendsdajonker2019in “Seven databases in seven weeks (2014)”

    The CMU Database Group and Andy Pavlo are great. They have some great courses on their YouTube channel [1], anything you might ever want to know about databases. Such as their series on hardware accelerated databases [2] (Kinetica, MapD, SQream DB, BlazingDB, Brytlyt, Swarm64)

    [1] https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA

    [2] https://www.youtube.com/playlist?list=PLSE8ODhjZXjbjOyrcqgE6...

  12. Recommendsbarbecue_sauce2019in “Database Architecture Blog”

    Andy Pavlo from the CMU Database Group has excellent courses on Database design on YouTube. Large time commitment, but he goes into great detail about internals and design tradeoffs, and is very knowledgeable about which database systems use which approaches. The intro course is about traditional databases, while the advanced course is about modern in-memory databases.

  13. RecommendsCurtHagenlocher2018in “PostgreSQL Begins Adding LLVM JIT Support For Faster Performance”

    Anyone who's interested in this (and related) DBMS topic would be well served to check out the videos of Andy Pavlo's "Advanced Database Systems" course at CMU: https://www.youtube.com/watch?v=poEfLYH9W2M&list=PLSE8ODhjZX...

  14. Recommendsmakmanalp2017in “Readings in Database Systems, 5th Edition (2015)”

    This book is more about different types of tradeoffs you can make in terms of your system design. I'd recommend looking at grad databases courses instead, e.g:

    - http://db.cs.cmu.edu/courses/ - http://daslab.seas.harvard.edu/classes/cs165/ - http://daslab.seas.harvard.edu/classes/cs265/

  15. Recommendshackermailman2017in “Computer Science Education”

    Carnagie Mellon has some open too http://www.cs.cmu.edu/~213/schedule.html (Lectures) https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.a...

    That book you can get the global 3rd version from Abe Books for $20something since you aren't in Can/USA

    There's other courses in there, like this awesome math/compsci course https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.a... (click on the RSS(Subscribe) logo in the upper right, can download them). They also have some fully open courses like this db course with lectures on youtube http://15721.courses.cs.cmu.edu/spring2016/

  16. Mentionsvalarauca12019in “Ask HN: What should a systems/low-level software engineer know?”

    For High Throughput compute, and cache correctness. Here are the primers I can give. None of these are required. Strong langauge, cs, interpersonal skills, team inter-interoperability, and commitment to quality (via unit and integration testing, and skill working with liners) can get you a lot further.

    The resources I'm linking are supplementary to the above, and you'll likely encounter them in the wild. But they'll help you build a base of knowledge, and give you terminology to search for, and work with.

    - What Every Programmer should know about memory: https://people.freebsd.org/~lstewart/articles/cpumemory.pdf

    - Cache Obviousness: https://www.youtube.com/watch?v=bY8f4DSkQ6M (the suggestions, and terminology are important)

    - Parallelism: (This is a good primer, there are a lot of complementary posts linked on the site) https://preshing.com/20120612/an-introduction-to-lock-free-p... https://preshing.com/20120913/acquire-and-release-semantics/

    - If you plan on working with linux these is an excellent reference: http://man7.org/linux/man-pages/dir_section_2.html remember there is no magic in Linux, everything eventually has to go through a system call. So if you learn the systemcalls, you can can learn how things work :)

    - Fog's optimization resources are awesome: https://www.agner.org/optimize/

    - MIT courseware: https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP... https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP...

    - This cheat sheet is worth committing to memory: http://www.bigocheatsheet.com/ the reference links are also great for building up knowledge

    - I highly recommend CMU DB open course ware: (intro) https://www.youtube.com/watch?v=vyVGm_2iFwU&list=PLSE8ODhjZX... (advanced) https://www.youtube.com/watch?v=poEfLYH9W2M&list=PLSE8ODhjZX...

    This should give you a good primer on Concurrency, and DB's. For networking likely a basic TLA+ certification class will be 99% review, but for the things it isn't will offer great insight.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help