Module: ActiveRecordHostPool
- Defined in:
- lib/active_record_host_pool/pool_proxy.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/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 =
"4.0.0"
Class Attribute Summary collapse
-
.loaded_db_adapter ⇒ Object
Returns the value of attribute loaded_db_adapter.
Class Attribute Details
.loaded_db_adapter ⇒ Object
Returns the value of attribute loaded_db_adapter.
9 10 11 |
# File 'lib/active_record_host_pool.rb', line 9 def loaded_db_adapter @loaded_db_adapter end |