在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为“大key”)及HotKey(下文将其称为“热key”)。大Key与热Key如果未能及时发现并进行处理,很可能会使服务性能下降、用户体验变差,甚至引发大面积故障。一、大Key与热Key的定义我们经常能够在公司内部的Redis开发使用规范手册,或网络中大量的Redis最佳实践文章里看到有关大Key、热Key的定义,然而这些资料中的大Key热Key判定标准却不尽相同,但可以明确的是,它们的...
2022-05-26 18:05:10 1.1w浏览 0点赞 0回复 0收藏
TPCH可以说是世界上最为流行的OLAPworkload的benchmark程序,无论你看什么样的论文或技术文章,只要是和查询处理过程相关的,大多会在evaluation时使用TPCH作为评估工具。而如果你从事查询优化和执行的工作,则怎么都会和TPCH打上交道,即使是OLTP(在线交易)型的数据库系统。TPCH是用来评估在线分析处理的基准程序,主要模拟了一个供应商和采购商之间的交易行为,其中包含针对8张表的22条分析型查询。针对查询的处理性能方面...
2022-05-26 18:05:01 7630浏览 0点赞 0回复 0收藏
内容简要:一、游戏系统中的Redis二、云原生内存数据库Tair介绍三、Tair的游戏场景一、游戏系统中的Redis(一)RedisInGamingServers:分区分服游戏的架构非常多,总结来看基本有三种,第一种是分区分服的游戏,第二种是全区全服,第三种是全球同服。最近全同服的游戏比较火,线上做了很多收割,而分区分服也适用于一些游戏场景。Redis的使用场景可以分为两种,一种场景是当缓存使用,另一种场景是当内存数据库使用。Redis的使...
2022-05-26 18:04:50 6026浏览 0点赞 0回复 0收藏
一、Tair背景介绍(一)什么是阿里云Tair云原生内存数据库阿里云Tair云原生内存数据库线上名字为阿里云数据库Redis企业版(又称阿里云Tair),从2009年开始正式承载集团业务,是一款历经磨练的企业级产品。它完全兼容Redis的数据结构和通讯协议,包括API接口,并且在内部逐步打磨的过程中,基于Tair研发云上托管云内存数据库。如上图所示,Tair产品分为三个类型,从性能到性价比有不同的产品排布,下面用1.0X表示开源的Redis的...
2022-05-26 18:04:14 7110浏览 0点赞 0回复 0收藏
TairZset是阿里云自研的可实现任意维度double类型的分值排序的数据结构,借助Tair自研客户端同时可实现扩展性,即可以将计算任务分布至多个数据节点完成,实现分布式排行榜能力。本文介绍了TairZset的能力以及利用TairZset实现奖牌榜、分布式排行榜、实时排行榜的方案。一、背景介绍排序需求常见于各类游戏、应用、奖牌、积分等排行榜中,通常业务对排序的需求如下:支持增删改查和反向排序,可根据分数范围获取相应用户。排序...
2022-05-26 18:03:49 6274浏览 0点赞 0回复 0收藏
一背景在MySQL8.0之前,Server层和存储引擎(比如InnoDB)会各自保留一份元数据(schemaname,tabledefinition等),不仅在信息存储上有着重复冗余,而且可能存在两者之间存储的元数据不同步的现象。不同存储引擎之间(比如InnoDB和MyISAM)有着不同的元数据存储形式和位置(.FRM,.PAR,.OPT,.TRNand.TRGfiles),造成了元数据无法统一管理。此外,将元数据存放在不支持事务的表和文件中,使得DDL变更不会是原子的,crashrecovery也...
2022-05-25 18:02:42 6774浏览 0点赞 0回复 0收藏
一、背景传统的关系型数据库有着悠久的历史,从上世纪60年代开始就已经在航空领域发挥作用。因为其严谨的强一致保证以及通用的关系型数据模型接口,获得了越来越多的应用,大有一统天下的气势。2000年以后,随着互联网应用的出现,很多场景下,并不需要传统关系型数据库提供的强一致性以及关系型数据模型。相反,由于快速膨胀和变化的业务场景,对可扩展性(Scalability)以及可靠性(Reliable)更加需要,而这个又正是传统关系型数...
2022-05-25 18:02:30 5542浏览 0点赞 0回复 0收藏
一、概述云原生数据库(一)云计算是数字化的基础设施众所周知,目前云计算已经成为数字化的基础设施,整个社会也在数字化。数字化渗透进我们的日常生活中,除了衣食住行,还包括教育、医疗、游戏等。以医疗领域为例,早些年去医院,不管是验血还是拍胸片,一定是要去取纸质报告,然后打一张塑料的胸片图。但是最近一两年,除了三甲医院,其他医院也基本是通过网上向患者提供无论是报告还是胸片之类的材料,医疗领域数字化现象...
2022-05-25 18:02:19 4482浏览 0点赞 0回复 0收藏
ApacheHudi提供了MVCC并发模型,保证写入端和读取端之间快照级别隔离。在本篇博客中我们将介绍如何配置来管理多个文件版本,此外还将讨论用户可使用的清理机制,以了解如何维护所需数量的旧文件版本,以使长时间运行的读取端不会失败。1.回收空间以控制存储成本Hudi提供不同的表管理服务来管理数据湖上表的数据,其中一项服务称为Cleaner(清理服务)。随着用户向表中写入更多数据,对于每次更新,Hudi会生成一个新版本的数据文...
2022-05-25 18:02:06 6066浏览 0点赞 0回复 0收藏
Hopsworks特征存储库统一了在线和批处理应用程序的特征访问而屏蔽了双数据库系统的复杂性。我们构建了一个可靠且高性能的服务,以将特征物化到在线特征存储库,不仅仅保证低延迟访问,而且还保证在服务时间可以访问最新鲜的特征值。企业机器学习模型为指导产品用户交互提供了价值价值。通常这些ML模型应用于整个实体数据库,例如由唯一主键标识用户。离线应用程序的一个示例是预测客户终身价值(CustomerLifetimeValue),其中...
2022-05-25 17:56:38 4841浏览 0点赞 0回复 0收藏
背景PolarDBX作为一款云原生分布式关系型数据库[6],支持通过拆分规则将一张逻辑表的数据分布在多个数据节点中。同时,也支持变更拆分规则,将数据进行重新分布[9]。数据重新分布(Repartition)的能力是分布式数据库的核心能力之一。当业务规模扩大时,它可以将数据分布到更多的节点,以达到水平扩展(ScaleOut)的目的。当业务规则剧烈变化时,它也可以将数据以新的拆分规则分布,从而提高查询的性能,更好地适应新的业务规则...
2022-05-25 17:56:29 4028浏览 0点赞 0回复 0收藏
需要的背景知识为确保理解顺畅,在阅读之前请提前了解以下概念或原理:关系型数据库中的关系代数模型数据库表达式计算中的三值逻辑与数据库交互的声明式语言SQLSubquery与SemiJoin窗口函数、losslessjoin理解子查询定义它的定义是如此简单,衍生出来的场景却又如此复杂;它既是一个表达式,也是一个查询树;它灵活到可以成为一个常量,也可以随时表达集合间的关系;SQL中写入子查询如此自然,真正跑起来时却……根据SQL标准,将...
2022-05-25 17:56:15 4255浏览 0点赞 0回复 0收藏
01Hash分区vs.Range分区用户在使用分布式数据库时,最想要的是既能将计算压力均摊到不同的计算节点(CN),又能将数据尽量散列在不同的存储节点(DN),让系统的存储压力均摊到不同的DN。对于将计算压力均摊到不同的CN节点,业界的方案一般比较统一,通过负载均衡调度,将业务的请求均匀地调度到不同的CN节点;对于如何将数据打散到DN节点,不同的数据库厂商有不同策略,主要是两种流派:按拆分键Hash分区和按拆分键Range分区,DN节...
2022-05-25 17:55:55 5003浏览 0点赞 0回复 0收藏
用关系型数据库一定多多少少会用到Join操作。常见的Join有NestedLoopJoin,HashJoin,SortMergeJoin等等。实际在OLTP场景中,最常用的就是基于索引点查的IndexNestedLoopJoin,这样的Join往往能在极短的时间内返回,相信这也是大多数开发同学对Join的感受。PolarDBX不仅语法兼容MySQL,作为分布式数据库,也力求保持与单机数据库一致的使用体验。在分布式场景下,Join的两张表可能都是分布式表,因此需要通过多次网络请求获取相...
2022-05-25 17:55:47 5789浏览 0点赞 0回复 0收藏
数据库的用户对数据库都有一个很简单的要求:“我能不能随时随地做DDL,不要让我守到半夜再搞了。”为了这个目标,各种各样的数据库采用了不同的方法来优化DDL这件事,MySQL也从5.6开始逐渐支持“OnlineDDL”。但问题是,为何已经到了MySQL8.0的时代,你能看到的各种MySQL最佳实践\开发规范里,依然建议把DDL放在业务低峰期来做呢。PolarDBX对此作了很多优化,期望让用户做DDL的时候能更任性。我们得先看一下,MySQL的DDL,为什...
2022-05-25 17:54:20 3864浏览 0点赞 0回复 0收藏
背景与介绍SQL限流,顾名思义,是一种对SQL的查询速度进行限制的能力。一般情况下,我们希望SQL查询语句在数据库上的执行速度越快越好,然而数据库的资源有限,在CPU、IO、内存等某一项资源达到上限时,查询在并发执行时会有激烈的资源争抢,这时查询会有因为资源不足而出现超时,影响用户业务。这时用户首先想到的是升配数据库实例,计算资源不足则增加计算节点,IO资源不足则增加存储节点分摊IO开销,以此增加资源上限。如上...
2022-05-25 17:54:10 5153浏览 0点赞 0回复 0收藏
PolarDBX面向HTAP的混合执行器一文详细说明了PolarDBX执行器设计的初衷,其初衷一直是致力于为PolarDBX注入并行计算的能力,兼顾TP和AP场景,逐渐为其打造一款具备TB级数据处理能力的数据库。为了做到这一点,借鉴了各种数据库和大数据库产品,包括分析型数据库,实时数仓等,吸取了各方面的优势来打造出一个全新的并行执行引擎。这里将对整个分布式并行执行框架做详细的介绍,希望阅读之后对我们的执行器有一个全面的认识。▶...
2022-05-25 17:53:59 4422浏览 0点赞 0回复 0收藏
引言关系型数据库,随着业务发展,经常需要加表加列来满足新的业务需求,或者增加索引以提升查询性能,这些操作都需要通过数据定义语言(DataDefinitionLanguage,DDL)来完成。DDL是结构化查询语言(StructuredQueryLanguage,SQL)的一部分,1974年IBM研究人员设计SQL的前身Sequel时有两个目标,允许用户通过Sequel来操纵和定义数据。当时发表的两篇论文,一篇是广为人知的"SEQUEL:AStructuredEnglishQueryLanguage",介绍如何查询...
2022-05-25 17:53:46 4958浏览 0点赞 0回复 0收藏
介绍在上篇文章《每次都需要解释大量指令?使用PolarDBX向量化引擎》中,我们介绍了PolarDBX向量化引擎的原理,以及运行时的结构。本文将对向量引擎的上下文构建进行详细介绍。所谓上下文构建,就是为向量化引擎准备好合适的执行环境,可以概况为以下几个问题:如何确定表达式的输入输出类型,并为SQL中的表达式分配合适的原语?每个原语需要使用不同的向量来进行输入和输出,如何正确地为原语分配向量?每种原语仅为特定类型进...
2022-05-25 17:53:37 4437浏览 0点赞 0回复 0收藏
介绍PolarDBX是阿里巴巴自研的云原生分布式数据库,采用了计算存储分离的架构,其中计算节点承担着大量的表达式计算任务。这些表达式计算涉及到SQL执行的各个环节,对性能有着重要的影响。为此PolarDBX引入向量化执行引擎,为表达式计算带来了几十倍的性能提升。传统数据库执行器的缺陷现代数据库系统的执行引擎,大多采用一次计算一行数据(Tupleatatime)的处理方式,并且需要在运行时对数据类型进行解析和判断,来适应复杂的...
2022-05-25 17:53:18 6722浏览 0点赞 0回复 0收藏