当前位置: 首页 > 网络应用技术

GaussDB(用于Cassandra)数据库治理:大钥匙和热键问题的检测和解决

时间:2023-03-06 16:24:02 网络应用技术

  Cassandra数据库是一个高度可扩展的高性能分布式数据库,面对大数据方案,可用于管理大量结构化数据。在业务使用过程中,业务量和数据流量的持续增长,设计某些业务的缺点通常会暴露出来,降低了集群的稳定性和可用性。负载和群集稳定性将降低。这种类型的问题称为一个大关键问题。当控制台上的热点远远超过服务器限制时,它将导致热点密钥问题。通常,大关键是热门密钥问题的间接原因。

  GaussDB(对于Cassandra)是一个基于华为的自我开发的计算存储分离体系结构的分布式数据库。它与Cassandra生态系统兼容。它支持SQL语法CQL。在对上述问题的回应中,GaussDB(对于Cassandra)提供了对大钥匙和热键的真实时间检测,以帮助业务进行合理的模式设计并避免业务稳定性风险。

  生成大钥匙的主要原因是主要钥匙设计是不合理的,这使得单个分区的数字或数据太大。出现某个分区时,分区的访谈将导致该部分的负载该分区位于更高,甚至引起节点OOM。

  对于大钥匙,通常采用两种类型的维修,一种是增加缓存并优化表结构。一个基于现有的分区键以增加分区键。DISPEL数据以避免过度记录单个分区。gaussdb.gaussdb(对于Caseandra)具有以下纠正案例,并且在业务纠正后,负载顺利进行。

  情况1:

  XX群集的数据量太大,导致群集中的大区键(约2000+),最大的分区密钥达到38G。当业务经常访问此大分区密钥时,该节点将继续继续进行。负载高负载,影响业务要求的成功率。

  表结构如下

  表设计分析电影表保存了简短视频的相关信息。分区密钥是MovieID,并且保留了用户信息(UID)。流行的简短视频的分区非常大(目前找到38G)。

  解决方案:

  1.优化表结构以创建一个新表以保存流行的简短视频信息,仅保留简短的视频公共信息,不包括用户信息,确保该表不会产生大型分区键桌子。

  2.增加缓存并增加缓存。业务应用程序首先从缓存中读取流行的文件信息。如果不查询,请从数据库中检查以减少数据库查询数量。

  整个优化逻辑如下:

  1.首先检查缓存,当缓存存在时,直接返回结果。

  2.当缓存不存在时,查询热视频缓存(缓存不存在,然后查询热表),当视频是流行的视频时,请查询HotMovieAccess表。

  3.当存在HotMovieAccess表时,它会直接返回。如果没有HotMovieAccess表的记录,请检查电影表。

  4.创建查询结果。

  案例2:

  Movie_Meta使用每月表,每个表仅存储本月的数据。最初的设计可以减少或避免过度分区键的问题。频繁撰写业务以及许多流行的视频存储,已经形成了大型数据分区。

  解决方案:在新分区密钥中添加一个随机数(0?999):随机离散存储在1,000个分区中的原始信息。使用新分区键,没有新的分区密钥,超过100m,旧分区密钥可以形成超过100m的数据。它可以随着时间的流逝而过期。

  通过长期业务观察,我们规定以下阈值,超过任何条件的阈值是重要的关键:

  1.单分区键的数量不能超过100,000

  2.单个分区的大小不超过100MB

  GaussDB(forcassandra)支持Big Key的检测和警报。在CES接口,您可以配置实例的大密钥警告。发生大键事件后,会尽快通知它。及时的迁移可以避免业务波动。

  大钥匙警报字段解释

  在日常生活中,经常发生各种流行的事件。当您对应用程序中的热门新闻进行数万点击和评论时,将形成大量请求。在此CASEA频繁操作中,密钥会导致键所在的节点的CPU和负载,这将影响节点上落在节点的其他请求。结果,业务成功率降低了,也有流行的商品促销,在线名人和其他场景。这些典型的阅读场景和较少的写作也会引起热门问题。

  热钥匙会引起以下危害:

  1.集中流量以达到物理网卡的上限。

  2.太多的请求,击败了缓存碎片服务。

  3. DB故障,导致雪崩。

  GaussDB(forcassandra)用于热钥匙,常见的维修方法如下:

  1.设计需要考虑热键的问题,以避免在数据库上生成热键

  2.业务方面通过增加缓存以减少热键的外观来增加对数据库的影响。CONSIDER多级缓存以解决热键问题(例如Redis + Local Tier 2 Cache)

  3.阻止热点键,例如在业务方面进行自定义,支持热键黑色和白色列表的能力,可以暂时屏蔽热键。

  我们定义访问的频率超过100,000次/分钟是热键。热键事件分为两种类型。一个写作事件,代表热点,另一个是读取事件,指示热点。

  GaussDB(用于Caseandra)还提供热键监视和警报。在CES接口,您可以配置实例的热键警告。

  热键警报字段说明:

  GaussDB(为Cassandra)提供对大钥匙和热键的真实时间监控。确保尽快感知业务风险。提供的大键和热键解决方案提供了,以增强集群的稳定性和可用性大型数据洪水峰值场景。

  总而言之,当在线业务使用Cassandra时,它必须实施相关的开发规则和使用规范,并在开发和设计阶段降低使用风险。根据法规的制定 - > Access Review->定期检查 ->优化规则治理过程。可选的设计通常会降低大多数风险的可能性。对于应用,任何表的设计都必须考虑是否会导致热键,大钥匙的基因以及是否会导致负载倾斜;此外,建立一个数据老化机制,表中的数据无法在没有限制的情况下删除或老化;对于读取更多和写入更少的场景,应添加缓存机制以应对热门话题并改善查询性能;对于每个PK的大小和每个行的大小控制大小,否则会影响性能和稳定性。

  作者:卡桑德拉官员。