4 ms·
> What is CockroachDB under the hood? ... wire protocol, a storage layer, a Raft implementation, PostgreSQL's grammar definition. ... To be absurdly reductionis
by awinter-py 4y ago
> What is CockroachDB under the hood? ... wire protocol, a storage layer, a Raft implementation, PostgreSQL's grammar definition. ... To be absurdly reductionist, CockroachDB is just the glue around these libraries
^ semi off topic, but love the idea of distinguishing certain projects as 'just glue'. (Not a dis, glue matters). Especially interesting in the context of OSS tools whiteboxed by cloud vendors with 'proprietary glue'
- deleted 4y ago[deleted]
- eatonphil 4y agoI said absurdly reductionist and definitely meant that. :) There is a ton going on under the hood to make it work well, to fully implement postgres, and to work efficiently.
- jchw 4y agoI don’t think we should be saying “fully implement PostgreSQL.” People are feeling burned by this notion because it sounds like a drop-in replacement, but it isn’t really that simple. Being wire compatible is mostly just convenient, since you can reuse existing drivers. But existing software built on top of PostgreSQL won’t necessarily work out of the box… Maybe this is a bit nit picky, but, still.
- eatonphil 4y agoI've written about the "world of postgres wire compatible" [0] and yes there are some databases that implement the protocol and don't implement postgres (see: immudb and ravendb) I give databases like CockroachDB more credit for actually making their intention and generally following through with implementing Postgres. Also unlike some others on my list CockroachDB really is meant as an OLTP replacement. Performance characteristics and operations will definitely differ but as solely a user/application developer you shouldn't notice as much. [0] https://datastation.multiprocess.io/blog/2022-02-08-the-world-of-postgresql-wire-compatibility.html https://datastation.multiprocess.io/blog/2022-02-08-the-worl...
- gavinray 4y agoI think original poster might mean in terms of Postgres-specific functionality For instance, a lot of Postgres tools use "pg_catalog" to do introspection on the datasource. Supporting pg_catalog is a bit of a pain -- this is the reason why Materialize doesn't work with Hasura. CockroachDB also just barely doesn't work with Hasura OOTB because of a handful Postgres-specific functions and some metadata.
- eatonphil 4y agoYeah that's fair and you'd know better than I. But again for most app developers they won't notice as much. It's just systems that plug into metadata (BI tools, Hasura, etc.) that might not work as well (or I guess in Hasura's case, not work at all?).