作者:安琪|YMatrix 文档工程师 & 王任远|YMatrix MXUI 研发工程师
在 AP 和 TP 场景中,我们会时常需要修改数据与表结构。MARS3 继承了 MARS2 在时序场景中的出色性能,在支持了表结构和数据的增删后,除了应用于 YMatrix 优势的时序场景,更可作为通用的高性能数据存储引擎,用于传统的 AP/TP 场景。
Before
MARS2 中无法修改表结构和数据
Now
允许增加/删除列,允许 UPDATE/DELETE 数据
MARS3 使用了数据缓存优化写入性能。写入过程中,数据会被首先保存至内存,积累到一定数量时写入磁盘;根据场景不同配置不同的缓存大小,能够进一步提高写入速度。
a. 高频次小批量写入场景,设置合适的缓存可以避免磁盘频繁写入,提升性能。
b. 一次性大批量写入场景,可跳过缓存直接落盘,降低磁盘随机 I/O,写入速度更高。
3. 语法更简洁
相对于 MARS2 需要额外创建排序索引,使用 ORDER BY 子句指定排序键即可完成建表。
Before
CREATE TABLE disk_mars2(
time timestamp with time zone,
tag_id int,
read float
)
USING MARS2
DISTRIBUTED BY (tag_id);
CREATE INDEX ON disk_mars2 USING mars2_btree(time,tag_id);
复制代码
Now
CREATE TABLE disk_mars3(
time timestamp with time zone,
tag_id int,
read float
)
USING MARS3 ORDER BY (time, tag_id);
复制代码
Before
当 mxgate 在写入数据时,修改表结构需要先暂停/停止任务,否则 DDL 会被 mxgate 的事务阻塞无法执行。
Now
新的 DDL 退避机制可以保证写入过程中 DDL 语句也能及时执行。
Before
当任务负载动态变化时,需要手动调整事务连接数(stream-prepared)以适应负载。
Now
新增 auto-tune 功能,允许 mxgate 根据写入负载自动进行调节。
Before
无法量化观测当前系统写入负载。
Now
以百分比展示每个任务的写入负载。
实现行列混存,写入数据行存落盘,大幅提升写入性能
无需额外创建索引即可完成建表
支持数据的更新与删除,支持增删列,支持 MVCC 机制
不仅继承了 MARS2 时序场景下的性能优势,还增添了对 AP 和 TP 场景的支持
支持迁移任意一个当前为 Mirror 的数据库实例到其他服务器
支持增量迁移:以表为单位,实现从 Greenplum 4.3.33/5/6/ YMatrix 集群并行迁移目标数据库中部分数据表的数据定义语言(DDL)及数据到新的 YMatrix 集群
支持在写入过程中立即执行插入的 DDL 修改指令
支持根据不同写入事务的负载自动调节连接数
支持以百分比数值量化源端数据的写入负载
新增自助巡检页面,支持通过勾选巡检选项自助制定巡检计划,并生成详细的巡检报告
更加全面的发布信息请见:
https://ymatrix.cn/doc/5.1/version_list
附录
https://ymatrix.cn/doc/5.1/reference/storage/overview
2. https://ymatrix.cn/doc/5.1/tools/mxmoveseg
3. https://ymatrix.cn/doc/5.1/tools/mxshift
4. https://ymatrix.cn/doc/5.1/tools/mxgate/feature
5. https://ymatrix.cn/doc/5.1/maintain/self_service_inspection
6. https://ymatrix.cn/doc/5.1/install/mx5_cluster/mx5_cluster
本文为 YMatrix 原创内容,未经允许不得转载。欲了解更多超融合时序数据库相关信息,请访问 “YMatrix 超融合数据库” 官方网站