pg-query-clj
vitess
| pg-query-clj | vitess | |
|---|---|---|
| 1 | 72 | |
| 9 | 21,025 | |
| - | 0.5% | |
| 2.4 | 9.9 | |
| over 1 year ago | 2 days ago | |
| Clojure | Go | |
| MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pg-query-clj
-
Hacking the Postgres Wire Protocol
> One of the things that puts metaprogramming on wheels is being able to pull in grammars, schemas and such for external systems.
That's what I've been trying to do with: https://github.com/schemamap/schemamap
For a well-constrained Postgres schema, a deterministic SQL compiler can be built (with plenty of logic programming/constraint-solving/hypergraph-analysis) that can integrate arbitrary external systems data.
While this is NP-hard, with some clever use of embeddings and ontologies, and use of every single constraint AST within the DB to reduce the search space, this becomes feasible problem.
For any Clojurists interested, I've packaged `pg_query`, so you can use it in your applications: https://github.com/schemamap/pg-query-clj
At the moment I'm saving up for the next development cycle, so not only PG->PG schema mappings can be solved for (JSON schema is next!). Hope this sounds interesting :)
vitess
-
Zero downtime migrations at Petabyte scale
It's open source. If you really want to know these things, I would encourage you to look at the code and read the documentation. As noted in the blog post, reverse vreplication is setup when you switch. You can switch back and forth and nothing is lost.
https://github.com/vitessio/vitess
https://vitess.io/docs/reference/vreplication/
"isn't this just pushing the same issue forward in time?" I don't understand what you are trying to say here. You can only compare the two sides / databases at the same logical point in time. While you are doing this comparison at that point in time, the timeline continues to progress. Unless you want to stop the world and prevent writes for the full duration of the diff (which can be days or even weeks).
- Ask HN: What is the most modular sync engine?
-
The Sunk Cost Fallacy in Software: How to Recognize It and What to Do About It
Since its inception, Slack used MySQL as its storage engine, managing sharding and data access directly within their monolithic application. They maintained their product this way for years. In 2017, they began migrating to Vitess, a horizontal scaling system for MySQL. For more details about this journey and the decisions behind it, see this blog post. Here are some key highlights:
- PlanetScale announces Postgres is GA
-
Neki – sharded Postgres by the team behind Vitess
To add to this, if you look at the top 10 committers to Vitess over the last 12 months, 8 of them are helping with Neki in one way or another:
https://github.com/vitessio/vitess/graphs/contributors?from=...
-
Sharding Demystified
1 . Vitess (Sharding layer for MySQL)
-
Why uber ditched postgres for mysql: What every developer can learn from it
Vitess MySQL sharding at hyperscale. Used by YouTube, Slack, and more. Basically MySQL on steroids for distributed environments.
-
Hacking the Postgres Wire Protocol
> I am wondering, why it took so long for something like this to happen for Postgres
> We were thinking about adding PostgreSQL support to Vitess several years ago. However, we realized that it would be more efficient if each tool was focused on a specific task.
https://github.com/vitessio/vitess/issues/7084#issuecomment-...
-
You Can Make Postgres Scale
Apart from being backed by Postgres instead of MySQL, is this different from Vitess (and its commercial vendor PlanetScale)?
https://vitess.io/
-
MySQL at Uber
Never tried myself, but there is Vitess as well that should do what you ask - not sure about the limitations. https://vitess.io/
What are some alternatives?
schemamap - Instant batch data import for Postgres
tidb - TiDB is built for agentic workloads that grow unpredictably, with ACID guarantees and native support for transactions, analytics, and vector search. No data silos. No noisy neighbors. No infrastructure ceiling.
libpg_query - C library for accessing the PostgreSQL parser outside of the server environment
cockroach - CockroachDB — the cloud native, distributed SQL database designed for high availability, effortless scale, and control over data placement.
orafce - The "orafce" project implements in Postgres some of the functions from the Oracle database that are missing (or behaving differently).Those functions were verified on Oracle 10g, and the module is useful for production work.
citus - Distributed PostgreSQL as an extension