AnalyticDB PostgreSQL企业数据智能平台是构建数据智能的全流程平台,提供可视化实时任务开发 + 实时数据洞察,让您轻松平移离线任务,使用SQL和简单配置即可完成整个实时数仓的搭建。
在数据时代,过多耗内存的大查询都有可能压垮整个集群,所以其内存管理模块在整个系统中扮演着非常重要的角色。而PolarDB-X 作为一款分布式数据库,其面对的数据可能从TB到GB字节不等,同时又要支持TP和AP Workload,要是在计算过程中内存使用不当,不仅会造成TP和AP相互影响,严重拖慢响应时间,甚至会出现内存雪崩、OOM问题,导致数据库服务不可用。CPU和MEMORY相对于网络带宽比较昂贵,所以PolarDB-X 代价模型中,一般不会将涉及到大量数据又比较耗内存的计算下推到存储DN,DN层一般不会有比较耗内存的计算。这样还有一个好处,当查询性能低的时候,无状态的CN节点做弹性扩容代价相对于DN也低。鉴于此,所以本文主要对PolarDB-X计算层的内存管理进行分析,这有助于大家有PolarDB-X有更深入的理解。
论文提出的Flux通过使用AI技术将短时和长时查询解耦进行自动弹性,解决了云数据仓库的性能瓶颈,同时支持了资源按需预留。Flux优于传统的方法,查询响应时间 (RT) 最多可减少75%,资源利用率提高19.0%,成本开销降低77.8%。
本文介绍PolarDB-X数据库实现了基于标签的访问控制功能,可以在行、列级别对数据访问进行控制,精细化的限制用户对数据的访问和操作,保证了读写数据的安全。下文根据实际应用场景,介绍PolarDB-X的LBAC功能设计以及使用方法。
MySQL的内存分配、使用、管理的模块较多,本篇文章主要介绍InnoDB层和SQL层内存分配管理器,主要包括ut_allocator、mem_heap_allocator和MEM_ROOT,代码版本主要基于8.0.25。