阿里云图数据库GDB执行器设计和实现及案例分享
产品简介
阿里云图数据库GDB是阿里巴巴自主研发的实时、可靠在线图数据库服务,支持Property Graph图模型,专注解决高度数据关联场景。GDB是国内唯一进入Forrester Wave评测报告的图数据库产品,已服务盒马鲜生、天猫超市、钉钉等30+明星应用,拥有100+内外部最佳实践。
产品能力
- 图服务便捷接入:支持开源TinkerPop3.3.3版本Driver,兼容Java、Python等多语言SDK,提供GremlinConsole数据导入及OSSDataWorks兼容。
- 图实例管理&免运维:周期性备份、24小时监控、一键变配、图可视化等功能。
- 产品形态:基础实例(低成本)、高可用实例(秒级故障切换)、只读实例集群(查询水平扩展)。
- 查询语言:兼容Gremlin和Cypher两大主流图查询语言。
图执行器
- 整体架构:包含多样接入、自研解析器、查询优化器(CBO/RBO)、图执行器(混合负载、并行执行)、图存储引擎(自动索引、ACID事务)及高效导入、服务管控。
- 数据库执行器发展:从早期弱化调度器和执行器到现代硬件发展下其重要性凸显。
- 火山模型执行器:将关系代数算子抽象为迭代器,优点是算子解耦、资源消耗低,缺点是虚函数开销大、不利于CPU缓存。
- Morsel-DrivenParallelism:通过NUMA多核CPU高效利用,结合细粒度单元(morsel)和operatorpipeline进行并行执行。
- GDB并行执行器:采用混合负载、并行识别、任务拆分,结合MessageQueue、异常管理、火山模型执行器及批处理技术,实现多级异常处理。
应用场景
GDB上线至今已有100+应用场景,如为钉钉提供百亿量级关系存储和查询能力,支持同企识别、用户亲密度计算等功能;在盒马生鲜用于在线推荐、关联辅菜推荐等。
其他数据库产品执行器对比
- Oracle 10g:采用shared-disk存储和PSC机制,通过PX机制打散负载到各节点。
- PolarDB-X:简单语句下推存储层,使用Volcano执行器、Gather、DataChunk批量拉取及Parallelizer、PX Send/Receive等技术。
- NebulaGraph:存储计算分离,火山执行引擎,通过Optimizer+PlanCache和Scheduler+Executor进行查询优化和执行调度。