All notable changes to this project will be documented in this file.
- Use ActiveRecord URL resolver instead of copying definition #294 Matt Larraz
- Deprecated the term
master
in favor ofprimary
#290 Matt Larraz - Deprecated the term
slave
in favor ofreplica
#286 Matt Larraz - Fix Ruby 2.7 kwarg warning and add Ruby 3 support #283 Matt Larraz
- Drop support for Ruby < 2.5 and ActiveRecord < 5.2 #281 Matt Larraz
- Replace deprecated URI.unescape with CGI.unescape #252 Kevin Robatel
- Override equality operator for ActiveRecord connection wrapper #269 Praveen Burgu
- Handle blacklisted connections in master pool while in transaction #267 Praveen Burgu
- Handle ActiveRecord connection pools correctly #267 Praveen Burgu
- Add preliminary support for sharded databases #267 Praveen Burgu
- Fix ActiveRecord connection pool exhaustion #268 Praveen Burgu
- Drop support for Ruby 2.0, 2.1 and 2.2 #267 Praveen Burgu
- Drop support ActiveRecord 3.x and 4.x #267 Praveen Burgu
- Set up automatic publishing to Github and Rubygems #275 Matt Larraz
- Fix crash by requiring makara in the adapter #54 Eric Saxby
- Add connection logging in non-Rails enviroments #223 Andrew Kane
This release is a major change to how we remember state between requests. A redis store is no longer needed. Everything is in the cookies.
- Implement stickiness for the duration of
master_ttl
via cookies #194 Rosa Gutierrez
Fixed
- Send nextval queries to master and show queries to replicas for Postgres #173 Andrew Kane
- Fixes can't add a new key into hash during iteration error #174 Andrew Kane
- Fix: an application freezes when a slave is down #180 Alexey P
- Allow SELECTs that use common table expressions to go to replicas #184 Andrew Kane
- Send advisory lock requests to the master #198 George Claghorn
- Postgres exists query #199 Brian Leonard
Documentation and Test
- Clarify README's "What goes where" #187 Jan Sandbrink
- Fix loading fixtures in Rails 5.2 #192 George Claghorn
- Travis Upgrade #199 Brian Leonard
Changed
- Add postgis support #118 Kevin Bacha
Changed
- Rails 5.1 compatibility #150 Jeremy Daer
- Minimize redundant context cache requests #157 Greg Patrick
- thread-local cache for previous context stickiness #158 Jeremy Daer
- Configurable cookie options #159 Jeremy Daer
- Test against Rails 5.x and Ruby 2.x #160 Jeremy Daer
Changed
- Fix the hierarchy of the config file #116 Kevin Bacha
- "Disable blacklist" parameter #134 Alex Tonkonozhenko
- Fixes bug in
without_sticking
#96 Brian Leonard - Always stick inside transactions #96 Brian Leonard
- Rails 5 support #122 Jonny McAllister
Changed
- Allow different strategies such as
priority
andround_robin
for pools #105 Brian Leonard
Changed
- Raise
Makara::Errors::AllConnectionsBlacklisted
on timeout. #104 Brian Leonard
Added
- Add
url
to database connections configurations. #93 Benjamin Fleischer
Changed
- Improve Postgresql compatibility and failover support, also fix #78, #79. #87 Vlad
- Update README: Specify newrelic_rpm gem versions that will have the performance issue. #95 Benjamin Fleischer
Changed
- A context is local to the curent thread of execution. This will allow you to stick to master safely in a single thread in systems such as sidekiq, for instance. Fix #83. #84 Matt Camuto
Fixed
- Fix a
ArgumentError: not delegated
error for rails 3. #82 Eric Saxby
Changed
- Switch log format from
:info
to:error
. Mike Nelson
Changed
- Globally move to multiline matchers. Mike Nelson
Changed
Changed
- Reduce logging noise by using the same rules as ActiveRecord uses. #76 Andrew Kane
Fixed
- Fix an issue for postgres that would route all queries to master. #72 Kali Donovan
- Fix an edge case which would cause SET operations to send to all connections(#70). #80 Michael Amor Righi
- Fix performance regression with certain verions of newrelic/rpm(#59). #75 Mike Nelson
Added
- Allow bypassing of stickiness
Added
- Add postgres specific tests.
Changed
- Change using methods for matchers to be able to monkey patch them.
- Follow AR naming conventions for adapter naming.
Removed
- Remove initial connection logic. If a connection can't be made on startup, an error will be thrown rather than the node getting blacklisted.
Added
- Add logging of makara operations via the Makara::Logger.
Changed
- Begin tracing the series of errors associated with blacklisting rather than just the last. This becomes apparent in error messages.
- Fix Rails.cache usage when full environment is not loaded.