无共享架构的数据库

问题描述 投票:0回答:1

由于大规模可扩展性的可能性,Shared Nothing Architecture似乎很流行。进程没有任何共享。任何非平凡的应用程序都会有一些状态。理想情况下,此状态不应位于运行进程的硬件中。原因是,我们希望如果硬件/进程崩溃,客户端应该能够在新进程甚至是新硬件中重新运行它。这个州在哪里?让我们尝试某种数据库.. NoSql Redis,Mongo或RDBMS Oracle ..任何东西。现在IMO不再是Shared Nothing,因为数据库成了瓶颈。现在,shared nothing at wikipedia给出了一个小提示,即使数据库也没有使用分片共享!我的q是..如果有n个进程,那么会有n个数据库实例吗?我相信每个进程都应该在它自己的硬件或虚拟机管理程序中运行。因此,对于n个进程和n个相应的数据库,应该需要2 * n个硬件(不包括数据库中所需的复制)。毫无疑问,维基百科链接指出,对数据库的连接查询将是昂贵的。但缩放的可能性是无限的。我的假设是否正确?如果,我需要增加从n到m的进程数。那么n数据库发生了什么。我应该增加到m个数字并进行重新分片吗?现在添加具有自动缩放功能的负载均衡器。这意味着流程可以扩展和缩小。现在我们如何将无共享数据库与这些进程匹配?谢谢。

database architecture nosql
1个回答
1
投票

'n'数据库实例必须在'n'个独立服务器上运行,以实现完全无共享设置和无限水平扩展。我对如何使用Oracle进行分片有一些了解。让我尝试回答一些你在Oracle分片中提出的问题。我建议通过Oracle Sharding了解下面提到的几个术语。

  1. 如果您需要增加数据库实例的数量(根据您的问题处理),那么只需根据需要生成多个数据库实例并将数据库实例添加到分片环境中。
  2. 您需要重新部署以重新分区数据库并重新分配负载。
  3. 重新生成时,目录数据库和分片导向器被编程为使用当前的分片环境更新自身,并将添加有关新数据库的信息。
© www.soinside.com 2019 - 2024. All rights reserved.