
Database of Databases - kiyanwang
https://dbdb.io/
======
danpalmer
Well I guess that answers it, SQLite is the database of all databases.

> [https://github.com/cmu-
> db/dbdb.io/blob/master/dbdb/settings....](https://github.com/cmu-
> db/dbdb.io/blob/master/dbdb/settings.py#L81)

------
punnerud
Archived page (5days ago):
[https://web.archive.org/web/20200911140514/https://dbdb.io/](https://web.archive.org/web/20200911140514/https://dbdb.io/)

------
overcast
Are these websites just completely unable to handle a 1000 simultaneous
requests?

~~~
mimischi
Someone should make a database of caches or CDNs. Then combine knowledge! /s

~~~
touisteur
There you go [https://www.splitgraph.com](https://www.splitgraph.com)

------
samsquire
Writing a simple query engine can be accomplished with a trie and a hash map
to be a bit like Dynamo DB and SQL is straightforward to parse (but a pain to
implement).

[https://github.com/samsquire/hash-db](https://github.com/samsquire/hash-db)
[https://github.com/samsquire/sql-database](https://github.com/samsquire/sql-
database)

These are my very straightforward codebases where I've been experimenting with
SQL parsing (and execution) and dynamo db style querying.

You need an efficient range operator to implement a database.

------
altrunox
Damn, I don't think I've read about most of the site top database... Maybe I
should try to use something different than PostgreSQL, at least in some side
projects.

------
fizixer
Any good learning resources for implementing your own DBMS, and DB internals?
(not DB theory, not SQL, not intro).

~~~
otoolep
[https://github.com/rqlite/rqlite](https://github.com/rqlite/rqlite)

[https://github.com/rqlite/rqlite/blob/master/DOC/DESIGN.md](https://github.com/rqlite/rqlite/blob/master/DOC/DESIGN.md)

I built a distributed database using Raft and SQLite, and I put _a lot_ of
thought into its design and implementation -- to make it as simple (but not
simplistic) and clear as possible. One goal was clear separation between the
consensus layer, the database access, and the HTTP API. I think it's a good
resource to study (even if I do say so myself).

------
freeopinion
[https://dbdb.io/browse?foreign-keys=supported&query-
interfac...](https://dbdb.io/browse?foreign-keys=supported&query-
interface=sql&stored-procedures=supported)

x Supports Foreign Keys

x Supports Stored Procedures

x Supports SQL Query Interface

No Postgresql?

------
brummm
But does it include itself?

------
hackbinary
Also reminded me of the awesome list of awesome lists:

[https://github.com/sindresorhus/awesome](https://github.com/sindresorhus/awesome)

------
samsquire
They're using SQLite which is single threaded and single user by design. So
this website will not be able to service that much traffic.

~~~
tyingq
Should be fine for reads. Sqlite.org is dynamic, pulling from sqlite data for
~20% of the pages, and it does fine with HN piling on. The single threaded
would be an issue for writes, but I don't see why they would be doing writes
for a page view. See
[https://www.sqlite.org/whentouse.html](https://www.sqlite.org/whentouse.html)

~~~
pfraze
Also, caching layers.

Presumably a service uses SQLite to simplify their ops. So long as the caching
layer is equally simple to maintain, then SQLite continues to make sense to me

~~~
tyingq
Their repo shows the "DummyCache" (no caching) as the default for the
Python/Django setup: [https://github.com/cmu-
db/dbdb.io/blob/master/dbdb/settings....](https://github.com/cmu-
db/dbdb.io/blob/master/dbdb/settings.py#L103)

I wonder if that's how it is in production.

~~~
kevincox
For a mostly static site you would want to cache "over" Django, probably in a
caching proxy or CDN. Of course there are a lot of details, such as many CDNs
will always go to the origin on a edge miss instead of locating another copy
in the CDN. Of course running a caching nginx on the same box as the Django is
probably way more performant than caching "under" Django

~~~
tyingq
It's intermittently working now. Shows the server as Apache 2.4.18 / Ubuntu.
Apache can page cache, but I assume they aren't using it. I don't see any
typical CDN headers either.

Also, somewhat odd, they are bounding the browser-side cache to 10 minutes:

Date: Wed, 16 Sep 2020 18:19:13 GMT

Expires: Wed, 16 Sep 2020 18:29:14 GMT

------
bird_monster
The amount of databases I'd like to play with and explore greatly outweighs
the amount of time or reasons I have to explore databases.

------
asplake
So this isn’t in fact instances of databases inside databases? Disappointed!
Surely possible with SQLite, right? Has it been done?

~~~
throwaway894345
I was really hoping it was a SQL interface for querying data stored in
multiple databases; something like Presto.

------
cocktailpeanuts
Thought it was some groundbreaking new database technology....

Speaking of,

What would an interesting version of "database of databases" look like?

~~~
chatmasta
This is basically what we're building at Splitgraph [0]. We're calling it a
"data delivery network." You connect to one SQL endpoint and can query (and
join across) 40k+ different datasets. It's built on Postgres, and as far as
your SQL client is concerned, it's talking to a Postgres database with 40k
tables in it. Right now we forward queries to public data portals, but
eventually you'll be able to connect live data sources to the DDN without
writing any code. We want it to be as easy as configuring Cloudflare; you just
upload a set of read-only credentials in the web UI and we take care of the
rest. For more private use cases, we're planning to offer private deployments
to AWS/GCP/Azure.

Technically, this is database virtualization, which isn't really a new
concept. We're implementing it as a database proxy, using PgBouncer instances
to intercept queries and route them to Splitgraph engines. Within a Splitgraph
engine (which is Postgres + some custom code), each "table" is either a
"mounted" live database via a foreign database wrapper (FDW), or part of a
point-in-time, versioned database snapshot called a "data image" that you can
build with sgr.

[0] [https://www.splitgraph.com](https://www.splitgraph.com)

------
nerpderp82
The lulz thing about the site is that you can't query it with SQL.

Let me download the sqlite database directly! Andy?

------
thrownaway954
pretty cool. learned alot of new databases beyond the big 6.

this site could benefit greatly from not running on a database and being
statically generated. even the browse section could just be a vuejs app
powered by a json collection.

------
colonelpopcorn
Did anyone else pronounce this like dibby-dibby-yo?

------
josefrichter
So this is being reposted over and over again. Not saying it's not useful, but
still..

------
joshdance
Website is down.

------
llacb47
HN Hug of death.

------
maxcx
upvote!

------
chickenpotpie
Reminds me of my favorite Wikipedia article:
[https://en.wikipedia.org/wiki/List_of_lists_of_lists](https://en.wikipedia.org/wiki/List_of_lists_of_lists)

~~~
fegu
My god that is a rabbit hole. Thanks for this! (But there goes my evening..)

~~~
mitchtbaum
[https://youtu.be/vvp0r1T5ers](https://youtu.be/vvp0r1T5ers)

------
hackbinary
This article reminded me of this site:

[http://howfuckedismydatabase.com/](http://howfuckedismydatabase.com/)

~~~
damsdu78
I don't understand the goal of this site. :|

~~~
eshyong
It's satire written by a disgruntled engineer :P

