pg_hexedit
pg_auto_failover
pg_hexedit | pg_auto_failover | |
---|---|---|
1 | 15 | |
155 | 1,141 | |
- | 0.9% | |
3.6 | 4.6 | |
5 months ago | 7 months ago | |
C | C | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
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_hexedit
-
Tweak: An Efficient Hex Editor
I am the author of a tool that generates wxHexEditor tags and annotations for Postgres relation files -- pg_hexedit:
https://github.com/petergeoghegan/pg_hexedit
I've invested quite a lot of effort in it, and it would be nice to have support for multiple hex editors. That was anticipated to some degree:
https://github.com/petergeoghegan/pg_hexedit#supporting-othe...
I understand why you favor a declarative template format for describing files with tags -- that probably scales really nicely. What I'm doing is pretty grotty, but works surprisingly well in practice. I procedurally generate a description of each file in a shell script, and then open the file in wxHexEditor. I'm generating huge XML files, which is slow, but there are simple workarounds to get acceptable performance.
wxHexEditor doesn't support declarative tags. But even if it did I might not want to use them; the on-disk format of PostgreSQL is much more complicated than most file formats, and isn't supposed to be consumed by third party tools. Writing a C program that uses the struct definitions from the server itself makes the complexity quite manageable -- the tool is basically feature complete, even though I haven't spent a huge amount of time on it.
That said, it would be great if I could adapt pg_hexedit to a hex editor that had some kind of "best of both worlds" support for tags - tags that can be generated lazily and on-demand, when a portion of the file needs to be drawn or redrawn. This would be easy to adapt to -- Postgres relation files always consist of a series of 8KiB blocks/pages. My tool can easily generate tags for any single block without knowing any special context or having any expensive-to-generate state -- I just need a block number (i.e. an 8KiB-aligned byte offset).
pg_auto_failover
- PostgreSQL Is the Database Management System of the Year 2024
- 11 Years of Hosting a SaaS
- Streamlining High Availability in PostgreSQL, a Simpler Alternative
-
Why PostgreSQL High Availability Matters and How to Achieve It
pg_auto_failover makes it an absolute breeze. I cannot understand how it's not mentioned in the article.
I've been runnning it for 3 years with great success - https://github.com/hapostgres/pg_auto_failover/discussions/6...
-
Can someone share experience configuring Highly Available PgSQL?
Simplified and probably OK: pg_auto_failover - One Monitor/Witness node and minimum services otherwise. Good documentation to get started and not nearly as complex as Patroni.
-
PG redundancy even in majority failure
There are tools that make managing such a system easier. Check out patroni, pg_auto_failover or PAF
- Just Use Postgres for Everything
-
The C++ Asynchronous Framework
This is /extremely/ uncharitable. It depends more on the project.
For example, both Go and .NET are very well written with comprehensible documentation. Many projects have also been absorbed by the Apache Foundation or other FOSS initiatives.
Every FANG has boat loads of teams working on umpteen different open source packages. The quality naturally varies.
Let me pick two more esoteric projects as a point of comparison.
Yandex Odyssey (https://github.com/yandex/odyssey) an advanced multi-threaded PostgreSQL connection pooler and request router. Figuring out how exactly and when to use this is not quite clear. There is no "getting started" guide for this package. There is barely any explanation for how it works or what it does.
pg_auto_failover (https://github.com/citusdata/pg_auto_failover) run by Citus (owned by Microsoft) monitors and manages automated failover for a Postgres cluster. This repo even has diagrams explaining the workflow and complete instructions.
-
Do you use Percona Distribution for PostgreSQL? How is it working for you?
Right, https://github.com/citusdata/pg_auto_failover has been on my reading list
-
Simpler Postgresql replication setup (NO managed services)
My go to for this is https://github.com/citusdata/pg_auto_failover set up with ansible https://github.com/neuroforgede/pg\_auto\_failover\_ansible
What are some alternatives?
HexManiacAdvance - A tool for editing tables, text, scripts, images, and other data in Pokemon GBA games
patroni - A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
pg_net - A PostgreSQL extension that enables asynchronous (non-blocking) HTTP/HTTPS requests with SQL
citus - Distributed PostgreSQL as an extension
HexFiend - A fast and clever hex editor for macOS
orchestrator - MySQL replication topology management and HA
hem-hashes - Hiew External Module (HEM) to calculate CRC-32, MD5, SHA-1, and SHA-256 hashes of a given file/block
plv8 - V8 Engine Javascript Procedural Language add-on for PostgreSQL
hexing - Graphical and minimalistic hex editor.
postgresql_cluster - Automated database platform for PostgreSQL® — the open-source alternative to cloud-managed databases. [Moved to: https://github.com/vitabaks/autobase]
hx - Hex editor for the terminal using plain C99 + POSIX libs.
amazon-redshift-utils - Amazon Redshift Utils contains utilities, scripts and view which are useful in a Redshift environment