Vastbase G100核心功能
- 高并发&高性能
Vastbase G100 通过服务器端的线程池,可以支持在超过 10000 并发连接情况下性能仍能保持较高水平。通过 NUMA 化内核数据结构,支持线程亲核性处理,可以支持百万级 tpmC。通过页面的高效冷热淘汰,支持 T 级别大内存缓冲区管理。通过 CSN 快照,去除快照瓶颈,实现多版本访问,读写互不阻塞。
通过增量检查点,避免全页写导致的性能波动,实现业务性能平稳运行。
- CBO 优化器
openGauss 优化器是典型的基于代价的优化(Cost-Based Optimization,简称 CBO)。在这种优化器模型下,数据库根据表的元组数、字段宽度、NULL记录比率、distinct 值、MCV 值、HB 值等表的特征值,以及一定的代价计算模型,计算出每一个执行步骤的不同执行方式的输出元组数和执行代价(cost),进而选出整体执行代价最小/首元组返回代价最小的执行方式进行执行。CBO 优化器能够在众多计划中依据代价选出最高效的执行计划,最大限度的满足客户业务要求.
- 数据分区
数据分区是数据库产品普遍具备的功能。在 Vastbase G100 中,数据分区是对数据按照用户指定的策略对数据做的水平分表,将表按照指定范围划分为多个数据互不重叠的部分(Partition)。Vastbase G100 支持范围、哈希、列表和多级分区功能,即根据表的一列,将要插入表的记录分为若干个类别,然后为每个类别创建一个分区,用来存储相应的数据。
数据分区带来的好处在于:
● 改善可管理性:利用分区,可以将表和索引划分为一些更小、更易管理的单元。这样,数据库管理员在进行数据管理时就能采取“分而治之”的方法。有了分区,维护操作可以专门针对表的特定部分执行。
● 提升删除操作的性能:删除数据时可以删除整个分区,与分别删除每行相比,这种操作非常高效和快速。
● 删除分区表与删除普通表的语法一致,都是通过 DROP TABLE 语法进行删除。
● 改善查询性能:通过限制要检查或操作的数据数量,分区可带来许多性能优势。
● 分区剪枝:分区剪枝(也称为分区消除)是在执行时过滤掉不需要扫描的分区,只对相关的分区进行扫描的技术。分区剪枝通常可以将查询性能提高若干数量级。
● 智能化分区联接:通过使用一种称为智能化分区联接的技术,分区还可以改善多表联接的性能。当将两个表联接在一起,并且至少其中一个表使用联接键进行分区时,可以应用智能化分区联接。智能化分区联接将一个大型联接分为多个较小的联接,这些较小的联接包含与联接的表“相同”的数据集。
这里,“相同”定义为恰好包含联接的两端中相同的分区键值集,因此可以确保只有这些“相同”数据集的联接才会有效,而不必考虑其他数据集。
- 行列混合存储引擎
Vastbase G100 支持行存储和列存储两种存储模型,用户可以根据应用场景,建表的时候选择行存储还是列存储。一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不很多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行
存储比较好。行列混合存储引擎可以同时为用户提供更优的数据压缩比(列存)、更好的索引性能(列存)、更好的点更新和点查询性能(行存)。
- 自适应压缩
当前主流数据库通常都会采用数据压缩技术。数据类型不同,适用于它的压缩算法不同。对于相同类型的数据,其数据特征不同,采用不同的压缩算法达到的效果也不相同。自适应压缩正是从数据类型和数据特征出发,采用相应的压缩算法,实现了良好的压缩比、快速的入库性能以及良好的查询性能。数据入库和频繁的海量数据查询是用户的主要应用场景。 在数据入库场景中,自适应压缩可以大幅度地减少数据量,成倍提高 IO 操作效率,并将数据进行分类压缩以获得更快的入库性能。当用户进行数据查询时,少量的 IO 操作和快速的数据解压可以加快数据获取的速率,从而在更短的时间内得到查询结果。
目前,数据库已实现了 RLE、DELTA、BYTEPACK/BITPACK、LZ4、ZLIB、LOCALDICTIONARY 等多种压缩算法。
- In-place update 存储引擎
新增的 In-place update 存储引擎很好的解决了 Append update 存储引擎空间膨胀、元组较大的劣势,同时也很好的保证了交易性能的平稳,高效回滚段的设计是 In-place update 存储引擎的基础。
- 高可用
Vastbase G100 搭载配套的高可用集群组件,可根据不同的硬件环境实现业务连续性方案。包括:
● 基于日志复制技术的多副本架构,该种方案多用于数据库服务器本机硬盘的情况,从库可打开只读,实现读写分离架构
● 基于共享存储单一副本的双机热备架构,该种方案多用于外置存储包括集中式或分布式存储方案中,有点是单一副本可节省硬盘成本,无需日志复制即无性能衰减额外的集群软件每隔几百毫秒均会对整体集群架构进行检测,一旦遇到故障即可触发故障自动修复,当主库切换到备用主机后,VIP 也会瞬间转移,实现快速的自动失败转移功能。在极致配置情况下能达到 RTO≤5 (Recovery TimeObject)秒。
- 内存表
内存优化表(Memory-Optimized Table,MOT)是一种事务型基于行存的引擎。这是最新技术和生产级功能,可为 Vastbase G100 的事务性工作提供更高的性能。MOT 完全支持 ACID 特性,并包括严格的持久性和高可用性支持。企业可以在关键任务、性能敏感的在线事务处理(OLTP)中使用 MOT,以实现高性能、高吞吐、可预测低延迟以及多核服务器的高利用率。MOT 尤其适合在多路和多核处理器的现代服务器上运行。
- SQL 自诊断
通过执行查询对应的 explain performance,获得对应执行计划,是一种十分有效的定位查询性能问题的方法。但是这种方法需要修改业务逻辑,同时输出的日志量大,问题定位的效率依赖于人员的经验。SQL 自诊断为用户提供了另一种更为高效易用的性能问题定位方法。在执行作业之前,配置 GUC 参数 resource_track_level 和resource_track_cost,然后运行用户作业,就可以通过查看相关系统视图,获得执行完成的相关查询作业可能存在的性能问题。系统视图中会给出导致性能问题的可能原因,根据这些“性能告警”,就可以对存在性能问题的作业进行调优。SQL 自诊断可以在不影响用户作业,不修改业务逻辑的情况下,诊断出相对准确的性能问题,为用户提供更为易用的性能调优参考。