Skip to content

Commit

Permalink
Active Record Multiple Database > Horizontal Sharding campuscode#692
Browse files Browse the repository at this point in the history
  • Loading branch information
rohan-techfreak committed Oct 31, 2021
1 parent 283307a commit 3b19da0
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions pt-BR/active_record_multiple_databases.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,14 +258,13 @@ Observe que o `connected_to` com um *role* definido buscará e trocará para uma

## Horizontal sharding

Horizontal sharding is when you split up your database to reduce the number of rows on each
database server, but maintain the same schema across "shards". This is commonly called "multi-tenant"
sharding.
Fragmentação horizontal é quando você divide seu banco de dados para reduzir o número de linhas em cada
servidor de banco de dados, mas mantém o mesmo esquema em "fragmentos". Isso é comumente chamado de "multilocatário" fragmentação.

The API for supporting horizontal sharding in Rails is similar to the multiple database / vertical
sharding API that's existed since Rails 6.0.
A API para suportar fragmentação horizontal no Rails é semelhante ao banco de dados múltiplo / vertical
API de fragmentação que existe desde o Rails 6.0.

Shards are declared in the three-tier config like this:
Os fragmentos são declarados na configuração de três camadas como este:

```yaml
production:
Expand All @@ -285,7 +284,7 @@ production:
replica: true
```

Models are then connected with the `connects_to` API via the `shards` key:
Os modelos são então conectados à API `connects_to` por meio da chave` shards`:

```ruby
class ApplicationRecord < ActiveRecord::Base
Expand All @@ -298,8 +297,8 @@ class ApplicationRecord < ActiveRecord::Base
end
```

Then models can swap connections manually via the `connected_to` API. If
using sharding both a `role` and `shard` must be passed:
Então, os modelos podem trocar conexões manualmente por meio da API `connected_to`. Se
usando o sharding, um `role` e um` shard` devem ser passados:

```ruby
ActiveRecord::Base.connected_to(role: :writing, shard: :default) do
Expand All @@ -312,8 +311,8 @@ ActiveRecord::Base.connected_to(role: :writing, shard: :shard_one) do
end
```

The horizontal sharding API also supports read replicas. You can swap the
role and the shard with the `connected_to` API.
A API de fragmentação horizontal também oferece suporte a réplicas de leitura. Você pode trocar o
papel e o fragmento com a API `connected_to`.

```ruby
ActiveRecord::Base.connected_to(role: :reading, shard: :shard_one) do
Expand Down

0 comments on commit 3b19da0

Please sign in to comment.