3 ms·
Tell HN: Citus is 100% open source now
https://github.com/citusdata/citus https://github.com/citusdata/citus
I just realized this now, looks like Microsoft did it after they bought Citus? Good job!
Citus is a PostgreSQL extension that transforms Postgres into a distributed database.
-- before adding the first worker node, tell future worker nodes how to reach the coordinator
SELECT citus_set_coordinator_host('10.0.0.1', 5432);
-- add worker nodes
SELECT citus_add_node('10.0.0.2', 5432);
SELECT citus_add_node('10.0.0.3', 5432);
-- rebalance the shards over the new worker nodes
SELECT rebalance_table_shards();
I am not affiliated with them, I just want to share this awesome OSS project.
- bombcar 4y agoSELECT causing changes to things makes me feel weird inside.
- pcthrowaway 4y agoThat's how every Postgres extension works (e.g. Timescale, PostGIS, etc.)
- firloop 4y agoNot just Postgres extensions, most of Postgres’ own administrative functions can be triggered in SELECT statements. e.g. pg_terminate_backend() https://www.postgresql.org/docs/current/functions-admin.html https://www.postgresql.org/docs/current/functions-admin.html
- yjftsjthsd-h 4y agoTo be quite clear, that always felt weird to me as well - something to the effect of "I thought SELECT was for reading data; why am I using it to create a replica?"
- quickthrower2 4y agoSELECT is a bit like return? return 6; or return x++; or even return (exit(0));
- colejohnson66 4y agoI think GP is saying they view SELECT as a "pure" function. A pure function doesn't modify state, so neither should SELECT.
- bombcar 4y agoYeah, from limited experience with SQL "SELECT is safe" (assuming no weirdness in sub functions or commands) but that's clearly not always the case.
- kaveet 4y agoDO $$ BEGIN PERFORM rebalance_table_shards(); END $$;
- jlmorton 4y agoPrevious Discussion: https://news.ycombinator.com/item?id=31770348 https://news.ycombinator.com/item?id=31770348