ydb-platform / ydb

YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions
https://ydb.tech
Apache License 2.0
3.83k stars 532 forks source link

Multiregion #409

Closed Paramoshka closed 11 months ago

Paramoshka commented 11 months ago

Hello, is installation available in two or more data centers using multiregion as in CockroachDB? If yes, could you provide documentation? Thanks!

blinkov commented 11 months ago

Hi @Paramoshka, typically YDB is deployed in 3 datacenters or availability zones. See mirror-3-dc in https://ydb.tech/en/docs/cluster/topology

However, having these datacenters not far from each other is recommended to avoid too high transaction latencies. For example, different countries in Europe would be working fine, but a cluster spanning across continents likely won't.

If you really need your data to be present in distant regions, there's a newer feature of async replication between YDB clusters. Afaik it is not quite documented yet, but you can get some idea of what it is about from these slides: https://squidex.jugru.team/api/assets/srm/acbeabc7-56f1-4234-9e97-0e66c33be4ce/hydra-2022-fomichev-nizametdinov-1-.pdf

Paramoshka commented 11 months ago

Hi @Paramoshka, typically YDB is deployed in 3 datacenters or availability zones. See mirror-3-dc in https://ydb.tech/en/docs/cluster/topology

However, having these datacenters not far from each other is recommended to avoid too high transaction latencies. For example, different countries in Europe would be working fine, but a cluster spanning across continents likely won't.

If you really need your data to be present in distant regions, there's a newer feature of async replication between YDB clusters. Afaik it is not quite documented yet, but you can get some idea of what it is about from these slides: https://squidex.jugru.team/api/assets/srm/acbeabc7-56f1-4234-9e97-0e66c33be4ce/hydra-2022-fomichev-nizametdinov-1-.pdf

Thanks. I see a configuration for 3 Availability Zones https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/yaml_config_examples/mirror-3dc-3-nodes.yaml, if at the moment there are only two data centers at a short distance, what configuration would you recommended, and how to enable asynchronous mode?

blinkov commented 11 months ago

@Paramoshka if you're setting up a new production YDB cluster that has a requirement to seamlessly operate even if a datacenter goes down, right now I'd recommend to look into finding the third datacenter. If there's no such requirement and surviving a server rack failure is sufficient (if we're talking about a non-cloud environment), you could just set up a block-4-2 topology in a single datacenter.

I double-checked and, unfortunately, we don't have any ready-to-use guidance on how to set up this async replication feature yet as it hasn't been fully released. Stay tuned!

Paramoshka commented 10 months ago

@Paramoshka if you're setting up a new production YDB cluster that has a requirement to seamlessly operate even if a datacenter goes down, right now I'd recommend to look into finding the third datacenter. If there's no such requirement and surviving a server rack failure is sufficient (if we're talking about a non-cloud environment), you could just set up a block-4-2 topology in a single datacenter.

I double-checked and, unfortunately, we don't have any ready-to-use guidance on how to set up this async replication feature yet as it hasn't been fully released. Stay tuned!

Thank you, is it possible to use this config for production? With three nodes, one in each data center. https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/yaml_config_examples/mirror-3dc-3-nodes.yaml