HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
andygrove
how-query-engines-work
Kotlin2021–2022
andygrove / how-query-engines-work

how-query-engines-work

This is the companion repository for the book How Query Engines Work.

2Distinct people
2Mentions
1Explicit recommenders
471GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

This is the companion repository for the book How Query Engines Work.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

I highly recommend "How Query Engines Work" by Andy Grove (author of the Apache Datafusion Query Engine + Apache Ballista Distributed scheduler) It's written in Kotlin and is…

gavinray used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week2 dated mentions

Observed mentions: 2021-10-05 04:17:46 UTC to 2022-05-06 23:28:17 UTC. Weeks start Monday, UTC.

012021-10-04 00:00:00 UTC to 2021-10-11 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 42021-10-11 00:00:00 UTC to 2021-10-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-18 00:00:00 UTC to 2021-10-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-25 00:00:00 UTC to 2021-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-01 00:00:00 UTC to 2021-11-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-08 00:00:00 UTC to 2021-11-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-15 00:00:00 UTC to 2021-11-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-22 00:00:00 UTC to 2021-11-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-29 00:00:00 UTC to 2021-12-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-12-06 00:00:00 UTC to 2021-12-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-12-13 00:00:00 UTC to 2021-12-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-12-20 00:00:00 UTC to 2021-12-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-12-27 00:00:00 UTC to 2022-01-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-03 00:00:00 UTC to 2022-01-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-10 00:00:00 UTC to 2022-01-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-17 00:00:00 UTC to 2022-01-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJan 172022-01-24 00:00:00 UTC to 2022-01-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-31 00:00:00 UTC to 2022-02-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-07 00:00:00 UTC to 2022-02-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-14 00:00:00 UTC to 2022-02-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-21 00:00:00 UTC to 2022-02-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-02-28 00:00:00 UTC to 2022-03-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-07 00:00:00 UTC to 2022-03-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-14 00:00:00 UTC to 2022-03-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-21 00:00:00 UTC to 2022-03-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-03-28 00:00:00 UTC to 2022-04-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-04 00:00:00 UTC to 2022-04-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-11 00:00:00 UTC to 2022-04-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-18 00:00:00 UTC to 2022-04-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-25 00:00:00 UTC to 2022-05-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-02 00:00:00 UTC to 2022-05-09 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 2

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Oct 42021-10-04 00:00:00 UTC2021-10-11 00:00:00 UTC101
Oct 112021-10-11 00:00:00 UTC2021-10-18 00:00:00 UTC000
Oct 182021-10-18 00:00:00 UTC2021-10-25 00:00:00 UTC000
Oct 252021-10-25 00:00:00 UTC2021-11-01 00:00:00 UTC000
Nov 12021-11-01 00:00:00 UTC2021-11-08 00:00:00 UTC000
Nov 82021-11-08 00:00:00 UTC2021-11-15 00:00:00 UTC000
Nov 152021-11-15 00:00:00 UTC2021-11-22 00:00:00 UTC000
Nov 222021-11-22 00:00:00 UTC2021-11-29 00:00:00 UTC000
Nov 292021-11-29 00:00:00 UTC2021-12-06 00:00:00 UTC000
Dec 62021-12-06 00:00:00 UTC2021-12-13 00:00:00 UTC000
Dec 132021-12-13 00:00:00 UTC2021-12-20 00:00:00 UTC000
Dec 202021-12-20 00:00:00 UTC2021-12-27 00:00:00 UTC000
Dec 272021-12-27 00:00:00 UTC2022-01-03 00:00:00 UTC000
Jan 32022-01-03 00:00:00 UTC2022-01-10 00:00:00 UTC000
Jan 102022-01-10 00:00:00 UTC2022-01-17 00:00:00 UTC000
Jan 172022-01-17 00:00:00 UTC2022-01-24 00:00:00 UTC000
Jan 242022-01-24 00:00:00 UTC2022-01-31 00:00:00 UTC000
Jan 312022-01-31 00:00:00 UTC2022-02-07 00:00:00 UTC000
Feb 72022-02-07 00:00:00 UTC2022-02-14 00:00:00 UTC000
Feb 142022-02-14 00:00:00 UTC2022-02-21 00:00:00 UTC000
Feb 212022-02-21 00:00:00 UTC2022-02-28 00:00:00 UTC000
Feb 282022-02-28 00:00:00 UTC2022-03-07 00:00:00 UTC000
Mar 72022-03-07 00:00:00 UTC2022-03-14 00:00:00 UTC000
Mar 142022-03-14 00:00:00 UTC2022-03-21 00:00:00 UTC000
Mar 212022-03-21 00:00:00 UTC2022-03-28 00:00:00 UTC000
Mar 282022-03-28 00:00:00 UTC2022-04-04 00:00:00 UTC000
Apr 42022-04-04 00:00:00 UTC2022-04-11 00:00:00 UTC000
Apr 112022-04-11 00:00:00 UTC2022-04-18 00:00:00 UTC000
Apr 182022-04-18 00:00:00 UTC2022-04-25 00:00:00 UTC000
Apr 252022-04-25 00:00:00 UTC2022-05-02 00:00:00 UTC000
May 22022-05-02 00:00:00 UTC2022-05-09 00:00:00 UTC101

What Hacker News says

2 sources
gavinray·May 6, 2022Recommendation phrase
I highly recommend "How Query Engines Work" by Andy Grove (author of the Apache Datafusion Query Engine + Apache Ballista Distributed scheduler) It's written in Kotlin and is very intelligible + succinct (99 pages): https://leanpub.com/how-query-engines-work https://github.com/andygrove/how-query-engines-work As a self-assessment, I rewrote the entire implementation from a columnar/vector-based engine (it uses Arrow) to row-based, using JDBC types, and it took me only 2 readthroughs of the book to be able to do that. There's also "Database Design and Implementation" by Edward Sciore
In Demystifying Database Performance for Developers
I know two DB bibles which explain how a DB engine actually works. It's much more interesting reading than another SQL manual. But it's not awfully practical if you have no particular interest in DB technology. And both are pretty dense. * https://www.amazon.com/Database-Systems-Complete-Book-2nd/dp * https://www.amazon.com/Database-System-Concepts-Abraham-Silb... There's a very cool not-quite-alternativE: https://leanpub.com/how-query-engines-work. It covers a fair chunk of DB technology but not storage. Definitely check out their repository at https://github.com/andygrove/how-query-engines-work/tree/mai... . A companion to DDIA would be https://www.amazon.com/Database-Internals-Deep-Distributed-S... (especially its treatment of LSM trees which is harder to come by).
In Databases, Types, and the Relational Model: The Third Manifesto [pdf]

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.