Aurora PostgreSQL - 建议的最大数据库数(对于多租户数据层)

0

【以下的问题经过翻译处理】 你好,

TL;DR - 我有一个客户拥有包含多租户数据层的 SaaS 解决方案。他们希望通过为每个租户创建一个逻辑数据库来改善租户隔离。

Aurora Postgres 是该架构的主要组件。为了创建更好的隔离,他们想为每个租户创建一个数据库(澄清:同一集群中的多个逻辑数据库)。他们询问单个 Aurora PostgreSQL 集群是否可以容纳 10K 数据库。

  1. 这是 Aurora Postgres 的合理要求吗(以及 完全没有 PostgreSQL)? 2.在哪一点(关于DBs数量)的解决方案 像分片一样有意义吗? (只谈论集群中的数据库数量。澄清 - 我是 还与他们讨论每个数据库的性能 要求、可用性要求等) 3.另外,我正在和客户商量 关于其他考虑因素,例如划分数据库以创建 更好的维护/操作能力并限制爆炸半径 一簇)。

提前谢谢了。

profile picture
专家
已提问 6 个月前43 查看次数
1 回答
0

【以下的回答经过翻译处理】 正如您所暗示的那样,多租户数据库架构将归结为他们的用例。有很多论文/文章讨论了在隔离、可维护性、迁移、开发难度、模式更改和其他因素方面与替代方法的权衡。

鉴于此,我将尝试将我的回答集中在您问题的 1 和 2 上:我们有客户在 Aurora 和 RDS Postgres 上使用 10k 数据库。有些甚至高出几个数量级。但是,他们肯定会考虑他们未来的扩展计划。有一点,即使只是文件的绝对数量通常也会导致 Postgres(或操作系统)的痛苦。如果他们的数据模式很复杂,每个数据库都有很多表关系,那么他们可能会更快地遇到问题。很难给出可靠的数字,但在 10k 时,您可以说这足以让他们投入精力进行真正的评估。

另一个潜在的症结是连接管理。如果他们的工作负载需要频繁访问许多客户/数据库,那么值得一提的是 Postgres 是按数据库连接的。即使是 10k,他们实际上也无法为所有客户缓存所有连接。创建和拆除连接会带来开销,否则他们不会遇到像每个客户一个表这样的事情。

正如我提到的,还有很多其他事情需要考虑,但是,可以明确的是,可以做 10k 逻辑数据库。但他们应该使用代表其特定的工作负载进行测试。

profile picture
专家
已回答 6 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则