pg_similarity
pg_auto_failover
pg_similarity | pg_auto_failover | |
---|---|---|
3 | 14 | |
352 | 1,036 | |
- | 0.7% | |
0.0 | 6.4 | |
8 months ago | 3 months ago | |
C | C | |
BSD 3-clause "New" or "Revised" License | 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_similarity
-
Data Cleaning in SQL
For Postgres, there is an extension that provides that.
-
Show HN: Supabase Clippy – ChatGPT for Supabase Docs
Note that pgvector isn't supported on any of the large cloud providers' hosted Postgres offerings, other than Supabase. https://github.com/pgvector/pgvector#hosted-postgres has instructions on how to add your voice to request it to be added!
(It does seem that the ancient https://github.com/eulerto/pg_similarity is supported by RDS and Google Cloud - but it's hard to tell whether attention was paid to its performance characteristics with nearly the rigor that pgvector seems to have been designed.)
-
Official Elasticsearch Python library no longer works with open-source forks
While I don't doubt that you know your usecase and weighed/tried the option.
> Postgres search is essentially an easier to use regex engine.
I'm not sure exactly what you meant to convey here, but if you're searching with LIKE or `~` you're not doing Postgres's proper Full Text Search. You should be dealing with tsvectors[0]
> As soon as you need multiple languages
Postgres FTS supports multiple languages and you can create your own configurations[1]
> advanced autocomplete
I'm not sure what "advanced" autocomplete is but you can get pretty fast trigram searches going[2] (back to LIKE/ILIKE here but obviously this is an isolated usecase). In the end I'd expect auto complete results to actually not hit your DB most of the time (maybe I'm naive but that feels like a caching > cache invalidation > cache pushdown problem to me)
> misspelling detection
pg_similarity_extension[3] might be of some help here, but it may require some wrangling.
> large documents, large datasets,
PG has TOAST[4], and obviously can scale (maybe not necessarily great at it) -- see pg_partman/Timescale/Citus/etc.
> custom scoring
Postgres only has basic ranking features[5], but you can write your own functions and extend it of course.
Solr/ES are definitely the right tools for the job (tm) when the job is search, but you can get surprisingly far with Postgres. I'd argue that many usecases actually don't want/need a perfect full text search solution -- it's often minor features that turn into overkill fests and ops people learning/figuring out how to properly manage and scale an ES cluster and falling into pitfalls along the way.
[0]: https://www.postgresql.org/docs/current/textsearch-intro.htm...
[1]: https://www.postgresql.org/docs/current/textsearch-intro.htm...
[2]: https://about.gitlab.com/blog/2016/03/18/fast-search-using-p...
[3]: https://github.com/eulerto/pg_similarity
[4]: https://www.postgresql.org/docs/current/storage-toast.html
[5]: https://www.postgresql.org/docs/9.5/textsearch-controls.html...
pg_auto_failover
- 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
-
pg_auto_failover ile PostgreSQL Cluster Kurulumu
pg_auto_failover github | readthedocs | ytube
What are some alternatives?
git-imerge - Incremental merge for git
patroni - A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
elasticsearch-py - Official Python client for Elasticsearch
citus - Distributed PostgreSQL as an extension
pgsentinel - postgresql extension providing Active session history
orchestrator - MySQL replication topology management and HA
mergify - Merge git changes on commit at a time.
postgresql_cluster - PostgreSQL High-Availability Cluster (based on "Patroni" and DCS "etcd" or "consul"). Automating with Ansible.
git-mergify-rebase - Merge git changes one commit at a time.
plv8 - V8 Engine Javascript Procedural Language add-on for PostgreSQL
vasco - vasco: MIC & MINE statistics for Postgres
discussion