with_advisory_lock
pg_easy_replicate
with_advisory_lock | pg_easy_replicate | |
---|---|---|
1 | 11 | |
613 | 832 | |
0.5% | - | |
6.6 | 8.7 | |
2 months ago | 5 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
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.
with_advisory_lock
-
How to Avoid Race Conditions in Rails
Advisory locking is a mechanism used to prevent concurrent execution of code without necessarily locking the database table or row. In core Ruby, this is implemented using mutex. In Rails, the Ruby gem with_advisory_lock can be used to add advisory locking (mutexes) to ActiveRecord when used with MySQL or PostgreSQL.
pg_easy_replicate
-
Zero Downtime Postgres Upgrades
This is great! I wrote a tool that automates most of the things you came across. If you find it useful or would like to extend it with your feedback/ideas, I'd love to have them! Thanks for sharing
https://github.com/shayonj/pg_easy_replicate
- Minimal downtime major PostgreSQL version upgrades with pg_easy_replicate
-
Zero downtime major PostgreSQL upgrades with pg_easy_replicate
These are great shouts! Thank you so much for sharing. One of the operations I ran with this was ~500GB and yeah it takes a few hours to catchup. For us, it wasn't an issue, especially also since we were on AWS Aurora. However, that said, I can totally see it being not feasible on other database engine/systems. I considered the idea of dropping all the indices and re-creating it once the catch up is complete. I'd like pg_easy_replicate it to support that. It should make the initial COPY lot more swift. On a 200GB large DB it cut down down the total time by 90%.
Re: bi-directional replication, you read my mind :). https://github.com/shayonj/pg_easy_replicate/blob/8df94aa93f...
These two features are top of my list to support in pg_easy_replicate
- Show HN: Minimal downtime PostgreSQL upgrades with pg_easy_replicate
- Minimal Downtime Postgres Upgrades with Pg_easy_replicate
What are some alternatives?
sidekiq-unique-jobs - Prevents duplicate Sidekiq jobs
spock - Multi-master Extension
pg_search - pg_search builds ActiveRecord named scopes that take advantage of PostgreSQL’s full text search
SearchCop - Search engine like fulltext query support for ActiveRecord
pg_party - ActiveRecord PostgreSQL Partitioning
flipper - 🐬 Beautiful, performant feature flags for Ruby.
jsonb_accessor - Adds typed jsonb backed fields to your ActiveRecord models.
Scenic - Versioned database views for Rails
chaosmonkey - Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.