Module: ActiveRecordHostPool

Defined in:
lib/active_record_host_pool/pool_proxy_6_1.rb,
lib/active_record_host_pool.rb,
lib/active_record_host_pool/version.rb,
lib/active_record_host_pool/connection_proxy.rb,
lib/active_record_host_pool/pool_proxy_legacy.rb,
lib/active_record_host_pool/clear_query_cache_patch.rb,
lib/active_record_host_pool/connection_adapter_mixin.rb

Overview

ActiveRecord 6.0 introduced multiple database support. With that, an update has been made in github.com/rails/rails/pull/35089 to ensure that all query caches are cleared across connection handlers and pools. If you write on one connection, the other connection will have the update that occurred.

This broke ARHP which implements its own pool, allowing you to access multiple databases with the same connection (e.g. 1 connection for 100 shards on the same server).

This patch maintains the reference to the database during the cache clearing to ensure that the database doesn’t get swapped out mid-way into an operation.

This is a private Rails API and may change in future releases as they’re actively working on sharding in Rails 6 and above.

Defined Under Namespace

Modules: ClearOnHandlerPatch, ClearQueryCachePatch, DatabaseSwitch, PoolConfigPatch Classes: ConnectionProxy, PoolProxy

Constant Summary collapse

VERSION =
"1.2.5"