【问题标题】:Will my BigTable schema result in hotspotting?我的 BigTable 架构会导致热点吗?
【发布时间】:2021-11-27 23:36:11
【问题描述】:

这是我的架构

这里有一些示例数据 此行键结构$PipelineId--$PipelineRunTime 的行将不经常写入,但数据量会大得多,并不是说它会接近超过数据的行限制。这种结构$ContentID--$ContentType--$PipelineName 的行将更频繁地创建,但数据更少

这就是我打算查询BT的方式

  • 阅读所有labels $PipelineName$PipelineRunTime
  • labels 中为$PipelineName 在任何PipelineRunTime 中是$ContentID
  • 阅读$ContentID 为任何$PipelineName 返回所有labels

【问题讨论】:

  • 您的内容 ID 是连续的吗?
  • @guillaumeblaquiere 不,它们是 UUID

标签: database google-cloud-platform database-design schema google-cloud-bigtable


【解决方案1】:

BigTable 上下文中的热点情况与密钥分配及其请求率有关。有两个问题:

  1. 如何在后端分发密钥,以及
  2. 如果热键在分布中距离较远。

例如,如果您有 100 万个密钥并且请求仅针对其中两个,则容量通常会限制为 1 或 2 个后端。

  1. 如果密钥是连续的,则可能有一个后端同时为两个密钥提供服务(在高请求率时会成为热点)。
  2. 如果键不是连续的,则有可能两个后端会为它们提供服务。

当您尝试将时间用作密钥的一部分时,您应该查看:

要了解性能特征、访问模式并确定是否会出现热点,您应该运行性能测试并使用关键的可视化工具,然后在需要时应用优化。

【讨论】:

  • 如果您对我的回答有任何澄清或疑问,请告诉我。如果您认为我的回答中的信息有帮助,您可以接受或投票。
猜你喜欢
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2022-11-04
  • 2012-11-11
  • 1970-01-01
  • 2022-01-04
  • 2021-04-13
相关资源
最近更新 更多