PolarDB, yet another open source database system based on PostgreSQL
github.com
github.com
> OceanBase, the database of Alibaba's fintech company Ant Group, will be open-source soon, possibly as early as June 1, according to Sina Tech.
https://cntechpost.com/2021/05/27/ant-groups-in-house-databa...
Also the team published many papers about PolarDB.
https://scholar.google.com/scholar?hl=en&as_sdt=0%2C48&q=%22...
That one is for fintech.
So this is code from two years ago missing stability fixes from upstream up to 11.12, at short sight.
search for "crash":
https://www.postgresql.org/docs/release/11.3/ ( 11x )
https://www.postgresql.org/docs/release/11.4/ ( 4x )
https://www.postgresql.org/docs/release/11.5/ ( 1x )
https://www.postgresql.org/docs/release/11.6/ ( 3x )
https://www.postgresql.org/docs/release/11.7/ ( 14x )
https://www.postgresql.org/docs/release/11.8/ ( 5x )
https://www.postgresql.org/docs/release/11.9/ ( 6x )
https://www.postgresql.org/docs/release/11.10/ ( 5x )
But I agree it's not a very good look to code-drop something on a .2 release when there's been 2,5 years of fixes.
$ git log --oneline REL_11_2..REL_11_12 -- src/backend src/include ':!src/backend/po' | wc -l
536
$ git diff --stat REL_11_2..REL_11_12 -- src/backend src/include ':!src/backend/po' | tail -1
352 files changed, 14651 insertions(+), 7078 deletions(-)
Even if the conflicts are minor, it's going to be annoying to try to work it out. If you are hitting a specific crash, there's a good chance you can backport the fix cleanly, but I doubt you can just pull in all of the fixes proactively without some knowledge of the details of the fork.I haven't really looked at the details... perhaps PolarDB already has many (or all) of the fixes since 11.2. Also I haven't actually tried a merge, I'm just assuming the difficulty based on the number of diffs (and my experience doing minor version merges in the past).
(Disclaimer: I work for Citus Data. Citus takes the approach of a pure extension, which means it works on unmodified Postgres, and minor upgrades typically don't interfere at all.)
Also, Postgres 12 introduced pluggable storage, which might help to implement a shared-nothing architecture without huge changes to vanilla Postgres (I haven't looked at how large their delta is)
It has worked for a long time without the need for Postgres 12. However, the new APIs introduced in v12 did enable us to offer columnar compression as an option, which complements a lot of scale-out use cases.
See: https://www.citusdata.com/blog/2021/03/06/citus-10-columnar-...
I believe using the extension facilities of Postgres is far superior to a fork in the medium to long term.
(Disclaimer: I work for Citus, and on columnar compression.)
:-)
I am waiting for the basic index support for columnar tables !
https://github.com/citusdata/citus/pull/4950
:-)
Currently running my app + db on Heroku in the EU and would like to scale out since latency is abysmal for users in Australia and Asia.
Citus has a post from 2017 talking about allowing for horizontal scaling of a postgres instance. [0]
Same thing with Timescale. [1]
--------------------------------------------
[0] https://citusdata.com/blog/2017/02/16/citus61-released/
[1] https://blog.timescale.com/blog/timescaledb-2-0-a-multi-node...
It looks like AWS's Aurora Postgres doesn't support cross-region read replicas, but apparently their Aurora "Global Database" offering does[3]
- [1] https://fly.io
- [2] https://fly.io/docs/reference/postgres/#scaling-horizontally...
- [3] https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide...
If you need cross-region multi-master then I recommend something like CockroachDB or Yugabyte that have regional distribution as a core feature.
Hadapt
Netezza
PipelineDb
Postgres-XL
Redshift
AgensGraph
TimescaleDB
Fujitsu Enterprise Postgres
PolarDB
CrunchyBridge
The short-sightedness of forking boggles my mind every time. Oh, you don't want a team of hundreds of literally the best Postgres programmers in the world working for you full time all the time for free? Ok dude, have fun with your fork.
https://github.com/citusdata/citus
(Citus engineer)
So not (IBM-System-)R-compatible, then?
NGL, I've had to explain to enough people by now that the "funny name" is because it was made by ex-Googlers with a view towards resiliency, as per the idiom that only cockroaches will survive global nuclear war.
In the real world, it is extremely hard to provide all the same guarantees you get out of a single instance of <database vendor> if you turn around and spread it across the internet.
If you have super deep control over the physical & temporal environment around your system, you can cheat the rules a little bit (i.e. Google).
CockroachDB has an explicit clause is the licensing: Yes, employees and contractors can use your internal CockroachDB instance as a service, but no people outside of your organization will be able to use it without purchasing a license: https://www.cockroachlabs.com/docs/v21.1/licensing-faqs.html....
All you need is that in the event of a failure the clustered system can still recover quickly enough (to a well-defined state!) that the application layer can deal with the transient failure without significant impact on users, maintaining the illusion of availability.
a rocket is using this query to adjust their trusters ;)
In those kinds of systems I suspect the approach is to enumerate every possible scenario and prove that the system behaves correctly in all of them, and if you can't do that, the system may be too complex and you need to redesign it to be simpler so that you can guarantee that it does not fail.
CockroachDB seems to be a distributed database system written in Go which has implemented a Postgres query/wire protocol compatibility layer.
PolarDB is a Postgres fork actually using the Postgres codebase and extending it to a distributed database system. Maybe one day they can unfork because it's possible to implement PolarDB on top of Postgres as an extension and/or they contribute/get all their changes into Postgres core.