Live data from Hacker News

Building a new database management system in academia (2017)

cs.cmu.edu

21–30 of 43 posts

Re: Building a new database management system in academia (2017)

#21
It may seem daunting, but I think many people make it more complex / difficult than it needs to be.

I have rolled out two transactional databases of my own. In both cases I had to provide very specific properties and for some reason I could not find an existing product that would meet all requirements. For example, one of them was an embedded device that was very restricted in memory, all operations needed to run with hard bounds on time and memory and the storage for the data was a flash chip without wear levelling which required the database itself to manage writes to prolong the chip's life.

The key is to notice how your database system is going to be different from others and what properties are not essential.

Also, making general purpose DBMS tends to be much more complex vs making more niche solutions where you know a bit more about what the uses are going to be and what kinds of loads you can expect.

Creating a custom engine for a given application can be very simple task because you can easily cross out requirements you don't care about and you only care that it works well for the loads that this particular application can generate.

Also, it is unlikely you are going to beat fierce competition in general purpose "and a kitchen sink" database management system market, but much easier to find a niche that is underserved and create a usable, competitive product with relatively little effort. That's how SQLite started.

Re: Building a new database management system in academia (2017)

#22
post #4
post #3

Earlier quoted context omitted.

This is Andy Pavlo, so he probably got sidetracked with https://ottertune.com/ Not sure what op's intention with this was

Actually, it was a combination of three things: 1. OtterTune Start-up ( https://ottertune.com ) 2. Biological Daughter ( https://twitter.com/andy_pavlo/status/1187841279260004355 ) 3. Pandemic When the pandemic first started, I had a bunch of CMU students reach out to me saying that their summer internships were rescinded and that they were looking for a project to work on so that they wouldn't have a gap in their CV…

I'm doing a similar thing - invite every student who is interested, without interviewing or skill tests: https://github.com/ClickHouse/ClickHouse/issues/42194

It works if you target for ~10% outcome if you have a good CI system with a decent test coverage and a ton of fuzzing.

Re: Building a new database management system in academia (2017)

#23
post #4
post #3

Earlier quoted context omitted.

This is Andy Pavlo, so he probably got sidetracked with https://ottertune.com/ Not sure what op's intention with this was

Actually, it was a combination of three things: 1. OtterTune Start-up ( https://ottertune.com ) 2. Biological Daughter ( https://twitter.com/andy_pavlo/status/1187841279260004355 ) 3. Pandemic When the pandemic first started, I had a bunch of CMU students reach out to me saying that their summer internships were rescinded and that they were looking for a project to work on so that they wouldn't have a gap in their CV…

Moreover, making as many as possible people to learn database engineering and production C++ experience - is one of my goals with ClickHouse.

Re: Building a new database management system in academia (2017)

#24
post #8

Earlier quoted context omitted.

Yikes! Thanks for the heads up. Peter left Stanford so I guess they took over the domain name :-(

Excellent, well done on the quick turnaround. I hope no one had to have a hard conversation with their boss just now. (for the curious, the link was previously *NSFW* http://macrobase dot io *NSFW*)

Macrobase PI here – someone squatted on that io domain a long time ago while the project was active. Once we moved to macrobase.stanford.edu, a fan apparently took interest in our old domain. Thanks Andy for updating the link.

Re: Building a new database management system in academia (2017)

#25

If you're interested in the idea of databases built from scratch since the time this post was written in 2017 (based on GitHub contributions info), here are a few: - Materialize: 2017 - DuckDB: 2018 - RedPanda: 2019 - TigerBeetle: 2020

and DuckDB came out of academia too and is not based on Postgres either (highly relevant and notably absent in the authors list of academic DBs at the end of the article)

https://duckdb.org/pdf/SIGMOD2019-demo-duckdb.pdf

EDIT: oh the article is old

Re: Building a new database management system in academia (2017)

#26
post #24

Earlier quoted context omitted.

Excellent, well done on the quick turnaround. I hope no one had to have a hard conversation with their boss just now. (for the curious, the link was previously *NSFW* http://macrobase dot io *NSFW*)

Macrobase PI here – someone squatted on that io domain a long time ago while the project was active. Once we moved to macrobase.stanford.edu, a fan apparently took interest in our old domain. Thanks Andy for updating the link.

"A fan" hehe. I wonder if some genius at pornhub marketing thought the word had enough innuendo to be worth paying the squatter for redirect rights. It's not exactly "Macrohard"[ware] or its inverse (who we can thank for Github and VS Code)

Re: Building a new database management system in academia (2017)

#27
post #4
post #3

Earlier quoted context omitted.

This is Andy Pavlo, so he probably got sidetracked with https://ottertune.com/ Not sure what op's intention with this was

Actually, it was a combination of three things: 1. OtterTune Start-up ( https://ottertune.com ) 2. Biological Daughter ( https://twitter.com/andy_pavlo/status/1187841279260004355 ) 3. Pandemic When the pandemic first started, I had a bunch of CMU students reach out to me saying that their summer internships were rescinded and that they were looking for a project to work on so that they wouldn't have a gap in their CV…

I see that MVCC is still your preferred way of doing CC, and what academic research is mostly focused. I am wondering whether that’s an advantage for in-memory databases specifically.

I was once discussing MVCC vs 2PL with an experienced Sybase and SQL Server guy, and he claimed that, when transactions are implemented properly and the database is well-designed (no surrogate keys, in particular), 2PL leads to better performance and no deadlocks, while “readers do not block writers” leads to lots of aborted transactions in a heavy OLTP workload. I verified that (I should still have the code around): lots of conflicts in PostgreSQL vs smooth concurrent execution with no retries in Sybase and SQL Server.

I have since heard similar opinions from other SQL Server practitioners: they disable MVCC and rely only on good ol’ 2PL.

Re: Building a new database management system in academia (2017)

#29
post #15

Earlier quoted context omitted.

> Our future project is going to start with the optimizer first. What's your opinion of recent attempts like LingoDB, that move the query optimizer into a traditional compiler stack, in this case, MLIR?

LingoDB is an interesting system. Jana has done great work with it. I like projects that take unorthodox approaches to old problems. The problem with (most) query optimizers is that they take a one shot approach at optimization. I think an optimizer should be built from the groundup to support adaptive query optimization. Something similar to Berkeley's Eddies project from 20 years ago.

Do you know if there is anybody taking this approach? Alternatively, what would you consider to be the current state of the art when it comes to query optimizers?

Re: Building a new database management system in academia (2017)

#30
post #4

Earlier quoted context omitted.

Actually, it was a combination of three things: 1. OtterTune Start-up ( https://ottertune.com ) 2. Biological Daughter ( https://twitter.com/andy_pavlo/status/1187841279260004355 ) 3. Pandemic When the pandemic first started, I had a bunch of CMU students reach out to me saying that their summer internships were rescinded and that they were looking for a project to work on so that they wouldn't have a gap in their CV…

> Our future project is going to start with the optimizer first. What's your opinion of recent attempts like LingoDB, that move the query optimizer into a traditional compiler stack, in this case, MLIR?

There's also mutable that compiles to WASM and lets it get JITed by v8 https://github.com/mutable-org/mutable.
Post reply on HN