28 Comments

“I heard you like databases, so I added a database of databases on my post about databases” -Justin, probably

Expand full comment
author

Just one more database bro. One more and I'll be done. Just one more bro

Expand full comment

Super interesting! Thank you

Expand full comment
Mar 28, 2023Liked by Justin

That is such a useful post and love the database of database.

Expand full comment
Apr 1, 2023Liked by Justin

💯💯

Expand full comment
Mar 31, 2023Liked by Justin

Great overview.

Expand full comment

I'd pay for something like this but more in depth!

Expand full comment
author

What in particular are you looking for more depth on?

Expand full comment

I'm not sure, just more!

Expand full comment
author

Fair enough 😉

Expand full comment
Mar 28, 2023Liked by Justin

This is super interesting and incredibly useful. Thanks for putting this together!

Expand full comment

Great overview. Love the database of database.

Expand full comment

Awesome explanation :) thanks

Expand full comment

This is super helpful! Can you please write about indexes and how search systems work under the hood?

Expand full comment
Aug 3, 2023·edited Aug 3, 2023Liked by Justin

Very informative post, thank you!

A few remarks on the following:

> Cassandra is a NoSQL database built for really big companies who need to store lots of data and retrieve it fast. Unlike MongoDB, which is built as a document database, Cassandra is columnar, which means data is stored in entire columns (like Snowflake, actually). Using Cassandra feels a lot more like using a relational database.

Cassandra is not a columnar database but implements the concept of a wide-column family.

"Cassandra and HBase have a concept of column families, which they inherited from Bigtable. However, it is very misleading to call them column-oriented: within each column family, they store all columns from a row together, along with a row key, and they do not use column compression. Thus, the Bigtable model is still mostly row-oriented."

- Source: Designing Data-Intensive Applications by Martin Kleppmann.

> DynamoDB is AWS’s proprietary NoSQL database

DynamoDB is based on the architecture of Amazon Dynamo whitepaper. Amazon Dynamo was/is used by the Amazon shopping cart because the database was built for extremely high availability. Apache Cassandra can be considered a spinoff because it was built on the architecture of Amazon Dynamo but with a few different design decisions.

Expand full comment
author

Helpful - just updated. Thank you

Expand full comment

Once upon a time I stayed buried in databases all day long. Oracle, IBM, SQLServer, and yes ... even Postgres once in a while. Thank the Lord I'm retired and don't need to worry about them anymore. I use a plain old notebook for my database these days. It's sooooo much more convenient.

Expand full comment
author

Sounds secure

Expand full comment
Apr 11, 2023·edited Apr 11, 2023Liked by Justin

Great overview as usual Justin! With the hype around generative AI and LLMs, which database models do you think are going to used a lot more? I've read comments from MongoDB say it will be an accelerant for their operational database business. Read Snowflake will benefit for their data-sharing. Can you talk about where you think LLMs will use more, obviously not restricted to these two. Could be all fluff for all I know

Expand full comment
author

Yea, not surprised marketing teams at these companies are trying to make the case that their database is somehow best positioned for AI. I can't really opine on that stuff, I can't predict the future. Same thing with vector databases. Not sure yet!

Expand full comment
Apr 22Liked by Justin

I read ‘diabetes’ haha

Expand full comment

Hey Justin, recently a few startups running vector database are raising lots of money. How would you categorize vector database? Is it another type of transactional database?

Expand full comment
author

Vector databases are an AI thing, definitely not transactional in the traditional sense. It's not entirely clear that they're legit yet so I've avoided them here

Expand full comment

Thanks! So it doesn't fit in any of the three types of DB you mentioned here?

Expand full comment
author

If I had to pick one, it would depend on the use case of the models that you're using the vector database for. If they're models that power actual experiences in your app (e.g. Hex Magic https://hex.tech/product/magic-ai/), I would say it's a user facing DB. If it's just for models that you use internally, I'd say it's operational

Expand full comment

For foundational understanding: when would a product want to be designed with a NoSql vs SQL database ?

Expand full comment
author

We're reached the point where most NoSQL databases can "basically" do what SQL databases do, and vice versa. The answer to this question used to be that NoSQL scales better, but that's changing too.

From a fundamentals perspective, the only real answer here today would be when your data model is highly unstructured and irregular, e.g. doesn't fit nicely into a table format. A good example is a Graph Database for companies whose data is mostly about relations from an entity to another. Or if you're storing loads and loads of unstructured text. Some would also say quick, in memory lookups in something like Redis but I'm less familiar with that world.

Hope this helps!

Expand full comment